Synthetic relational databases and reference OCELs
Description
# Synthetic relational databases and reference OCELs
## Overview
This dataset contains six deterministic, fully synthetic relational source-system databases for benchmarking relational-to-object-centric event-log extraction. Each source database is paired with one canonical reference OCEL serialized in all five formats supported by the OCEL 2.1 format revision.
The source databases are deliberately **not event logs**. Business milestones are distributed over domain-native tables and mixed with technical state, duplicates, corrections, retries, historical rows, projections, or redundant evidence. The reference OCELs are the extraction oracles: they fuse redundant evidence into canonical business events, normalize timestamps to UTC, retain stable source provenance, and relate each event to all relevant business objects.
All data is synthetic. It contains no real people, organizations, claims, patients, permits, commercial documents, or battery assets.
## Scenarios
| Scenario | Domain | Primary / secondary case notion | Source rows | OCEL events | OCEL objects | Event types | Object types |
|---|---|---|---:|---:|---:|---:|---:|
| ForgeFlow (`forgeflow`) | engineer-to-order manufacturing | SalesOrder / Shipment | 140,355 | 97,884 | 59,036 | 48 | 28 |
| TrialVersion (`trialversion`) | clinical-trial execution | Participant / Sample | 240,809 | 74,661 | 33,858 | 56 | 19 |
| ProcureChange (`procurechange`) | industrial procure-to-pay | PurchaseRequisition / Invoice | 730,158 | 100,504 | 46,353 | 55 | 20 |
| ClaimStream (`claimstream`) | insurance claims | Claim / Exposure | 115,248 | 99,715 | 40,610 | 58 | 21 |
| PermitFlow (`permitflow`) | building-permit approval | PermitApplication / Inspection | 133,276 | 118,084 | 32,783 | 63 | 17 |
| BatteryVault (`batteryvault`) | circular battery lifecycle | BatteryPack / ServiceOrder | 158,791 | 88,346 | 25,779 | 60 | 18 |
### Relational persistence patterns
- **ForgeFlow — engineer-to-order manufacturing.** Normalized OLTP with business milestones distributed across commercial, engineering, supply, quality, fulfilment, and finance evidence tables. The source database has 58 application tables.
- **TrialVersion — clinical-trial execution.** In-table version histories with valid time, recording time, logical identities, edit sessions, and historized relations. The source database has 24 application tables.
- **ProcureChange — industrial procure-to-pay.** SAP-style change documents and archive copies combined with requisition, receipt, inspection, invoice, accounting, and payment tables. The source database has 44 application tables.
- **ClaimStream — insurance claims.** Append-only, schema-versioned event store supplemented by command results, inbox records, snapshots, projections, sagas, and an outbox. The source database has 18 application tables.
- **PermitFlow — building-permit approval.** Workflow-engine execution, activity, task, variable, message, migration, job, and incident histories linked to domain tables. The source database has 38 application tables.
- **BatteryVault — circular battery lifecycle.** Bitemporal Data Vault hubs, historized links and satellites, identifier crosswalks, and a balanced asset journal/ledger. The source database has 63 application tables.
Every scenario uses 3,000 primary instances and deterministic seed `20260820`. The reference logs include qualified event-to-object and object-to-object relations, temporal object attribute changes, activity-specific event attributes, resource roles/calendars, exception paths, and stable source table/record provenance.
## File naming and layout
For each scenario slug `<name>`, the folder contains:
| Filename | Meaning |
|---|---|
| `<name>.sqlite` | Relational source-system SQLite database. This is the extraction input, not an OCEL. |
| `<name>.xmlocel.gz` | Gzip-compressed OCEL XML serialization. |
| `<name>.jsonocel.gz` | Gzip-compressed OCEL JSON serialization. |
| `<name>.ocel.sqlite` | OCEL relational SQLite serialization. Do not confuse it with `<name>.sqlite`. |
| `<name>.ocel.csv` | Compact, single-file OCEL 2.1 CSV serialization. |
| `<name>.ocel.zip` | OCEL 2.1 bundled ZIP using typed Parquet tables. This is a multi-table interchange format, not merely a compressed copy of another file. |
The OCEL 2.0 metamodel defines the events, objects, qualified relations, and temporal object attributes. The OCEL 2.1 format revision adds compact CSV and bundled CSV/Parquet serializations to the XML, JSON, and SQLite formats. See the [OCEL formats overview](https://www.ocel-standard.org/specification/formats/) and [bundled-format specification](https://www.ocel-standard.org/specification/formats/bundled/).
The standard interchange relation in all five formats consists of source ID, target ID, and qualifier. The generation oracle also uses `valid_from`, `valid_to`, and `relation_state` as additional in-memory/SQLite O2O metadata; formats that implement only the standard O2O fields do not carry these non-standard extra relation columns. During interchange export, O2O rows are projected onto `(source ID, target ID, qualifier)`. Rows that differ only in the non-standard temporal columns therefore become one set-valued standard O2O relation. This standardization is applied before all five writers so the five distributed serializations remain equivalent.
## Reference OCEL semantics
The five `<name>.ocel.*`/`*ocel.gz` files for a scenario are alternative serializations of the same reference log. They are not shards and should not be combined. Each reference log contains:
- canonical business events with globally stable IDs, activity names, UTC timestamps, activity-appropriate attributes, actors, roles, and source provenance;
- typed business objects with stable IDs and initial attributes;
- qualified event-to-object relationships;
- qualified object-to-object relationships;
- temporal object-attribute changes.
Event attributes include applicable subsets of `actor`, `actor_role`, `resource_calendar`, `source_system`, `source_table`, `source_record_id`, `recorded_at`, `location`, change details, exception details, amounts/currencies, and quantities/units. Sparse attributes are intentional: an amount, quantity, reason, or changed field appears only where it is meaningful.
The source database contains ambiguous and non-authoritative records by design. A source row should not automatically be interpreted as an event. Business effective time takes precedence over recording/load time; technical corrections, projections, replays, retries, and redundant messages require scenario-specific filtering or fusion.
## Using the files
Open a source database with any SQLite client, for example:
```bash
sqlite3 forgeflow.sqlite
```
Read any reference serialization with PM4Py:
```python
import pm4py
xml_log = pm4py.read_ocel2_xml("forgeflow.xmlocel.gz")
json_log = pm4py.read_ocel2_json("forgeflow.jsonocel.gz")
sqlite_log = pm4py.read_ocel2_sqlite("forgeflow.ocel.sqlite")
csv_log = pm4py.read_ocel2_csv("forgeflow.ocel.csv")
bundle_log = pm4py.read_ocel2_bundle("forgeflow.ocel.zip")
```
The upload artifacts were produced with PM4Py `2.7.23.6` using the requested writer calls:
```python
ocel = pm4py.read_ocel2_sqlite("ground_truth.ocel2.sqlite")
pm4py.write_ocel2_xml(ocel, "<name>.xmlocel.gz")
pm4py.write_ocel2_json(ocel, "<name>.jsonocel.gz")
pm4py.write_ocel2_sqlite(ocel, "<name>.ocel.sqlite")
pm4py.write_ocel2_csv(ocel, "<name>.ocel.csv")
pm4py.write_ocel2_bundle(ocel, "<name>.ocel.zip")
```
The bundle writer's default `storage_format="parquet"` was retained.
## Validation and integrity
All six committed benchmark validation reports had status `PASS`, every named check was true, and primary case-view fidelity against the oracle was `1.0` before packaging. During packaging:
1. each source and canonical oracle SHA-256 digest was checked against its scenario validation report;
2. `PRAGMA integrity_check` returned `ok` for every copied source database and generated OCEL SQLite file;
3. every generated OCEL file was read back with its matching PM4Py reader; and
4. event IDs/types, object IDs/types, qualified E2O relations, qualified O2O relations, temporal change keys, and all relevant row counts were compared with the canonical oracle.
Machine-readable results are in `validation.json`. File digests are in `SHA256SUMS`; verify them from this directory with:
```bash
sha256sum -c SHA256SUMS
```
## File inventory
| File | Size |
|---|---:|
| `batteryvault.jsonocel.gz` | 6.0 MiB |
| `batteryvault.ocel.csv` | 48.9 MiB |
| `batteryvault.ocel.sqlite` | 52.0 MiB |
| `batteryvault.ocel.zip` | 3.8 MiB |
| `batteryvault.sqlite` | 33.2 MiB |
| `batteryvault.xmlocel.gz` | 5.3 MiB |
| `claimstream.jsonocel.gz` | 6.7 MiB |
| `claimstream.ocel.csv` | 55.2 MiB |
| `claimstream.ocel.sqlite` | 57.5 MiB |
| `claimstream.ocel.zip` | 4.5 MiB |
| `claimstream.sqlite` | 47.6 MiB |
| `claimstream.xmlocel.gz` | 6.0 MiB |
| `forgeflow.jsonocel.gz` | 6.7 MiB |
| `forgeflow.ocel.csv` | 60.9 MiB |
| `forgeflow.ocel.sqlite` | 59.1 MiB |
| `forgeflow.ocel.zip` | 4.6 MiB |
| `forgeflow.sqlite` | 27.4 MiB |
| `forgeflow.xmlocel.gz` | 6.0 MiB |
| `permitflow.jsonocel.gz` | 7.5 MiB |
| `permitflow.ocel.csv` | 62.9 MiB |
| `permitflow.ocel.sqlite` | 68.9 MiB |
| `permitflow.ocel.zip` | 4.9 MiB |
| `permitflow.sqlite` | 31.1 MiB |
| `permitflow.xmlocel.gz` | 6.8 MiB |
| `procurechange.jsonocel.gz` | 7.1 MiB |
| `procurechange.ocel.csv` | 61.3 MiB |
| `procurechange.ocel.sqlite` | 64.7 MiB |
| `procurechange.ocel.zip` | 4.7 MiB |
| `procurechange.sqlite` | 136.4 MiB |
| `procurechange.xmlocel.gz` | 6.4 MiB |
| `trialversion.jsonocel.gz` | 5.0 MiB |
| `trialversion.ocel.csv` | 42.3 MiB |
| `trialversion.ocel.sqlite` | 43.9 MiB |
| `trialversion.ocel.zip` | 3.4 MiB |
| `trialversion.sqlite` | 51.7 MiB |
| `trialversion.xmlocel.gz` | 4.5 MiB |
Files
batteryvault.ocel.csv
Files
(1.2 GB)
| Name | Size | |
|---|---|---|
|
md5:aaf59499522249b8ff920a9d97466019
|
6.3 MB | Download |
|
md5:4bbcb78593a314d7b1788d449c9bb4a3
|
51.3 MB | Preview Download |
|
md5:0229b63d70acbbe204b41572e236d9b7
|
54.5 MB | Download |
|
md5:96d3bb40c6ddb4515217fb52f142c63a
|
3.9 MB | Preview Download |
|
md5:d4d94c00a72606d78393d60e5b80398a
|
34.8 MB | Download |
|
md5:fa7a106b5d8f0c9c0ba0c47f0522a59e
|
5.6 MB | Download |
|
md5:11e2afd3172d90eefd448d938cee840e
|
7.0 MB | Download |
|
md5:d963fda75b40d8fe0bc3cc68496969f7
|
57.9 MB | Preview Download |
|
md5:0a66de4d69195f6a2fa0315b13a75978
|
60.3 MB | Download |
|
md5:d3ed3a93ef41e141bb0f3eec624eb6ff
|
4.7 MB | Preview Download |
|
md5:2d7b71dfb21870f9ced5a1eb470b7e1c
|
49.9 MB | Download |
|
md5:86dc0fe0fb2d7aac8ad18528246f14ff
|
6.3 MB | Download |
|
md5:6d66cf79e762bf2602678aa509f1ea7f
|
7.0 MB | Download |
|
md5:7df9960d9cbaffd0be75ef735ea64f10
|
63.9 MB | Preview Download |
|
md5:08a613a7301d3431e3016a44427bfbd4
|
62.0 MB | Download |
|
md5:5c90cbd131b5ce25194991eb375da764
|
4.8 MB | Preview Download |
|
md5:50136465cb971b6c6a972765fc2ce522
|
28.8 MB | Download |
|
md5:5c639276cb5a76b449510481a2a0865f
|
6.3 MB | Download |
|
md5:e1ae3075ce777bb3e5863e81722da68f
|
7.8 MB | Download |
|
md5:d4a38bf5c83f8b08ad2015da0eb7cd2a
|
66.0 MB | Preview Download |
|
md5:2b24fb915829df207f0f0f9e7715486b
|
72.2 MB | Download |
|
md5:5f75e79cb7417902b7a338abc41b7104
|
5.1 MB | Preview Download |
|
md5:d377e216ed8d55bf8d6b410b50ad71fc
|
32.6 MB | Download |
|
md5:509e8af87229f4ac5fee31972e109540
|
7.1 MB | Download |
|
md5:6be8de3e9e9732147d6c77888df34cf2
|
7.4 MB | Download |
|
md5:a70664c29a124bf8029d29ef4264aede
|
64.3 MB | Preview Download |
|
md5:0512da1b49bf22952a85e12f397db789
|
67.8 MB | Download |
|
md5:3011570247153f7a503105d6c142d73f
|
5.0 MB | Preview Download |
|
md5:843afdf6b98de2c83d6550dc95038a02
|
143.0 MB | Download |
|
md5:528e5cbb405560fce2fd6d6ae76ec189
|
6.7 MB | Download |
|
md5:84fa821298744c9a978039516858036a
|
3.3 kB | Download |
|
md5:d27f20ebd7755749e42055d3a05fabe5
|
5.3 MB | Download |
|
md5:64130498d6c8916e14d4b4d77dc75c80
|
44.3 MB | Preview Download |
|
md5:720ca3a544cd7b96c92f343e2b672da5
|
46.0 MB | Download |
|
md5:ffed739927c25b27d401be26dca2d593
|
3.5 MB | Preview Download |
|
md5:5e6d45276f89f0ef4d49f46fb46a6efc
|
54.2 MB | Download |
|
md5:f8369267abaa9bd224782d5dd6a4ad7c
|
4.7 MB | Download |