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:
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.
- 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
- 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:
- 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).
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
- 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
- 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.
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.