Tools Demonstrations

Tool name: PM4Py (Process Mining for Python)



Description of the tool:

PM4Py (Process Mining for Python) is a young process mining library, written in the Python language and developed from scratch by the Process and Data Science group of the RWTH Aachen University along with the Fraunhofer-Institut für Angewandte Informationstechnik, that supports some process mining features (process discovery, conformance checking). The main goals of the PM4Py library are:

  • Lowering the barrier for algorithmic development and customization when performing a process mining analysis compared to existing academic tools.
  • Allow for the easy integration of process mining algorithms with algorithms from other data science fields, implemented in various state-of-the-art Python packages.
  • Create a collaborative eco-system that easily allows researchers and practitioners to share valuable code and results with the process mining world.
  • Provide accurate user-support by means of a rich body of documentation on the process mining techniques made available in the library.
  • Algorithmic stability by means of rigorous testing.

Along with event logs, the most important objects managed by PM4Py are Petri nets. These are the final output of process discovery algorithms implemented in PM4Py (alpha miner, inductive miner, heuristics miner), and a required input for conformance checking algorithms contained in the library (token-based replay, alignments). Aside from basic importing/exporting functionality, PM4Py offers some algorithms for: playout, generation of Petri nets, detection of cycles and strongly connected components, check of relaxed soundness. Moreover, way to represent frequency/performance information, obtained from the log, on top of the Petri net representation are provided. PM4Py offers support for some stochastic Petri nets features: along with the information contained in the log, it is possible to assign a random variable that describes the distribution of execution times for the transitions, and it is possible to perform transient/steady state analysis (through conversion to a Continuous Time Markov Chain) and obtain some performance bounds through linear programming (Campos, Javier, and Manuel Silva. “Structural techniques and performance bounds of stochastic Petri net models.” Advances in Petri Nets 1992. Springer, Berlin, Heidelberg, 1992. 352-391.).

The goal of the demo is to introduce the participants to applications of the PM4Py library in the Petri nets context (discovery, conformance checking, importing/exporting, frequency/performance decoration, …).