pm4py.algo.filtering.ocel package#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

Submodules#

pm4py.algo.filtering.ocel.activity_type_matching module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.filtering.ocel.activity_type_matching.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

ACTIVITY_KEY = 'pm4py:param:activity_key'#
OBJECT_TYPE = 'param:object:type'#
TEMP_COLUMN = 'temp_column'#
TEMP_SEPARATOR = 'temp_separator'#
pm4py.algo.filtering.ocel.activity_type_matching.apply(ocel: OCEL, correspondence_dict: Dict[str, Collection[str]], parameters: Dict[Any, Any] | None = None) OCEL[source]#

Filters an object-centric event log keeping only the specified object types with the specified activity set (filters out the rest).

Parameters#

ocel

Object-centric event log

correspondence_dict

Dictionary containing, for every object type of interest, a collection of allowed activities. Example:

{“order”: [“Create Order”], “element”: [“Create Order”, “Create Delivery”]}

Keeps only the object types “order” and “element”. For the “order” object type, only the activity “Create Order” is kept. For the “element” object type, only the activities “Create Order” and “Create Delivery” are kept.

parameters
Parameters of the algorithm, including:
  • Parameters.ACTIVITY_KEY => the activity key

  • Parameters.OBJECT_TYPE => the object type column

Returns#

filtered_ocel

Filtered object-centric event log

pm4py.algo.filtering.ocel.event_attributes module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.filtering.ocel.event_attributes.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

ATTRIBUTE_KEY = 'pm4py:param:attribute_key'#
TIMESTAMP_KEY = 'pm4py:param:timestamp_key'#
POSITIVE = 'positive'#
pm4py.algo.filtering.ocel.event_attributes.apply(ocel: OCEL, values: Collection[Any], parameters: Dict[Any, Any] | None = None) OCEL[source]#

Filters the object-centric event log on the provided event attributes values

Parameters#

ocel

Object-centric event log

values

Collection of values

parameters

Parameters of the algorithm, including: - Parameters.ATTRIBUTE_KEY => the attribute that should be filtered - Parameters.POSITIVE => decides if the values should be kept (positive=True) or removed (positive=False)

Returns#

ocel

Filtered object-centric event log

pm4py.algo.filtering.ocel.event_attributes.apply_timestamp(ocel: OCEL, min_timest: datetime | str, max_timest: datetime | str, parameters: Dict[Any, Any] | None = None) OCEL[source]#

Filters the object-centric event log keeping events in the provided timestamp range

Parameters#

ocel

Object-centric event log

min_timest

Left extreme of the allowed timestamp interval (provided in the format: YYYY-mm-dd HH:MM:SS)

max_timest

Right extreme of the allowed timestamp interval (provided in the format: YYYY-mm-dd HH:MM:SS)

parameters

Parameters of the algorithm, including: - Parameters.TIMESTAMP_KEY => the attribute to use as timestamp

Returns#

filtered_ocel

Filtered object-centric event log

pm4py.algo.filtering.ocel.object_attributes module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.filtering.ocel.object_attributes.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

ATTRIBUTE_KEY = 'pm4py:param:attribute_key'#
POSITIVE = 'positive'#
pm4py.algo.filtering.ocel.object_attributes.apply(ocel: OCEL, values: Collection[Any], parameters: Dict[Any, Any] | None = None) OCEL[source]#

Filters the object-centric event log on the provided object attributes values

Parameters#

ocel

Object-centric event log

values

Collection of values

parameters

Parameters of the algorithm, including: - Parameters.ATTRIBUTE_KEY => the attribute that should be filtered - Parameters.POSITIVE => decides if the values should be kept (positive=True) or removed (positive=False)

Returns#

ocel

Filtered object-centric event log

pm4py.algo.filtering.ocel.objects_ot_count module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.filtering.ocel.objects_ot_count.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

EVENT_ID = 'param:event:id'#
OBJECT_ID = 'param:object:id'#
OBJECT_TYPE = 'param:object:type'#
pm4py.algo.filtering.ocel.objects_ot_count.apply(ocel: OCEL, min_num_obj_type: Dict[str, int], parameters: Dict[Any, Any] | None = None) OCEL[source]#

Filters the events of the object-centric logs which are related to at least the specified amount of objects per type.

E.g. apply(ocel, {“order”: 1, “element”: 2})

Would keep the following events:

ocel:eid ocel:timestamp ocel:activity ocel:type:element ocel:type:order

0 e1 1980-01-01 Create Order [i4, i1, i3, i2] [o1] 1 e11 1981-01-01 Create Order [i6, i5] [o2] 2 e14 1981-01-04 Create Order [i8, i7] [o3]

Parameters#

ocel

Object-centric event log

min_num_obj_type

Minimum number of objects per type

parameters

Parameters of the filter, including: - Parameters.EVENT_ID => the event identifier - Parameters.OBJECT_ID => the object identifier - Parameters.OBJECT_TYPE => the object type

Returns#

filtered_event_log

Filtered object-centric event log

pm4py.algo.filtering.ocel.ot_endpoints module#

PM4Py – A Process Mining Library for Python

Copyright (C) 2024 Process Intelligence Solutions UG (haftungsbeschränkt)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.

Website: https://processintelligence.solutions Contact: info@processintelligence.solutions

class pm4py.algo.filtering.ocel.ot_endpoints.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

EVENT_ID = 'param:event:id'#
OBJECT_ID = 'param:object:id'#
OBJECT_TYPE = 'param:object:type'#
pm4py.algo.filtering.ocel.ot_endpoints.filter_start_events_per_object_type(ocel: OCEL, object_type: str, parameters: Dict[Any, Any] | None = None) OCEL[source]#

Filters the events in which a new object for the given object type is spawn. (E.g. an event with activity “Create Order” might spawn new orders).

Parameters#

ocel

Object-centric event log

object_type

Object type to consider

parameters

Parameters of the algorithm, including: - Parameters.EVENT_ID => the attribute working as event identifier - Parameters.OBJECT_ID => the attribute working as object identifier - Parameters.OBJECT_TYPE => the attribute working as object type

Returns#

filtered_ocel

Filtered object-centric event log

pm4py.algo.filtering.ocel.ot_endpoints.filter_end_events_per_object_type(ocel: OCEL, object_type: str, parameters: Dict[Any, Any] | None = None) OCEL[source]#

Filters the events in which an object for the given object type terminates its lifecycle. (E.g. an event with activity “Pay Order” might terminate an order).

Parameters#

ocel

Object-centric event log

object_type

Object type to consider

parameters

Parameters of the algorithm, including: - Parameters.EVENT_ID => the attribute working as event identifier - Parameters.OBJECT_ID => the attribute working as object identifier - Parameters.OBJECT_TYPE => the attribute working as object type

Returns#

filtered_ocel

Filtered object-centric event log