pm4py-core icon indicating copy to clipboard operation
pm4py-core copied to clipboard

feature dcr in pm4py: cleanest version from latest release

Open paul-cvp opened this issue 2 years ago • 1 comments

Same code as in the previous pull request, but now forked from the latest release from pm4py-core

intial implementation for DCR Graphs in pm4py

Implementation by: @Scones111, @RagnarLaki, @simonhermansen prototype provided by: @paul-cvp

documentation

The code has docstring, such that the documentation can be autogenerated with the sphinx-autodoc, it should include everything.

What has been implemented

The current implementation of DCR Graphs

We have added support for process mining of DCR Graphs this includes:

  • process discovery of DCR graph with the the four basic relations, conditions, response, excludes, and includes. Additional information can be mined such as roles, principals, role assignment and principals assignment
  • process conformance of dcr graph, has been implemented with two different techniques: the first is the rule based conformance: allows for check for deviation of violated rules that has occured during a replay of the DCR Graph
  • the second is the alignment based conformance: computes the optimal alignment of a DCR Graph, and returns the aligned result with fitness of the DCR Graph, currently no implementation for the precision
  • allows for export and import of DCR Graphs, given 2 version for imports such, and 3 for export, the export for dcr-js-portal implementeted has been made such that the DCR Graph can be imported and visualized in https://hugoalopez-dtu.github.io/dcr-js/, and the xml_dcr_portal has been made such that it can be exported and run for dcr solution portal.

currently the alignment of DCR Graphs and import/export only supports functionality for the base dcr graphs, and does not work with DCR Graphs with roles.

How has it been implemented

We followed the convention of the pm4py library, and split the dependencies into the different folders. To perform process mining and have a standard object that could be return DCR Graphs object was implemented, to run and execute the DCR Graph associated semantics was implemented. We have done our best to follow the naming convention to keep it coherent with the rest of the library.

testing:

We have provided unit test for our implementation, and tested it with the whole library to ensure that the new extension do not break any of the existing implementations. For your own testing provided examples are given in the dcr_examples.py for example script with some comments to help test the implementation.

paul-cvp avatar Dec 12 '23 12:12 paul-cvp

@fit-alessandro-berti I am a bit curious when will we see progress in this PR? By now the code might be outdated...

hugoalopez-dtu avatar May 01 '24 00:05 hugoalopez-dtu