process_mining
A Rust library for Process Mining, providing efficient data structures and algorithms for working with event data.
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:
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.