pm4py.objects.ocel.util.sampling module#

class pm4py.objects.ocel.util.sampling.Parameters(*values)[source]#

Bases: Enum

OBJECT_ID = 'param:object:id'#
EVENT_ID = 'param:event:id'#
NUM_ENTITIES = 'num_entities'#
pm4py.objects.ocel.util.sampling.sample_ocel_events(ocel: OCEL, parameters: Dict[Any, Any] | None = None) OCEL[source]#

Keeps a sample of the events of an object-centric event log

Parameters:
  • ocel – Object-centric event log

  • parameters

    Parameters of the algorithm, including:
    • Parameters.EVENT_ID => event identifier

    • Parameters.NUM_ENTITIES => number of events

Returns:

Sampled object-centric event log

Return type:

sampled_ocel

pm4py.objects.ocel.util.sampling.sample_ocel_objects(ocel: OCEL, parameters: Dict[Any, Any] | None = None) OCEL[source]#

Random samples the objects of the object-centric event log. Then, only the events related to at least one of these objects are filtered from the event log. As a note, the relationships between the different objects are probably going to be ruined by this sampling.

Parameters:
  • ocel – Object-centric event log

  • parameters

    Parameters of the algorithm, including:
    • Parameters.OBJECT_ID => object identifier

    • Parameters.NUM_ENTITIES => number of objects to retain

Returns:

Sampled object-centric event log

Return type:

sampled_ocel