[logo]www.petriweb.org

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
Yasper,
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.

Firing sequences

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.

PIM

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

Example Petri nets

a trivial example net
(PNG, EPNML 1.1, PIM)
from Free-Choice Petri Nets (by Jörg Desel and Javier Esparza, Cambridge University Press, 1995), figure 4.2
(PNG, EPNML 1.1, PIM)
id, figure 5.2
(PNG, EPNML 1.1, PIM)
id, figure 5.4
(PNG, EPNML 1.1, PIM)