To prevent spam users, you can only post on this forum after registration, which is by invitation. If you want to post on the forum, please send me a mail (h DOT m DOT w DOT verbeek AT tue DOT nl) and I'll send you an invitation in return for an account.

Import PNML and use WofLan for detecting deadlocks

MarwaMarwa Posts: 6
edited September 23 in - Usage

Hello,

I am beginner in ProM 6.9 and I would like to import PNML file (or BPEL file if it is possible) to detect deadlocks  using WofLan. How can I get the WofLan diagnosis?

Post edited by Marwa on
Tagged:
Woflan.png 188.1K

Comments

  • hverbeekhverbeek Posts: 455
    Hi,

    First you need to import the PNML file as a Petri net in ProM. The best way to do so, is to change the ".xml"  extension to a ".pnml"  extension. After you hav eimported the Petri net from the file, you can start Woflan on it.

    The problem is, that you have imported the file as a DeclareMap object. Note that the ".xml"  extension is very generic, and may be used for many different file formats. The use of ".pnml" is much better here.

    Kind regards,
    Eric.
  • MarwaMarwa Posts: 6

    Thank you very much Eric, I will try your solution.

  • MarwaMarwa Posts: 6

    I changed the extension to ".pnml" and I imported it as petri net file, however, this error appeared how can I fix it ?

    error.png 317.4K
  • hverbeekhverbeek Posts: 455
    Hi,

    Unfortunately, there's PNML, and there's PNML...

    Please replace:
    type="P/T net"
    with:
    type="PTNet"
    on line 4.

    The question is whether a net should contain pages or not. As far as I know, the 'standard' PNML prescribes that places and transition should be contained in a page, and that the page is then contained in a net. In your example, the page is not there, as the places are directly contained in the net. This is also PNML, but not 'standard'. ProM allows for this, and can read these PNML files, but then the net type should be set to one of five possible values, which includes "PTNet".

    Therefore, as a workaround, please set the type to "PTNet".

    I've now added the net type "P/T net" as a 6th possible value for the 'other' PNML. I will be included in the ProM Nightly Build as of tomorrow. Note that releases like ProM 6.9 are not affected by this change.

    Kind regards,
    Eric.

    P.S.: You could also try to import the BPMN file into ProM, and do the conversion in ProM.
    P.P.S.: ProM will ignore the labels (like the one on lines 8-10) in your PNML file.
  • MarwaMarwa Posts: 6

    Hi Eric,

    Thank you again for your answer. You're right, I changed the net type to "PTNet" and it works.
    In fact, I have not BPMN files but BPEL files that I converted to PNML using the BPEL2PNML tool.
    The goal is to detect data-flow bugs or control-flow bugs from these PNML, for example "Deadlocks" that's why I wanted to use "Woflan". Here are the results obtained (difficult to interpret for a beginner).
    I used other plugin (Analysis behavior / Structural property) and I got these results.
    Please what is the difference between dead transition and non-live transition because the results are the same?


    Kind regards,
    Marwa

  • hverbeekhverbeek Posts: 455
    Hi Marwa,

    OK, good to know that it now works for you.

    A dead transition cannot be executed from the initial state. A non-live transition cannot be executed from some states that are reachable from the initial state. It is possible that a non-live transition can be executed from the initial state.

    If you have a deadlock, all transitions are non-live, as from the deadlock state no transition can be executed. Nevertheless, the transitions that lead to the deadlock are not dead, as they can be executed.

    Given the output of Woflan, you should first fix the issue with the multiple source places and the multiple sink places. Also, please check your initial marking. If the initial marking is empty, the net is dead as all transitions require some input.

    Kind regards,
    Eric.
  • MarwaMarwa Posts: 6

    Hi Eric,

    Thank you for your kind explanation.

    Please Eric, I would like to know if there is a plugin in ProM for checking Inconsistent Data (a task is using a data while some other task is writing to this data or destroying it in parallel) and Passing Shared Data along several branches(shared inputs or outputs are duplicated along several branches). If there is not, please have you an idea about similar tool?

    kind regards,

    Marwa.

  • hverbeekhverbeek Posts: 455
    Hi Marwa,

    That I do not know. I know that there are plugins that take data into account when doing conformance checking, but I do not know whether these plugins also detect the issues as you mention.

    Note that https://svn.win.tue.nl/trac/prom/wiki/ProM69/Plugins shows a list of all plugins in ProM 6.9. Perhaps you can have a look at that list and check whether some plugin description matches your needs.

    Kind regards,
    Eric.

  • MarwaMarwa Posts: 6

    Hi Eric,

    Thank you very much for your response.

    Kind regards,

    Marwa

Sign In or Register to comment.