Skip to main content

oc_declare/
oc_declare.rs

1use std::{env::args, path::PathBuf};
2
3use process_mining::{
4    core::event_data::object_centric::linked_ocel::SlimLinkedOCEL,
5    discovery::object_centric::oc_declare::{
6        discover_behavior_constraints, OCDeclareDiscoveryOptions,
7    },
8    Importable, OCEL,
9};
10
11pub fn main() {
12    let path_opt = args().nth(1);
13    if let Some(path) = path_opt.map(PathBuf::from) {
14        let ocel = OCEL::import_from_path(&path).expect("Failed to import OCEL.");
15        let locel = SlimLinkedOCEL::from_ocel(ocel);
16        let discovered_constraints = discover_behavior_constraints(
17            &locel,
18            OCDeclareDiscoveryOptions {
19                ..Default::default()
20            },
21        );
22        println!(
23            "Discovered {} OC-DECLARE constraints",
24            discovered_constraints.len()
25        );
26    }
27}