Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unknown random distribution type #212

Closed
wants to merge 1 commit into from

Conversation

adamburkegh
Copy link

The UNKNOWN distribution type which allows reading properties of unsupported distributions. Examples seen in stochastic process mining such as the StochasticPetriNets plugin in ProM include GAUSSIAN_KERNEL, DETERMINISTIC, GAMMA and HISTOGRAM. It is useful to be still be able to read weights, priorities, and so on in pm4py even if full support is not available.

An example snippet produced from running that SPN plugin on the BPIC2013_closed.xes reference log:

         <transition id="n14">
            <graphics>
               <dimension x="25.0" y="20.0"/>
            </graphics>
            <toolspecific tool="StochasticPetriNet" version="0.2">
               <property key="distributionType">GAUSSIAN_KERNEL</property>
               <property key="trainingData">duration;systemLoad;timestamp
0.0;506;1316178833000
8.659166666666666;730;1326434536000
1.7252777777777777;441;1329927075000
</property>
               <property key="weight">1475.0</property>
               <property key="invisible">false</property>
               <property key="distributionParameters">0.0;1.7252777777777777;8.659166666666666</property>
               <property key="priority">0</property>
            </toolspecific>
            <name>
               <text>Completed</text>
            </name>
         </transition>

I don't expect pm4py to drop everything and start supporting all distribution types. I'm not sure if it's even a good idea. But since there doesn't seem to be a central standard for extended stochastic net distributions, it is definitely useful if pm4py doesn't throw away what properties do exist and can be read. In my current use case, I don't need to perform any direct simulation, but I do need to be able to describe the net in question.

This is my first PR for pm4py. I am very open to feedback about alternative ways to do this, or pointers if I've just misunderstood the current capabilities of pm4py.

I ran the unit tests before and after. 4/326 failed both before and after. The failing tests all appear to be related to extensions outside core not affected by this patch. The SPN importer doesn't seem to have specific coverage, and that isn't changed by this patch.

Abbreviated test output (can share full on request)

ERROR: test_bpmn_importing_and_layouting (tests.bpmn_tests.BPMNTests)
ERROR: test_bpmn_layouting (tests.bpmn_tests.BPMNTests)
ERROR: test_emd_1 (tests.other_tests.OtherPartsTests)
ERROR: test_emd_2 (tests.other_tests.OtherPartsTests)

Ran 326 tests in 28.805s

FAILED (errors=4)

Cheers
Adam

…nsupported distributions. Examples seen in stochastic process mining such as the StochasticPetriNets plugin in ProM include GAUSSIAN_KERNEL, DETERMINISTIC, GAMMA and HISTOGRAM. It is useful to be still be able to read weights, priorities, and so on in pm4py even if full support is not available.
@adamburkegh adamburkegh closed this Mar 1, 2021
@adamburkegh adamburkegh deleted the spn_gaussian_name branch March 1, 2021 03:53
fit-alessandro-berti pushed a commit that referenced this pull request Feb 7, 2024
…ration'

[priority 2] Process tree to POWL converter utility

Closes #212

See merge request process-mining/pm4py/pm4py-core!1212
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant