Skip to content

Object-centric techniques

Object-centric support is not a mode bolted onto a case-based tool. OCEL 2.0 is a first-class input with its own artifact types, its own miners and its own views.

Use OCEL when one event legitimately touches several objects of different types and flattening loses something you need. The symptom in case-based analysis is the convergence and divergence problem: flatten to order and item-level events get duplicated across items; flatten to item and order-level events appear once per item. Either way the frequencies are wrong, and no amount of filtering fixes it.

If your process genuinely has one dominant object, do not reach for OCEL. It costs modeling effort and produces models that need more explaining.

Plugin Runtime Produces
Object-Centric Petri Net SQL + Rust → wasm ObjectCentricPetriNet
OCPN Discovery (pm4py) Python → Pyodide ObjectCentricPetriNet
Object-Centric Inductive Miner SQL + Rust → wasm ObjectCentricProcessTree, ObjectCentricPetriNet
OC-DFG Discovery (pm4py) Python → Pyodide OCDFG
TOTeM Discovery Python + view TotemModel

The native OCPN miner projects the log per selected object type, discovers a net for each, and merges them on shared activities. Having a pm4py implementation alongside it is again deliberate: it is the cross-check.

OCIM is Van Detten’s Object-Centric Inductive Miner, producing a typed, block-structured model directly from OCEL — the object-centric analog of the guarantee the ordinary Inductive Miner gives you.

TOTeM works at a different level: rather than a control-flow model, it discovers a type-level graph of how object types relate to one another over time, with cardinalities. It is often the right first thing to run on an unfamiliar OCEL log, because it tells you what the data is about before you try to model behavior.

  • OCEL/OCPN Replay replays every timestamped event against a chosen object-centric net and reports where tokens go missing.
  • OCPN Comparison diffs two nets per object type, reporting τ-abstracted directly-follows differences and behavioral-profile changes — the tool for before/after questions.
  • Synchronization Lens explains which related objects are keeping a target object from satisfying a synchronization condition. Useful when the question is “why is this specific order stuck”, not “how does the process behave on average”.
  • OCPN (React Flow) and OC-DFG (React Flow) render with an ELK layered layout, interactively.
  • Metro Map draws object types as transit lines over a shared process spine. It is the view to put in front of someone who does not read Petri nets, and it discovers its own OCPN internally.
  • Interaction Atlas covers when and how objects co-occur across their lifecycles.
  • Cases & Variants (OCEL) is the object-centric analog of the familiar variants view: cases become process executions, compared by graph isomorphism.
  • OCEL 2.0 Inspector is the reference view for an unfamiliar log — object and event type graphs, paginated tables, per-object lifecycle and relations.
  • Cardinality Impact Explorer propagates a cardinality scenario into variants and elapsed times, for “what if each order had three items instead of one” questions.

OCEL 2.0 in both JSON and SQLite. Import is streaming, like everything else, and the log is stored as Parquet locally.

Scaling past the browser.