I'm newbie to graphdb. i'm planning to use graph path as pattern for incident analysis.
I want to store graph path in db so that I can do pattern matching by generate graph path for a specific incident analysis. is graph db suitable for this use case? if yes any pointerw how can I achieve same in nieo4j?
This would be a great application of a graph database. If you describe your specific application, maybe someone has a similar application they can discuss, or we could give you some guidance.
thank you for the reply. My application maintains workflows for certain tasks. based on task and its state different workflow path will be resulted. I want to assign some state to workflow path so that when same path revisited next time, I can retrieve stored state and act accordingly.
I'm just wondering:
- is it possible create node as property of path
- how to assign property/state for a specific graph path so that it can be retrieved for a given input path(list of vertices)
I was going through the documentation but couldn't find any hints
It sounds like your are implementing a finite-state-machine. I don't know all the requirements of your project to know if this is a good application of a graph database. To answer your question, you can not assign properties to paths. What you may consider doing is creating 'State' nodes that contain the state for a specific workflow, and this node is related to the node representing the current state in the workflow. You would update this 'State' node whenever a state transition is made, and also remove the old relationship to the previous state and link the 'State' node to the new node. The 'State' node could have the state and all the workflow's metadata so that you could use it to get a handle on your workflow graph. Another idea is to label all the nodes for each workflow with that same label that is unique to the workflow, i.e. Workflow_<workflow_id>. This would allow you to get all nodes of that workflow very easily.
match(n:Node) where n:Workflow_<workflow_id>
return n
How are you going to advance each workflow? Are you getting events streamed, that you can use to automatically advance each workflow?