pm4py.discovery.discover_powl#

pm4py.discovery.discover_powl(log: EventLog | DataFrame, variant=None, filtering_weight_factor: float = 0.0, order_graph_filtering_threshold: float = None, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') POWL[source]#

Discovers a POWL (Partially Ordered Workflow Language) model from an event log.

Reference paper: Kourani, Humam, and Sebastiaan J. van Zelst. “POWL: partially ordered workflow language.” International Conference on Business Process Management. Cham: Springer Nature Switzerland, 2023.

Parameters:
  • log – Event log or Pandas DataFrame.

  • variant – Variant of the POWL discovery algorithm to use.

  • filtering_weight_factor (float) – Factoring threshold for filtering weights, accepts values 0 <= x < 1 (default: 0.0).

  • order_graph_filtering_threshold (float) – Filtering threshold for the order graph, valid for the DYNAMIC_CLUSTERING variant, accepts values 0.5 < x <= 1 (default: None).

  • activity_key (str) – Attribute to be used for the activity (default: “concept:name”).

  • timestamp_key (str) – Attribute to be used for the timestamp (default: “time:timestamp”).

  • case_id_key (str) – Attribute to be used as case identifier (default: “case:concept:name”).

Returns:

A POWL object representing the discovered POWL model.

Return type:

POWL

import pm4py

log = pm4py.read_xes('tests/input_data/receipt.xes')
powl_model = pm4py.discover_powl(
    log,
    activity_key='concept:name'
)
print(powl_model)