In the Petriweb project we develop a web-based repository for process models (Petri nets) and various tools that can read and/or write these models.
Several file formats are used for this purpose. This page documents these formats.
PNML for Petriweb
The Petriweb repository reads and presents Petri nets in the PNML document format. PNML is extensible: it allows the syntax of a particular variant of Petri nets to be defined in a so-called Petri Net Type Definition (PNTD).
Petriweb supports a particular variant of Petri nets that evolves over time. At all times we have an exact definition of the PNML syntax used; this syntax is called EPNML, for lack of a better name. It is described by a PNTD; however, a PNTD cannot describe the syntax in full detail, and cannot describe the semantics at all, we use not only PNTDs, so it is supplemented by a full specification document that also serves as a self-contained informal explanation.
- full specification of Petriweb's PNML format ("EPNML") version 1.1 (PDF)
- by J.M. van der Werf & R. Post, revised June, 2004
- web-based PNML viewer
- by J.M. van der Werf written in PHP; upload a PNML file and browse it as a diagram
- Petri Net Type Definitions (PNTDs) for Petriweb's PNML
- by J.M. van der Werf & R. Post, based on work by Michael Weber and Ekkart Kindler:
- a web-based syntax checker against these specifications
- currently based on Sun's MSV
- the name of several PNML tools developed in parallel with Petriweb
Older versions of our tools used EPNML version 1.0, which was not a 100% valid PNML application, and is no longer supported.
Petriweb supports uploading of sequences of firings in Petriweb nets. An XML-based file format has been designed for this purpose. Preliminary documentation and a RELAX-NG specification for this format are available; they will be published when stable.
For semantic analysis on flat, uncoloured Petri nets, a much simpler file format can be used: it suffices to supply the marking and incidence matrix as a big sequence of numbers. We have determined an exact way to do this and called it PIM (Petrinet Integer Matrix format). It is loosely based on PPM.
- PIM 1.0 specification (PDF) (English),
- by R. Post, June 2003
- EPNML to PIM converter (Perl),
- by R. Post, corrected version, March 22th, 2004; expected to work correctly on basic EPNML 1.1 and some other forms of EPNML
- PIM document correctness checker (Perl),
- by R. Post, corrected version, July 21th, 2003