datasynth_ocpm/lib.rs
1#![deny(clippy::unwrap_used)]
2//! Object-Centric Process Mining (OCPM) module for synthetic data generation.
3//!
4//! This crate provides OCPM data structures compatible with the OCEL 2.0 standard,
5//! enabling event-to-object many-to-many relationships for process mining analysis.
6//!
7//! # Key Concepts
8//!
9//! - **Objects**: Business entities that evolve through processes (Orders, Invoices, etc.)
10//! - **Events**: Activities that occur on objects (Create, Approve, Post, etc.)
11//! - **Relationships**: Many-to-many links between objects (Order contains OrderLines)
12//! - **Variants**: Distinct execution patterns through processes
13//!
14//! # Modules
15//!
16//! - `models`: Core OCPM data structures (OCEL 2.0 compatible)
17//! - `generator`: Event generator from document flows
18//! - `export`: OCEL 2.0 JSON export functionality
19//!
20//! # Example
21//!
22//! ```ignore
23//! use datasynth_ocpm::{OcpmEventGenerator, OcpmEventLog, Ocel2Exporter};
24//!
25//! // Create event generator
26//! let mut generator = OcpmEventGenerator::new(42);
27//!
28//! // Generate events from P2P document flow
29//! let events = generator.generate_p2p_events(&purchase_order, &goods_receipt, &invoice, &payment);
30//!
31//! // Export to OCEL 2.0 format
32//! let exporter = Ocel2Exporter::new();
33//! exporter.export_to_file(&event_log, "output/ocel2.json")?;
34//! ```
35
36pub mod export;
37pub mod generator;
38pub mod models;
39
40pub use export::*;
41pub use generator::*;
42pub use models::*;