Humboldt Universität zu Berlin | Department of Comupter Science | Chair of Theory of Programming
About | PNML | PNTD | Conventions | Tools
Specification | PNML Examples

PNML is a concept for defining the overall structure of a Petri net file. There are many different types of Petri nets. Thus, there is a generic concept for adjusting net type specific features via a specific Petri Net Type Definition (PNTD).

For implementing a specific PNTD PNML is enlarged by type specific labels at certain net objects. A label assigns further meaning (besides the Petri net semantics) to a net or its objects. Typically, a label represents a name of a node, the initial marking of a place, the guard of a transition, or the inscription of an arc. The legal labels and the legal combination of labels are defined within a PNTD.


Here is the specification of PNML. PNML is specified with the help of RELAX NG, a simple and easy to learn XML schema language.

Basic PNML

Basic PNML contains the standard features of all Petri nets of any type.

Structured PNML

Structured PNML enlarges basic PNML with features for structuring a Petri net via several pages.

Modular PNML

Modular PNML enlarges structured PNML with features for a net type independent module concept. (See the paper about module concepts within PNML for more details.)


The URL always leads to the current version of PNML (i.e. basicPNML.rng, structuredPNML.rng, modularPNML.rng).

Whereas a special version of PNML is stored under that URL which is named after its version number:

PNML Examples

Michael Weber (
Last updated: 2004-01-23