Implementation of Basic Inductive Miner#47
Conversation
…g with Guarantees' from S. J. J. Leemans
Feature/inductive miner
|
Hi @Kuhlkrypto,
Thanks again for your work and Cheers, |
|
Hey @aarkue
I hope you haven't reviewed too much of the code yet. I'll start rewriting the affected sections, and I'll also take this as an opportunity to see if I can determine why the behavior differs from PM4Py / ProM. Cheers |
|
Hi @aarkue, sorry for the delay. I reached out to Sander Leemans regarding the ported parts of the implementation and received permission to use/adapt the code, so the licensing situation should now be clarified. In the meantime, I also added a fold operator for improved simplification/analysis of the resulting process trees and fixed two bugs related to tau handling. I'll continue looking into the behavioral differences compared to PM4Py/ProM as well. Cheers, |
|
Hi @Kuhlkrypto, Thus, my recommended plan would be as follows:
For Step 3, you are, of course, very welcome to continue working on it as well, but don't feel obligated in case you don't want to/have time. Worst case, I or somebody else could also pick it up from there. How does this sound to you? Would that be an option you'd agree with? If yes, you can go ahead and do 1. and I will take care of setting up 2/3. Thanks again for your effort, and Cheers, |
Summary
This Pull request aims to introduce the basic inductive miner to the rust4pm library.
The implementation provides a discovery foundation for the Rust ecosystem that outputs a Process Tree, following the formal definitions of the Inductive Miner in literature.
Motivation
The goal was to write a "true to the source" implementation of the Inductive Miner in Rust, i.e. an implementation that combines the algorithmic ideas and clean recursive structure of the Inductive Miner while benefiting from Rust's memory safety and performance.
Scope of Work
The discovery logic is based on the Inductive Miner as described in Chapter 6.1 in "Robust Process Mining with Guarantees" by Sander J. J. Leemans.
This includes:
Unit Tests and Documentation
Each file contains a test mod containing basic unit test, verifying the correctness of cut detection, log splitting, fallthroughs etc. against test logs. Furthermore, all important functions and structs have been documented with "doc-comments"
Implementation Notes
In some cases the implementation ports logic from the ProM workbench, those files have been marked accordingly.
Contributor:
I conducted this work while employed at TU Dresden.