CPN Simulation in ProM

A little something I've been working with the last week or so: integrating CPN simulation into ProM using Access/CPN.

I've extended Access/CPN a bit to accommodate arbitrary hierarchical models as well as timed models.  I've also added some very tight integration with CPN Tools, allowing ProM to show the state of models in the CPN Tools GUI.

Now onto the next project…  It is going to use the feature I show off at the end of the video and rely heavily on plug-ins for ProM to make something quite fantastic in my opinion.

14 thoughts on “CPN Simulation in ProM

  1. Hi Michael,

    Nice demonstration! You mentioned something about this last week but now I really understand what you were talking about!
    Its good to see two worlds come together and interact nicely. This really makes simulation in CPN-Tools and then doing some analysis in ProM much easier!!!

    Great work, see you tomorrow 😉


      1. Not really, no. There has been several attempts at doing this: the simulator does generate coe for simulating models, a couple of my master students did a bit of work on generating Erlang code from CPN models, Lars Kristensen and I did a bit of work on defining a class (PP-CPNs) for which we could generate some code, and I wrote a PoC (included but not enabled in default CPN Tools distribution) which can recognize a bigger class of PP-CPNs and generate Java code for them, but this was never completed. I also know Ekkart Kindler has one a lot of work on going from model to implementation, but last I checked that was also not practically applicable.

  2. Hey Michael

    I have a problem,
    Here you load a cpn model, what i wanna do is before arriving at this stage , is to import an event log , construct a petrinet using PROM6 and then export it as a cpm model to perform simulations on cpn tools how do I do that knowing that I can’t find the export as cpnmodel in PROM6

    Thank youu

  3. Hi Micheal,

    thanks for the nice demo!
    The feature ‘Load CPN model in CPN Tools’ in ProM is not working on my environment.
    I still have problems to setup Access/CPN to my environment. I read your article and the paper about it but can you give instructions how to integrate it to the cpn tools environment? I can’t find a solution.

    Thank you so much in advance!

    Best regards

    1. Hi Clara,

      Unfortunately, the latest released version of Access/CPN was never updated to work with the latest version of CPN Tools. You have to either check out Access/CPN from the source and build it yourself or use the previous (3.something) version of CPN Tools.

      The integration in ProM is also very old and unlikely to still work.

      Depending on what you need exactly, it might be easier to look at simulator extensions, which are a more refined version of what Access/CPN did. If you need something closer to process mining, it is likely that Dirk Fahland or Eric Verbeek have a better idea of the current status of CPN Tools and connectivity with ProM.

      Sorry, I couldn’t be of more help and good luck,

  4. Hi Michael,

    thank you for the tutorial!

    I am currently working on my master’s thesis about process mining and causal inference. As one of the validation steps for my approach, I would like to create a rather simple event log with some context data to do some artificial root cause analysis. After some research, apparently CPN Tools and ProM is the way to go. Unfortunately, I get an NullPointerException when using the sample CPN models (DiningPhilosophers) from CPN Tools together with the ProM (Version 6.11.) “Simulate CPN Model”-plugin, as you have explained in your video. If you have any idea what I am doing wrong or in case you know another way of how to create a simplistic synthetic event log (maybe even outside of CPN Tools/ProM), please let me know. Everything is highly appreciated!! Best regards, Dom

    1. Hi Dom,

      My ProM plugin was mostly a proof-of-concept made 10 years ago. CPN Tools moved a bit since and ProM moved a lot, so I’m not too surprised it doesn’t work anymore.

      I still think using CPN Tools to generate logs is a powerful approach, and can think of two ways it might work (I’ve not really been involved with either for 5 or so years, so things might have moved in incompatible directions). Perhaps Eric Verbeek or Dirk Fahland can comment on this.

      The two ways are:
      1) generate a simulation log using CPN Tools (http://cpntools.org/2018/01/15/simulation-report/), you can then load that using my ancient KeyValue plugin and transform the data to an XES log. This was always better than the old ProM CPN plugin anyway. The KeyValue plugin is a simplified of software like Fluxicon’s discontinued Nitro (https://fluxicon.com/nitro/). This, of course, only works if KeyValue still works, so you might want to check that first.
      2) generate simulation logs a library. I cannot recall the name of the library, and know it was made quite a while ago, but it should still be workable. It was made some (PhD) students form TU/e around 2008-2010.

      Hope this helps at least guide you towards a solution,

  5. Hello Mr Michael,

    I am working on the simulation of a process using CPN tools and I need to create an event log of the simulated process. Please can you provide a detailed resource as to how can this be done in CPN Tools? I am familiar with the simulation report, but I need more information on how to make the mxml file.

    If there is any other approach for this, please suggest that as well.

    Thank you

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.