pm4py.objects.conversion.wf_net.variants 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.objects.conversion.wf_net.variants.to_bpmn 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

pm4py.objects.conversion.wf_net.variants.to_bpmn.apply(net, im, fm, parameters=None)[source]#

Converts an accepting Petri net into a BPMN diagram

Parameters#

accepting_petri_net

Accepting Petri net (list containing net + im + fm)

parameters

Parameters of the algorithm

Returns#

bpmn_graph

BPMN diagram

pm4py.objects.conversion.wf_net.variants.to_powl 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

pm4py.objects.conversion.wf_net.variants.to_powl.id_generator()[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.is_silent(transition) bool[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.add_arc_from_to(source: Place | Transition, target: Transition | Place, net: PetriNet)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.clone_place(net: PetriNet, place, node_map: dict)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.clone_transition(net: PetriNet, transition, node_map: dict)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.pn_transition_to_powl(transition: Transition) Transition[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.locally_identical(p1, p2, transitions)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.get_simplified_reachability_graph(net: PetriNet)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.get_reachable_transitions_from_place_to_another(start_place: Place, end_place: Place)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.clone_subnet(net: PetriNet, subnet_transitions: Set[Transition], start_place: Place, end_place: Place)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.apply_partial_order_projection(net: PetriNet, subnet_transitions: Set[Transition], start_places: Set[Place], end_places: Set[Place])[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.mine_base_case(net: PetriNet)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.mine_self_loop(net: PetriNet, start_place: Place, end_place: Place)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.mine_loop(net: PetriNet, start_place: Place, end_place: Place)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.mine_xor(net: PetriNet, reachability_map)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.mine_partial_order(net, end_place, reachability_map)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.validate_workflow_net(net: PetriNet)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.remove_initial_and_end_silent_activities(net: PetriNet, start_places: set[Place], end_places: set[Place])[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.remove_duplicated_places(net: PetriNet, start_places: set[Place], end_places: set[Place])[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.remove_unconnected_places(net: PetriNet, start_places: set[Place], end_places: set[Place])[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.preprocess(net: PetriNet)[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.add_new_start_and_end_if_needed(net, start_places: set[Place], end_places: set[Place])[source]#
pm4py.objects.conversion.wf_net.variants.to_powl.apply(net: PetriNet) POWL[source]#

Convert a Petri net to a POWL model, implementing the approach proposed in:

Kourani, Humam, Gyunam Park, and Wil van der Aalst. “Translating Workflow Nets into the Partially Ordered Workflow Language.” arXiv preprint arXiv:2503.20363 (2025).

Parameters:
  • net: PetriNet

Returns:
  • POWL model

pm4py.objects.conversion.wf_net.variants.to_process_tree 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.objects.conversion.wf_net.variants.to_process_tree.Parameters(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

DEBUG = 'debug'#
FOLD = 'fold'#
pm4py.objects.conversion.wf_net.variants.to_process_tree.generate_label_for_transition(t)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.generate_new_binary_transition(t1, t2, operator, net)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.loop_requirement(t1, t2)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.binary_loop_detection(net)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.concurrent_requirement(t1, t2)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.binary_concurrency_detection(net)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.choice_requirement(t1, t2)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.binary_choice_detection(net)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.sequence_requirement(t1, t2)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.binary_sequence_detection(net)[source]#
pm4py.objects.conversion.wf_net.variants.to_process_tree.group_blocks_in_net(net, parameters=None)[source]#

Groups the blocks in the Petri net

Parameters#

net

Petri net

parameters

Parameters of the algorithm

Returns#

grouped_net

Petri net (blocks are grouped according to the algorithm)

pm4py.objects.conversion.wf_net.variants.to_process_tree.apply(net, im, fm, parameters=None)[source]#

Transforms a WF-net to a process tree

Parameters#

net

Petri net

im

Initial marking

fm

Final marking

Returns#

tree

Process tree