A collection of tutorials for using Cypher and Neo4j for creating, querying, analyzing, and doing process mining with event knowledge graphs.
All tutorials require a clean instance of the Neo4j graph database system running for this tutorial.
- You can download and install Neo4j from [https://neo4j.com/download/]
- See [https://neo4j.com/docs/desktop-manual/current/operations/create-dbms/] for how to create a new Neo4j instance. All tutorials assumes the default user 'neo4j' with password '1234', which you can set when creating a new neo4j instance.
Tutorials 1-3: ./order_process
This is the very first set of tutorials you should follow. This set of tutorials comes with
- a small example dataset that on which you can learn all the design ideas and modeling power of event knowledge graphs while still knowing every event by its name
- step by step instructions for using Cypher and Neo4j to construct and analyze event knowledge graphs
- quick versions of the tutorials for the impatient ones
Tutorial 1: Building Your First Event Knowledge Graph with Neo4j and Cypher (quick version). In this tutorial you learn
- How to set up and configure Neo4j for working with event data
- How to import event data into Neo4j from a
.csv
file - How to use Cypher to
- identify entity types and entity identifiers
- construct entity nodes and correlate events to entity nodes
- infer directly-follows relationships over events in a graph
- query the graph for directly-follows paths
Tutorial 2: Basic Process Discovery in Event Knowledge Graphs. In this tutorial you learn how to use Cypher to
- aggregate events to activity nodes (and other types of event classes)
- aggregate directly-follows relations to construct multi-entity directly-follows graphs
- use filtering on events during aggregation to create specific directly-follows graphs Currently only the quick version of the tutorial is available; the full version is under development.
Tutorial 3: Discovering Proclet Models in Event Knowledge Graphs. In this tutorial you learn how to use Cypher to construct an advanced type of process model called "proclets" by:
- creating more advanced event classes to distinguish activities in different entities
- aggregate directly-follows relations per entity and add synchronization edges between activities in different entities Currently only the quick version of the tutorial is available; the full version is under development.
on the ./order_process
Tutorial OCPM 1: Building and Analyzing Object Relations. In this tutorial you learn
- how to identify relations between objects,
- how to assign directions to relations, and
- how to create a simple but powerful object-centric process mining summary based on object relations.
Tutorial OCPM 2: Analyzing and Summarzing Object Traces. In this tutorial you learn
- how to query for and visualize object-centric behavior in terms of object-traces, and
- how to summarize the behavior of all objects of the same type as object trace variants
Tutorial OCPM 3: Defining and Analyzing Object-Centric Process Executions. In this tutorial you learn
- how we can transfer the notion of the classical "case" concept to an object-centric setting and define object-centric start-to-end executions in different forms
- how to query and materialize knowledge about object-centric start-to-end executions by extending the EKG
- how to visualize, understand, and compare object-centric start-to-end executions of the same kind
- how to summarize object-centric process executions in terms of activities resulting in object-centric process variants
- how to model object-centric process executions in terms of involved objects and which insights can be gained
- how to generete a global behavioral summary of an EKG
- [https://github.com/multi-dimensional-process-mining/graphdb-eventlogs] provides Python scripts implementing parameterized Cypher query templates for building event knowledge graphs of 5 real-life event logs, see also [https://zenodo.org/record/4708117] for a fully packaged
.zip
with queries and datasets - [https://github.com/multi-dimensional-process-mining/event-graph-task-pattern-detection] a Python library for detecting task execution patterns in event knowledge graphs