process_mining 0.4.0

Process Mining library for working with (object-centric) event data
Documentation

process_mining

A Rust library for Process Mining, providing efficient data structures and algorithms for working with event data.

Crates.io Docs.rs

Module Structure

The library is organized into the following main modules:

  • core: Fundamental data structures (e.g., EventLog, OCEL, PetriNet) and I/O traits.
  • discovery: Algorithms for discovering process models from event data (e.g., Alpha+++, DFG).
  • conformance: Techniques for checking conformance between data and models (e.g., Token-based replay).

Examples

You can find various usage examples in the examples/ directory, covering:

  • Importing and analyzing XES event logs (event_log_stats.rs)
  • Working with OCEL 2.0 data (ocel_stats.rs)
  • Process discovery (process_discovery.rs)
  • Exporting to DuckDB/KuzuDB (ocel_duckdb_export.rs, ocel_kuzudb_export.rs)

To run an example:

cargo run --example event_log_stats -- <path_to_log.xes>

For more details, see the Examples README.

Features

  • Event Data Support:
    • XES: Import and export of IEEE XES event logs.
    • OCEL 2.0: Full support for Object-Centric Event Logs (JSON, XML, SQLite, and also an unofficial DuckDB format).
  • Process Discovery:
    • Directly-Follows Graphs (DFG)
    • Alpha Miner
  • Process Models:
    • Petri Nets (import/export PNML, export to SVG/PNG via Graphviz)
  • Performance: Built with Rust for high performance and memory safety.

Documentation

Full API documentation is available at docs.rs/process_mining.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.