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