Skip to content

DatasetsEvaluation

SaraPettinari edited this page Feb 13, 2026 · 6 revisions

Datasets Evaluation

This page outlines a series of aggregation steps used for aggregating EKGs of different datasets and the resulting performances.


Datasets overview

Dataset ID Description #Events #Objects #Activities #Object Types
S-1M Soccer single match (matchId = 2575959; Atalanta 3172 vs Roma 3158) 1,613 37 10 3
S Full Italian soccer league 647,300 560 10 3
OM Order management (OCEL) 21,008 10,840 11 6
P2P Procure-to-pay (OCEL) 14,671 8,616 10 6
L Logistics (OCEL) 35,413 13,888 14 7
BPIC17 BPI Challenge 2017 (non-natively OCED) 1,202,267 223,661 26 5

Performance results

Notes:

  • Aggr Entity / Aggr Event indicate whether the step aggregates entity or event nodes.
  • +Attr indicates attribute-level aggregation is applied in that step.
  • Rel. Inference is the cost for inferring aggregated CORR/DF relationships.

Soccer - single match (S-1M)

Step #Aggregated Nodes Exec. Time (s) #nodes/ms
Aggr Entity 28 0.004 0.62
Aggr Entity 2 0.057 0.05
Aggr Event +Attr 1,613 0.300 5.36
Finalization 7 0.134 0.05
Rel. Inference - 0.182 -

Soccer - full league (S)

Step #Aggregated Nodes Exec. Time (s) #nodes/ms
Aggr Entity 20 0.900 0.02
Aggr Entity 7 0.092 0.07
Aggr Event +Attr 647,300 28.980 22.34
Finalization 533 0.223 2.33
Rel. Inference - 8.344 -

Order Management (OM)

Step #Aggregated Nodes Exec. Time (s) #nodes/ms
Aggr Entity 15 0.026 0.612
Aggr Entity +Attr 1,462 0.078 18.62
Aggr Entity +Attr 538 0.064 8.38
Aggr Event 21,008 2.380 8.84
Finalization 8,825 0.139 63.34
Rel. Inference - 0.617 -

Procure-to-Pay (P2P)

Step #Aggregated Nodes Exec. Time (s) #nodes/ms
Aggr Entity +Attr 2,296 0.268 8.56
Aggr Entity 927 0.051 18.26
Aggr Event 14,671 0.355 41.35
Finalization 5,393 0.170 31.83
Rel. Inference - 0.285 -

Logistics (L)

Step #Aggregated Nodes Exec. Time (s) #nodes/ms
Aggr Entity +Attr 1,999 0.128 15.65
Aggr Entity +Attr 254 0.070 3.57
Aggr Entity +Attr 346 0.060 5.65
Aggr Event +Attr 24,725 0.307 80.54
Aggr Event +Attr 10,688 0.221 48.27
Finalization 11,289 0.156 72.51
Rel. Inference - 0.249 -

BPI Challenge 2017 (BPIC17)

Step #Aggregated Nodes Exec. Time (s) #nodes/ms
Aggr Entity 31,509 0.552 51.10
Aggr Entity 42,995 0.297 144.68
Aggr Entity 31,509 0.209 150.14
Aggr Entity 149 0.010 14.73
Aggr Event 1,202,267 16.807 71.53
Finalization 117,499 1.550 75.81
Rel. Inference - 13.115 -

Aggregation specifications

Below you find the OCEAN query and the corresponding ocean-lib specification for each dataset.

Soccer dataset

Classical single match aggregation (S-1M)

OCEAN

AGGREGATE ENTITIES OF player BY entityType
AGGREGATE ENTITIES OF team BY entityType
AGGREGATE EVENTS BY activity

ocean-lib

AggrSpecification([
  AggrStep(aggr_type=ENTITIES, ent_type="player", group_by=[entityType], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=ENTITIES, ent_type="team",   group_by=[entityType], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=EVENTS, group_by=[activity], where=None, attr_aggrs=[])
])

Refined single match aggregation (S-1M)

OCEAN

AGGREGATE ENTITIES OF player BY role
AGGREGATE ENTITIES OF team BY objectId
AGGREGATE EVENTS BY activity WITH (time AGGREGATED BY MINMAX, position AGGREGATED BY MULTISET)

ocean-lib

AggrSpecification([
  AggrStep(aggr_type=ENTITIES, ent_type="player", group_by=["role"], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=ENTITIES, ent_type="team",   group_by=[objectId], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=EVENTS, group_by=[activity], where=None, attr_aggrs=[
    AttrAggr(name=time, function=AggrFunction.MINMAX),
    AttrAggr(name="position", function=AggrFunction.MULTISET)
  ])
])

Full league aggregation (S)

OCEAN

AGGREGATE ENTITIES OF team BY objectId
AGGREGATE ENTITIES OF position BY objectId
AGGREGATE EVENTS BY activity, match WITH (time AGGREGATED BY MINMAX, player AGGREGATED BY MULTISET)

ocean-lib

AggrSpecification([
  AggrStep(aggr_type=ENTITIES, ent_type="team",     group_by=[objectId], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=ENTITIES, ent_type="position", group_by=[objectId], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=EVENTS, group_by=[activity, "match"], where=None, attr_aggrs=[
    AttrAggr(name=time, function=AggrFunction.MINMAX),
    AttrAggr(name="player", function=AggrFunction.MULTISET)
  ])
])

Order Management (OM)

OCEAN

AGGREGATE ENTITIES OF customers BY objectId
AGGREGATE ENTITIES OF orders BY entityType WHERE price ≥ 1000 WITH price AGGREGATED BY AVG
AGGREGATE ENTITIES OF orders BY entityType WHERE price < 1000 WITH price AGGREGATED BY AVG
AGGREGATE EVENTS BY activity

ocean-lib

AggrSpecification([
  AggrStep(aggr_type=ENTITIES, ent_type="customers", group_by=[objectId], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=ENTITIES, ent_type="orders", group_by=[entityType], where="price >= 1000",
           attr_aggrs=[AttrAggr(name="price", function=AggrFunction.AVG)]),
  AggrStep(aggr_type=ENTITIES, ent_type="orders", group_by=[entityType], where="price < 1000",
           attr_aggrs=[AttrAggr(name="price", function=AggrFunction.AVG)]),
  AggrStep(aggr_type=EVENTS, group_by=[activity], where=None, attr_aggrs=[]),
])

Procure-to-Pay (P2P)

OCEAN

AGGREGATE ENTITIES OF material BY Storage_Location WITH (Quantity AGGREGATED BY AVG, Net_Price AGGREGATED BY SUM)
AGGREGATE ENTITIES OF purchase_requisition BY Purchasing_Group
AGGREGATE EVENTS BY activity

ocean-lib

AggrSpecification([
  AggrStep(aggr_type=ENTITIES, ent_type="material", group_by=["Storage_Location"], where=None, attr_aggrs=[
    AttrAggr(name="Quantity", function=AggrFunction.AVG),
    AttrAggr(name="Net_Price", function=AggrFunction.SUM)
  ]),
  AggrStep(aggr_type=ENTITIES, ent_type="purchase_requisition", group_by=["Purchasing_Group"], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=EVENTS, group_by=[activity], where=None, attr_aggrs=[])
])

Logistics (L)

OCEAN

AGGREGATE ENTITIES OF Container BY Status WITH (Weight AGGREGATED BY AVG, Amount_of_Handling_Units AGGREGATED BY MINMAX)
AGGREGATE ENTITIES OF Customer_Order BY entityType WHERE Amount_of_Goods ≥ 1000 WITH Amount_of_Goods AGGREGATED BY MINMAX
AGGREGATE ENTITIES OF Customer_Order BY entityType WHERE Amount_of_Goods < 1000 WITH Amount_of_Goods AGGREGATED BY MINMAX
AGGREGATE EVENTS BY activity WHERE time ≤ 2024-03-31 WITH time AGGREGATED BY MINMAX
AGGREGATE EVENTS BY activity WHERE time > 2024-03-31 WITH time AGGREGATED BY MINMAX

ocean-lib

AggrSpecification([
  AggrStep(aggr_type=ENTITIES, ent_type="Container", group_by=["Status"], where=None, attr_aggrs=[
    AttrAggr(name="Weight", function=AggrFunction.AVG),
    AttrAggr(name="Amount_of_Handling_Units", function=AggrFunction.MINMAX)
  ]),
  AggrStep(aggr_type=ENTITIES, ent_type="Customer_Order", group_by=[entityType], where="Amount_of_Goods >= 1000",
           attr_aggrs=[AttrAggr(name="Amount_of_Goods", function=AggrFunction.MINMAX)]),
  AggrStep(aggr_type=ENTITIES, ent_type="Customer_Order", group_by=[entityType], where="Amount_of_Goods < 1000",
           attr_aggrs=[AttrAggr(name="Amount_of_Goods", function=AggrFunction.MINMAX)]),
  AggrStep(aggr_type=EVENTS, group_by=[activity], where='time <= datetime("2024-03-31T00:00:00")',
           attr_aggrs=[AttrAggr(name=time, function=AggrFunction.MINMAX)]),
  AggrStep(aggr_type=EVENTS, group_by=[activity], where='time > datetime("2024-03-31T00:00:00")',
           attr_aggrs=[AttrAggr(name=time, function=AggrFunction.MINMAX)]),
])

BPI Challenge 2017 (BPIC17)

OCEAN

AGGREGATE ENTITIES OF Application BY entityType
AGGREGATE ENTITIES OF Offer BY entityType
AGGREGATE ENTITIES OF Workflow BY entityType
AGGREGATE ENTITIES OF Resource BY entityType
AGGREGATE EVENTS BY activity, lifecycle

ocean-lib

AggrSpecification([
  AggrStep(aggr_type=ENTITIES, ent_type="Application", group_by=[entityType], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=ENTITIES, ent_type="Offer",       group_by=[entityType], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=ENTITIES, ent_type="Workflow",    group_by=[entityType], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=ENTITIES, ent_type="Resource",    group_by=[entityType], where=None, attr_aggrs=[]),
  AggrStep(aggr_type=EVENTS, group_by=[activity, "lifecycle"], where=None, attr_aggrs=[]),
])