Published August 28, 2026 | Version v1

State-Aware Object-Centric Process Mining: Two Synthetic OCEL 2.0 Evaluation Logs

Authors/Creators

Description

## Overview

This dataset contains two synthetic, paper-scale object-centric event logs created for the
evaluation of FlowVault, a browser-based platform for state-aware object-centric process mining
(SA-OCPM). The scenarios cover:

- inventory management, with stock-policy states along item-location lifecycles; and
- manufacturing and predictive maintenance, with operational states along machine lifecycles.

The logs support evaluation of deterministic state-expression correctness, operational state
validity, state-aware pattern and transition analysis, state-aware object-centric directly-follows
graphs, transition KPIs, and unsupervised execution-state detection. Both logs use the OCEL 2.0
JSON exchange format and contain synthetic data only; they contain no personal or confidential
information.

These are the complete observed logs, including passive inventory observations or machine
telemetry. The derived `observed.behavior.ocel.json` variants present in the source evaluation
bundle are not part of this dataset.

## Dataset contents

| File | Scenario | Original source file |
|---|---|---|
| `inventory-management.ocel.json` | Inventory management | `results/saocpm_15x/inventory-paper/observed.ocel.json` |
| `manufacturing-maintenance.ocel.json` | Manufacturing and predictive maintenance | `results/saocpm_15x/manufacturing-paper/observed.ocel.json` |

The OCEL files were copied without content changes and renamed to make the scenario explicit.
They are compact, single-line UTF-8/ASCII-compatible JSON documents with the standard OCEL 2.0
top-level collections `eventTypes`, `objectTypes`, `events`, and `objects`.

## Log summary

| Property | Inventory management | Manufacturing and maintenance |
|---|---:|---:|
| Events | 46,256 | 43,458 |
| Objects | 18,506 | 3,578 |
| Event types | 24 | 30 |
| Object types | 10 | 11 |
| Event-to-object relationships | 187,191 | 92,581 |
| Object-to-object relationships | 18,551 | 3,554 |
| Leading object type | `ItemLocation` | `Machine` |
| Leading objects | 48 | 8 |
| Configured study period | 2023-01-01 to 2025-01-01 UTC | 2024-01-01 to 2025-03-26 UTC |
| Observed event-time range after jitter | 2022-12-31T23:58:12Z to 2025-01-01T00:02:39Z | 2023-12-31T23:59:24Z to 2025-03-26T00:01:05Z |
| State labels in the evaluation notion | 5 | 8 |
| Expected lifecycle state transitions | 10,833 | 11,196 |

The observed ranges extend slightly beyond the configured study periods because controlled
timestamp jitter is part of the observation-noise profile.

### Inventory-management log

The inventory scenario follows stock, demand, replenishment, receipt, transfer, adjustment,
policy-change, and data-gap behavior. Each event used for state analysis is associated with one
leading `ItemLocation` lifecycle. The ten object types are:

`ItemLocation`, `Material`, `Location`, `Supplier`, `SalesOrderItem`,
`ReplenishmentProposal`, `PurchaseOrderItem`, `Delivery`, `TransferOrder`, and `Planner`.

The 24 declared event types cover initialization and end snapshots; sales-order creation,
reservation, goods issue, backorder, and cancellation; replenishment proposal and approval;
purchase-order creation and change; supplier confirmation, delay, expedition, receipt, and
rejection; transfers; cycle counts and adjustments; policy updates; and data-gap boundaries.

The paper profile spans 731 days and uses 48 item-locations, 24 materials, three locations, six
suppliers, and four planners. Its controlled observation-noise profile uses 1% event-attribute
MCAR masking, 0.5% relationship MCAR masking, and timestamp jitter configured at two minutes.

### Manufacturing and predictive-maintenance log

The manufacturing scenario combines production, telemetry, alarms, quality holds, failures,
maintenance response, repair, inspection, testing, restart, and recovery. Each event used for
state analysis is associated with one leading `Machine` lifecycle. The eleven object types are:

`Machine`, `ProductionOrder`, `Operation`, `WorkOrder`, `Component`, `MaterialLot`, `Alarm`,
`Inspection`, `Operator`, `MaintenanceTeam`, and `Shift`.

The 30 declared event types cover initialization and end snapshots; production release, setup,
and operation; sensor snapshots and alarms; defect and quality-hold handling; automatic stops;
maintenance requests, work orders, dispatch, diagnosis, repair, replacement, calibration, and
inspection; test runs; restart; and maintenance completion.

The paper profile spans 450 days, uses eight machines, and emits scheduled telemetry at a
two-hour cadence. Its controlled observation-noise profile uses 1% telemetry MCAR masking, 0.2%
process-event MCAR deletion, 0.2% relationship MCAR masking, and timestamp jitter configured at
one minute.

## State semantics used in the evaluation

The evaluation deliberately separates several meanings of “state”:

1. **Explicit operational state** is a discrete event label produced by a deterministic
   FlowVault state expression. This is the state used in state-aware patterns, transition KPIs,
   lifecycle views, and state-aware OC-DFGs.
2. **Independent reference state** uses the same domain taxonomy but is computed independently by
   the simulator-side oracle. It is used to test expression correctness without sharing the query
   evaluator's implementation. Reference labels are not included in the observed OCEL files.
3. **Hidden execution regime** describes the mechanism that generated an episode, such as a
   supplier delay or bearing degradation. These simulator-only labels are used to evaluate
   automatic state detection and are not present in the observed logs.
4. **Discovered execution state** is a self-organizing-map (SOM) cell learned from numerical
   lifecycle-window features after PCA projection. A discovered cell is an empirical execution
   abstraction, not one of the explicit CASE-query labels.
5. For manufacturing, **physical truth** (wear, true health, and fault family) and a deliberately
   **noisy operational record** are additional, separately evaluated notions. Neither is included
   as a label in the deposited observed log.

For the explicit and reference notions, the state at an event is the **post-event state**. CASE
branches are evaluated from top to bottom, so the order shown below defines precedence. The
`FOR LEADING OBJECT TYPE` clause defines the lifecycle basis. Only events related to at least one
object of that leading type receive the derived `state` attribute.

The deposited logs contain the observable attributes needed by these expressions but do not
already contain a derived `state`, `reference_state`, hidden-regime label, future outcome,
injected-pattern identifier, or causal-treatment outcome.

### Inventory state expression

```sql
STATE state FOR LEADING OBJECT TYPE 'ItemLocation' AS CASE
  WHEN event.data_complete = false THEN 'Unknown'
  WHEN event.critical_understock = true THEN 'Critical Understock'
  WHEN event.on_hand_after < event.lower_threshold THEN 'Understock'
  WHEN event.on_hand_after > event.upper_threshold THEN 'Overstock'
  ELSE 'Normal'
END
```

The five-state inventory notion is:

- `Unknown`: required stock or threshold data are unavailable;
- `Critical Understock`: confirmed demand inside the decision horizon exceeds usable stock plus
  timely inbound;
- `Understock`: post-event on-hand stock is below the lower policy threshold;
- `Overstock`: post-event on-hand stock is above the upper policy threshold; and
- `Normal`: post-event on-hand stock lies within the policy thresholds.

`Critical Understock` has precedence over ordinary `Understock`. The query reads the observable
`critical_understock` flag for the critical-demand test and the post-event stock and threshold
attributes for the remaining comparisons.

Applying this expression to the full inventory log is expected to assign all 46,256 events:

| State | Events |
|---|---:|
| `Unknown` | 5,986 |
| `Critical Understock` | 26,148 |
| `Understock` | 3,431 |
| `Overstock` | 1,187 |
| `Normal` | 9,504 |

### Manufacturing state expression

```sql
STATE state FOR LEADING OBJECT TYPE 'Machine' AS CASE
  WHEN event.data_complete = false THEN 'Unknown'
  WHEN event.down_active = true OR event.mode = 'DOWN' THEN 'Down'
  WHEN event.quality_hold_active = true THEN 'Quality Hold'
  WHEN event.recovery_active = true THEN 'Recovery'
  WHEN event.mode = 'SETUP' THEN 'Setup'
  WHEN event.degraded_latched = true THEN 'Degraded'
  WHEN event.mode = 'RUNNING' THEN 'Running'
  ELSE 'Idle'
END
```

The eight-state manufacturing notion is:

- `Unknown`: telemetry or required mode data are incomplete;
- `Down`: a failure stop or `DOWN` mode is active;
- `Quality Hold`: a quality hold is active while the machine is not Down;
- `Recovery`: restart validation has started but the stable-run requirement has not yet been met;
- `Setup`: machine mode is `SETUP`;
- `Degraded`: the observed degradation hysteresis is latched;
- `Running`: machine mode is `RUNNING`; and
- `Idle`: the machine is available and not processing.

The `degraded_latched` input is maintained by an observed-data hysteresis state machine. It enters
the degraded condition when health is at or below 0.65, a critical alarm occurs, or
vibration/temperature exceeds its entry threshold for two samples. It exits only when health is
at or above 0.75 and all sensors remain below their exit thresholds for four samples. Recovery
lasts from restart or test-run start until 180 minutes of stable running have elapsed without a
new warning.

Applying this expression to the full manufacturing log is expected to assign all 43,458 events:

| State | Events |
|---|---:|
| `Unknown` | 4,685 |
| `Down` | 1,418 |
| `Quality Hold` | 12 |
| `Recovery` | 841 |
| `Setup` | 875 |
| `Degraded` | 1,455 |
| `Running` | 34,171 |
| `Idle` | 1 |

### Hidden regimes used for automatic-state evaluation

Hidden regimes are ground truth for evaluating whether automatically discovered SOM cells are
stable and interpretable. They are intentionally absent from the OCEL event attributes.

- Inventory regimes: `Nominal Replenishment`, `Stable Low Movement`,
  `Demand Surge Without Inbound`, `Supplier Delay`, `Replenishment In Transit`,
  `Receipt-Driven Excess`, `Forecast or Policy Bias`, `Transfer Recovery`,
  `Count Discrepancy`, and `Data Gap`.
- Manufacturing regimes: `Healthy Steady Run`, `Setup or Changeover`, `High-Load Wear`,
  `Bearing Degradation`, `Thermal Drift`, `Quality Drift`, `Alarm Escalation`,
  `Waiting for Maintenance`, `Active Repair`, `Post-Repair Recovery`, `Failed`, `Idle`, and
  `Data Gap`.

## Using the logs

Any OCEL 2.0-compatible reader can parse the two JSON files. In FlowVault, import a log and apply
the corresponding expression above in the state-query editor. FlowVault adds a derived string
event attribute named `state`; re-exporting the active log produces a self-describing OCEL 2.0
file with `state` declared on its event types.

For state-aware analyses, preserve the leading object type from the expression:

- `ItemLocation` for `inventory-management.ocel.json`;
- `Machine` for `manufacturing-maintenance.ocel.json`.

All timestamps are serialized as ISO 8601 UTC timestamps. Attribute values retain OCEL types
(`string`, `time`, `integer`, `float`, or `boolean`), and both event-to-object and object-to-object
relationships are included.

## References

- OCEL 2.0 specification and formats: <https://www.ocel-standard.org/2.0/>
- Kretzschmann, Berti, and van der Aalst, *State-Aware Object-Centric Process Mining: Enhancing
  OCEL 2.0 with Explicit State Transitions*:
  <https://www.alessandroberti.it/new_papers/2025_Dina_SAOCPM.pdf>
- FlowVault source and evaluation implementation:
  <https://github.com/fit-alessandro-berti/flowvault>

Files

inventory-management.ocel.csv

Files (382.6 MB)

Name Size
md5:8d5cdfdff5ffb74f638c2775286e7678
21.8 MB Preview Download
md5:5c88c033b16539735eb1b786351852cc
59.9 MB Preview Download
md5:bbcc97c0e9789126e172dbf834abe456
26.5 MB Download
md5:8fbdd282d1bf78817f55ea65b7e6b759
82.8 MB Preview Download
md5:8bed29a524e5231124f30f5b705ebe3d
2.7 MB Preview Download
md5:efe606b6eeb258334e353d62150926c1
21.9 MB Preview Download
md5:5291c2b17d07947553c2e480a9e6686a
57.2 MB Preview Download
md5:7be2a8e901b641a9ea923bbfe0111d27
27.4 MB Download
md5:e3353896ba3034028edf38ef281298d4
77.7 MB Preview Download
md5:d3df7ebae2930a2e8c21396b7b2127af
4.7 MB Preview Download