Discovery and the artifact DAG
The miners
Section titled “The miners”| Plugin | Runtime | Produces | Use it for |
|---|---|---|---|
| Inductive Miner (IM, IMf) | Rust → wasm | ProcessTree |
The default. Guarantees soundness; noise controls generalization. |
| Inductive Miner (pm4py) | Python → Pyodide | ProcessTree, AcceptingPetriNet |
Cross-checking against the reference implementation. |
| Heuristics Miner | Rust → wasm | CausalNet, AcceptingPetriNet |
Noisy logs where frequency thresholds beat structural cuts. |
| Alpha Miner (Classic) | Rust → wasm | AcceptingPetriNet |
Teaching, and demonstrating its own limitations. |
| Directly-Follows Graph | Rust → wasm | DFG |
The honest first look, and the shared input behind the others. |
The Alpha Miner is deliberately not a default: no noise tolerance, no short loops, no duplicate labels. It is in the library because it is worth showing students what those limitations look like on real data.
Two implementations of the same algorithm, on purpose
Section titled “Two implementations of the same algorithm, on purpose”Both a Rust and a pm4py Inductive Miner ship. That is not redundancy — it is how you check yourself. Discovering with both on the same log and diffing the resulting trees is a cheap sanity check when a model surprises you, and a reasonable thing to report in a paper.
Parameter sweeps are the point of the DAG
Section titled “Parameter sweeps are the point of the DAG”Re-running a miner with a different noise threshold produces a new artifact, a sibling of the first, with its parameters recorded on the execution node. Nothing is overwritten.
Practically, this means the workflow is:
- Discover at
noise = 0.0— everything the log contains. - Discover at
noise = 0.2— the readable version. - Keep both. The difference between them is exactly the infrequent behavior, which is often the finding.
Because every artifact carries the parameters and runtime version that produced it, the set stays interpretable a week later, and a reviewer opening the workspace sees the same thing you did.
Intermediate artifacts stay out of the way
Section titled “Intermediate artifacts stay out of the way”Some plugins produce artifacts internally — a metro-map view discovers an object-centric Petri net on the way, for example. Those intermediates are hidden from the tree and reused rather than recomputed, so a parameter change does not litter the workspace with near-duplicate by-products.
Model conversion
Section titled “Model conversion”ProcessTree → AcceptingPetriNet is available, and matters: several conformance techniques want a net rather than a tree. The conversion is a recorded action like any other, so the provenance of a conformance result still leads back to the log through the miner that produced the tree.