Originally: PADS x Celonis OCPM
A powerful tool for analyzing and visualizing object-centric process data. This app has been developed during the lab PADS x Celonis, offered by the Chair of Process and Data Science (PADS) at RWTH Aachen University, in cooperation with celonis, in summer semester 2023.
- Installation
- Usage
- Features
- Examples
- Example 1: Analyzing Purchase Order Process
- Example 2: Analyzing a P2P process
- Acknowledgements
- Repository Structure
- References
- Clone the repository:
git clone [email protected]:rhensen/pads-x-celonis-ocpm.git
- Install the required dependencies:
pip install -r requirements.txt
- Prepare your process data in the required .
jsonocel
format - Change directory to the src folder:
cd src\
- Run the application:
python main.py
- Import your event log, and follow the instructions appearing on screen.
The app solves different problems in the domain of Object-centric Process Mining, including:
- Importing object-centric event logs (
.jsonocel
) - Filtering by object types and activity names
- Discovering object-centric petri nets
- Variants and trends analysis : Computing cases (process executions) and variants, including displaying them as an event-object graph 1
- Computing object-centric KPIs such as pooling or lagging time 2, allowing for performance analysis and bottleneck identification
- Exporting analysis results in various formats
The following examples make use of publicly available event logs from https://ocel-standard.org
- Download and extract the recruiting dataset
- Run the application:
python main.py
- Filter the object types and activity names as needed
- Discover an object-centric petri net (Petri Net tab)
- Generate heatmaps for lagging and pooling time (Heatmap tab) and identify potential bottlenecks
- Export these heatmaps pressing
Ctrl+S
or using the Export button
- Download the p2p dataset
- Add the following lines as a new field inside the JSON root node (copy after line 1):
"ocel:global-log": { "ocel:attribute-names": [], "ocel:object-types": [ "PURCHORD", "INVOICE", "PURCHREQ", "MATERIAL", "GDSRCPT" ], "ocel:version": [ "1.0" ], "ocel:ordering": [ "timestamp" ] },
- Run the application:
python main.py
- Filter the object types and activity names as needed
- Discover the object-centric variants (Variant Explorer tab)
- Export the variant graphs using
Ctrl+S
or the Export button
- Thanks to Bob Luppes, Alessandro Berti and Eduardo Goulart Rocha for supervising the course, giving us valuable feedback and a lot of help providing datasets while developing the app.
- Thanks to the developers of
ocpa
for inspiration, valuable insights and providing awesome tools for object-centric process mining.
This repository follows a Model-View-Controller (MVC) architecture and is primarily built using Python with a tkinter-based frontend. It is designed to provide a process mining application with various widgets specifically developed for the app. The repository structure is organized as follows:
The MVC architecture separates the application into three major components: Model, View, and Controller. The Model represents the data and business logic, the View handles the user interface and visualization, and the Controller manages the interactions between the Model and View.
The project leverages Python's flexibility and rich ecosystem of libraries to provide a powerful process mining application. The custom-developed widgets offer additional functionality and enhanced user experience within the app.
Feel free to explore the individual directories for more detailed information about each component.
Footnotes
-
Jan Niklas Adams, Daniel Schuster, Seth Schmitz, Günther Schuh, Wil M.P. van der Aalst (2022). Defining Cases and Variants for Object-Centric Event Data, Defining Cases and Variants for Object-Centric Event Data (arXiv:2208.03235). ↩
-
Gyunam Park, Jan Niklas Adams, Wil. M. P. van der Aalst (2022). OPerA: Object-Centric Performance Analysis, (arXiv:2204.10662). ↩