[ ePNK Release (version 0.9.2)]

The ePNK is a platform for Petri net tools based on the PNML transfer format (see ePNK Home Page).


Version 0.9.2 is now (as of June 17, 2011) available for Eclipse Helios – a version for Galileo will be released shortly. You will find some more information on how to install this version of the ePNK below.


Release notes
The major changes between version 0.9.1 and 0.9.2 are extended functionality and some new possibilities to extend the ePNK. But, the more important changes are behind the scenes; the ePNK is better integrated to the eclipse and EMF/GMF framework, and made a bit more maintainable. Extensions you wrote for 0.9.1 will still work, but you might need to regenerate the code from your EMF models (for getting rid of some of some concepts that are not so well-maintained in GMF, some internal stuff in the ePNK core models needed to be changed slightly; and this requires regenerating your code from your models).


Here is a list of the major changes:

  • The undo/redo capability is now unified across all the EMF/GMF editors that are open on different pages of a PNML file. Therefore, the editor is now fully aware of when it is dirty. The user does not need any workaraounds anymore for saving files.


    Saving is still done in the main tree editor (and this is also where it is indicate whether saving is needed). Some features, that were recommended not to use (since they are not properly implemented yet) are now switched off, so that they cannot do any harm (cut/copy/paste).


  • If you close the main editor (the EMF tree editor) on a PNML file, all graphical editors that are still open on sub pages will also be closed.


  • Editors on pages can now be opend by just a double-click (in the tree editor as well as in the graphical editor). The old pop-up menus for opening an editor on a page are still there, but will probably not be used any more.


  • All graphical features of the graphical ePNK editor (including comments) are now saved in the PNML document as a tool-specific extension. Therefore, pages will look exactly the same when you open them again in the ePNK (even if you use concepts and features not supported by PNML). Note that not all of theses features are transferred to the respective PNML concepts yet (like colour, font, etc). So, other tools will not be able to fully reproduce the graphical appearance. But, as long as you stick with the ePNK, your investment in prettifying the graphics of your Petri net won't be lost.


    The graphical features of PNML that are supported by the ePNK are the same as in version 0.9.1: position and size of objects, position of page labels, relative position of object labels, intermediate points for arcs (but not the kind, like bezier).


  • In the earlier versions of the ePNK, the linker for structured Petri net types needed to be started manually. This is not necessary anymore. After any change (in the graphical editors) linking will be done automatically behind the scenes.


  • The ids are still not set automatically. But, in version 0.9.2 there is a shortcut to assign all missing ids: just double click on the PetriNetDoc at the top of the EMF tree editor.


  • The ePNK is now fully integrated with eclipse's problem reporting mechanism. The problems found during the validation are now not only shown in the eclipse Problems view – they are also shown with the usual icons in the graphical editor (and tool tips shows the summary of problems). If the respective graphical editor is open, double clicking on a problem in the problems view will automatically select the respective element in the graphical editor.


  • The ePNK now supports PNML's attributes concepts, which are labels of Petri net objects that should not be shown as annotations, but in the properties view of the respective element or by a different graphical appearance. If a new label of a Petri net type is derived from Attribute, it will fully automatically have this characteristics.


  • The Attribute feature is mostly relevant together with another new feature: graphical extensions. Along with a new Petri net type (or even for existing types), such an extension defines how some Petri net elements should be rendered in the graphical editor. E.g. if a Petri net arc has a type with "normal", "read" and "inhibit", the arc could be drawn as usual, as a line with arrows at both ends, or as a lolly-pop respectively. The ePNK also implements some of the standard decorators for this purpose, normal arrow heads, a circle (for the lolly-pop), and a flash for signal arcs. There is not yet a section on that in the developers manual: but there is an example of how to use these features. This example is deployed together with the ePNK; this should give a clear idea on how to do that: org.pnml.tools.epnk.extensions.tutorial.types


  • A more internal change is that now the mapping from the concepts of a Petri net type to their XML representation are kept separate, so that they do not conflict with each other.


  • In some cases, when the PNML document was incorrect, saving it would loose some information. In these cases, we added some information to these files now that would allow to fully retrieve all the information from broken files. The additional information that is saved is the name of the symbol that could not be resolved. Note that saving this name feature is not compatible with PNML – since this is saved only when the PNML document is broken already, this should not be problem though.


  • A last minor extension is dedicated to Wolfgang Reisig, who supervised my PhD thesis many years ago. He had clear ideas and rules on how Petri nets should be drawn. Therefore, I implemented arrow heads that look a bit more the way they should according to the "Rules of Reisig"; and arrows that start or end at a place (or in general at ellipse shaped figures) will precisely end at the border of the ellipse and not at the border of the surrounding box.


  • Outside of version 0.9.2, another experimental feature of the ePNK was released (in March 2011 already): the HLPNG label serialiser (experimental extension).


    Since the PNML does not mandate a specific conrete syntax for the textual labels of declarations, terms, and sorts in HLPNGs, these kind of nets could render to be impossible to edit in a user readable form (the textual labels could even be left empty). The "HLPNG label serialiser" provides a function that serialises all the label to the ePNK's concrete syntax for these labels. This way, the labels will show up as text and can then be edited in the ePNKs syntax (see also Overview of versions).

A more detailed discussion of the new features will eventually be included in the ePNK Manual. For now, the list above together with the examples should give enough information to start with the new features.


Installation details
Below, it is explained step by step how to install version 0.9.2 of ePNK on your computer. You can also look at the slides (if you prefer screenshots).


For installing the ePNK on you computer, you first need to install eclipse Helios (3.6). You will find eclipse Helios at http://www.eclipse.org/downloads/. It is recommended that you install "Eclipse Classic".


Once you have installed Eclipse Classic on your computer, you can install the ePNK extension from the update site: http://www2.imm.dtu.dk/~ekki/projects/ePNK/helios/update/ from your eclipse workbench. To this end, proceed as follows:

  • In the eclipse tool bar, select "Help" -> "Install New Software..."


  • In the opened "Install" dialog, press the "Add..." button to add a new update site. In the "Add Site" dialog, enter some name (e.g. "ePNK Update Site"), enter the URL "http://www2.imm.dtu.dk/~ekki/projects/ePNK/helios/update/" as location, and then press okay.


  • Now, select the newly created ePNK update site in the still open "Install" dialog. After some time, some ePNK items should pop up in the dialog.


    In the category "ePNK Helios" you should select all features:

    • ePNK Basic Extensions 0.9.2
    • ePNK Core 0.9.2
    • ePNK HLPNGs (Xtext 1.0.1) 0.9.2
    • ePNK Tutorial 0.9.2


    In the category "ePNK Helios Experimental Projects" it is recommended that you select

    • ePNK: HLPNG Label Serialisation (experimental) 0.1.0


    Also make sure that the box "Contact all update sites during install to find required software" is checked; this will make sure that all plugins from eclipse that ePNK needs, will be installed too (EMF, GMF, Xtext, etc.).


  • Follow through the installation process (don't forget to accept the licence agreement). If you get an error of the kind
    Cannot complete the install because one or more required items could not be found. ...
    you have probably selected the wrong combination of features. In that case, go back and select the right combination as explained above. An other possibility for an error is that you have forgotten to tick the checkbox "Contact all update sites during install to find required software".


  • After you made it successfully though all the dialogs, the ePNK and all other required plugins will be installed; it is a good idea to restart eclipse after that (eclipse will ask you to do that anyway).


Here is a brief overview of the available resources for the ePNK:
  • ePNK Manual (version 0.9.0, January 5, 2011)
  • ePNK-0.9.0.zip: the source projects of the ePNK 0.9.0 for eclipse 3.5 (including tutorials), which you might want to use as a developer. These can be imported to the eclipse workspace via the eclipse import mechanism.


  • org.pnml.tools.epnk.example-documents.zip an eclipse project with some PNML examples. These can be imported to the eclipse workspace via the eclipse import mechanism.


  • Ekkart Kindler: ePNK: A generic PNML tool - Users' and Developers' Guide : version 0.9.1. IMM-Technical Report-2011-03, DTU Informatics, Kgs. Lyngby, Denmark, February 2011.
  • ePNK-developers-helios-version-0.9.1.zip: the source projects of the ePNK 0.9.1 for eclipse 3.6 (including tutorials), which you might want to use as a developer. These can be imported to the eclipse workspace via the eclipse import mechanism.


  • There is also a SVN repository in which the ePNK is developed, which is maintained at DTU. People, who would like to join the development team of the ePNK, could contact Ekkart Kindler. Once we reach the critical mass, the repository will probably be moved to some open source collaboration platform such as Source Forge.


  • And of course, all the PNML resources mentioned at the ePNK home page could be useful.


Ekkart Kindler (), June 17, 2011 (last updated December 12, 2012)