pm4py.algo.discovery.dcr_discover.extenstions package#
Submodules#
pm4py.algo.discovery.dcr_discover.extenstions.nesting module#
- class pm4py.algo.discovery.dcr_discover.extenstions.nesting.NestVariants(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
- CHOICE = 1#
- NEST = 2#
- CHOICE_NEST = 3#
- pm4py.algo.discovery.dcr_discover.extenstions.nesting.apply(graph, parameters)[source]#
this method calls the nesting miner
Parameters#
- log: EventLog | pandas.Dataframe
Event log to use in the role miner
- graph: DCR_Graph
Dcr graph to apply additional attributes to
- parameters
- Parameters of the algorithm, including:
nest_variant : the nesting algorithm to use from the enum above: CHOICE|NEST|CHOICE_NEST
Returns#
- :class:´GroupSubprocessDcrGraph`
return a DCR graph, that contains nested groups
- class pm4py.algo.discovery.dcr_discover.extenstions.nesting.NestingMining[source]#
Bases:
object
The NestingMining provides a simple algorithm to mine nestings
After initialization, user can call mine(log, G, parameters), which will return a DCR Graph with nested groups.
Reference paper: Cosma et al. “Improving Simplicity by Discovering Nested Groups in Declarative Models” https://doi.org/10.1007/978-3-031-61057-8_26 Attributes ———- graph: Dict[str,Any]
A template that will be used collecting organizational data
Methods#
- mine(log, G, parameters)
calls the main mining function, extract nested groups
Notes#
- mine(graph, parameters: Dict[str, Any] | None)[source]#
Main nested groups mining algorithm
Parameters#
- graph: DCRGraph
DCR graph to append additional attributes
- parameters: Optional[Dict[str, Any]]
optional parameters used for role mining
Returns#
- NestedDCRGraph(G, dcr)
returns a DCR graph with nested groups
- class pm4py.algo.discovery.dcr_discover.extenstions.nesting.Choice[source]#
Bases:
object
pm4py.algo.discovery.dcr_discover.extenstions.pending module#
- pm4py.algo.discovery.dcr_discover.extenstions.pending.apply(log: DataFrame | EventLog, graph: DcrGraph, parameters)[source]#
An extension to the DCR Graphs discovery algorithm for the discovery of initially pending events Parameters ———- log
Event log / Pandas dataframe
- graph
DCR Graph
- ignore_lifecycle
If True it does not take into account the ‘lifecycle:transition’ attribute of the log event else False
Returns#
An updated DCR Graph with the Pending Marking updated to contain initially pending events
pm4py.algo.discovery.dcr_discover.extenstions.roles module#
- pm4py.algo.discovery.dcr_discover.extenstions.roles.apply(log, graph, parameters) DistributedDcrGraph [source]#
this method calls the role miner
Parameters#
- log: EventLog | pandas.Dataframe
Event log to use in the role miner
- graph: DCRGraph
Dcr graph to apply additional attributes to
- parameters
- Parameters of the algorithm, including:
activity_key: activity identifier, used for assigning the events to resource_key: resource identifier, used to determine the principals and role assignmed if specified group_key: group identifier, used to determine the access right, i.e. the Role assignments for event in log
Returns#
- :class:´RoleDCR_Graph`
return a DCR graph, that contains organizational attributes
- class pm4py.algo.discovery.dcr_discover.extenstions.roles.RoleMining[source]#
Bases:
object
The RoleMining provides a simple algorithm to mine for organizational data of an event log for DCR graphs
After initialization, user can call mine(log, G, parameters), which will return a DCR Graph with distributed.
Attributes#
- graph: Dict[str,Any]
A template that will be used collecting organizational data
Methods#
- mine(log, G, parameters)
calls the main mining function, extract distributed and principals from the log and perform rol
Notes#
NaN values are disregarded, if event in log has event with both, it will not store NaN as a role assignment
Currently no useful implementation for analysis of principalsAssignments, but is included for future improvement
- mine(log: DataFrame | EventLog, graph: DcrGraph, parameters: Dict[str, Any] | None)[source]#
Main role mine algorithm, will mine for principals and distributed in a DCR graphs, and associated role assignment. determine principals, distributed and roleAssignment through unique occurrences in log.
Parameters#
- log: pandas.DataFrame | EventLog
Event log used for mining
- graph: DCRGraph
DCR graph to append additional attributes
- parameters: Optional[Dict[str, Any]]
optional parameters used for role mining
Returns#
- RoleDCR_Graph(G, dcr)
returns a DCR graph with organizational attributes, store in a variant of DCR
pm4py.objects.dcr.distributed.obj.RoleDCR_Graph
pm4py.algo.discovery.dcr_discover.extenstions.time_constraints module#
- pm4py.algo.discovery.dcr_discover.extenstions.time_constraints.apply(log, graph: DcrGraph, parameters) TimedDcrGraph [source]#
this method calls the time miner
Parameters#
- log: EventLog | pandas.Dataframe
Event log to use in the time miner
- graph: DCR_Graph
Dcr graph to apply additional attributes to
- parameters
Parameters of the algorithm, including:
Returns#
- :class:´TimedDcrGraph`
return a DCR graph
- class pm4py.algo.discovery.dcr_discover.extenstions.time_constraints.TimeMining[source]#
Bases:
object
The TimeMining provides a simple algorithm to mine timing data of an event log for DCR graphs
After initialization, user can call mine(log, G, parameters), which will return a DCR Graph with time.
Attributes#
graph: Dict[str,Any]
Methods#
mine(log, G, parameters)
Notes#