- A corrigendum on Part 2 (PNML) was edited in 2012 to fix some conceptual and syntactic bugs in the PNML definitions. It is being processed by the ISO Secretariat. A ballot should then follow. We expect it to be published by the end of 2012.
- The Model Checking Contest @ Petri Nets is the first international Petri tools competition making a large use of Petri net models in PNML. Check it out!
This site provides you with information about the PNML standard, to foster its quick and large adoption.
The RELAX-NG specification of PNML and links to supporting tools can be found on this site.
The Petri net community has long sought the means to exchange Petri net models unambiguously, based on an agreed-on interchange format. However, they quickly realized that it would be even better if that format was compliant with an agreed-on formal definition of Petri nets. Clearly stated, it must be the concrete syntax of the abstract syntax specified from that formal definition.
People have therefore acknowledged that a good way to come up with such standard specification is to set up a standardization process to define them. Hence the series of ISO/IEC 15909 standards.
The Petri Net Markup Language (PNML) is a proposal of an XML-based interchange format for Petri nets. Originally, the PNML was intended to serve as a file format for the Java version of the Petri Net Kernel . But, it turned out that currently several other groups are developing an XML-based interchange format too. So, the PNML is only one contribution to the ongoing discussion and to the standardization efforts of an XML-based format.
Several works have paved the way for the standard specifications. In particular, we already mentioned above the original Petri Net Kernel file format, which was the precursor of the current PNML. Additionnally, Kordon has established a taxonomy of Petri net dialects through a survey, by collecting and classifying Petri net tools according to the type or dialect of Petri nets they support. The complete result of that work can be downloaded from this link.
An earlier version of PNML, along with some introductory papers, has been hosted on the web pages of Humboldt University in Berlin. Since Pnml.org is now the reference site regarding the standard, people responsible for the Humboldt pages have kindly provided us with their contents so that everything is now presented on Pnml.org. Many thanks to them.
The first part of the standard, which is already an International Standard, defines the semantic model of Petri Nets. Mathematical definitions are provided in this part. The following types of Petri nets are defined:
- High-Level Petri Nets;
- Symmetric Nets;
- Place/Transition Nets.
The second part defines the abstract and concrete syntax of the Petri Net types provided in Part 1. The abstract syntax is specified with UML and the concrete one with RELAX NG. The second part thus concretely defines PNML. It should become an International Standard by 2009.
The specific feature of the PNML is its openness: it distinguishes between general features of all types of Petri nets and specific features of a specific Petri net type. The specific features are defined in a separate Petri Net Type Definition (PNTD) for each Petri net type. Each net type must declare its own namespace URI.
Furthermore, several specific features which are used in more than only one Petri net type, could be defined in a conventions document. For instance, we have defined integer labels for P/T nets in this document. Then, a concrete PNTD may add its type specific features to PNML by referring to such kind of document.
Another example provided by Jan Martijn is about the declaration of three new P/T net types: reset, inhibitor and reset-inhibitor nets. These PNTDs use a convention document, declaring the special arcs needed for their definition.
What you should be aware of
PNML demonstrates that an XML-based interchange format can be defined in a generic way. However, in this current version, new PNTDs defined by yourself will not be standard-compatible. It means that no tool implementing the standard, except yours, is required to import models of your new types.
The standard cannot define all possible Petri net types in the course of a single standardization process, but it can endorse them. So the key here is a standard-defined extensibility framework for PNML. Therefore, to make future user-defined extensions standard-compatible (and may be standardized in the long term), part 3 of the standard which is being carried out, seeks a general theoretical and practical modeling framework to enable them.
You are therefore welcome to join us and participate in the discussions towards the definition of part 3. If you will be attending Petri Nets 2009 conference, then we may also meet there, beside email discussions. We will be giving a tutorial at that conference.
What does Pnml.org host?
On these pages, you will find:
- the meta-models of PNML specification, in EMF notation;
- PNML grammars, the most up-to-date and earlier versions if any;
- example models for each version of the grammar, particularly for the latest version;
- links to tools which support PNML;
- and papers.
 Unified Modeling Language, OMG
 RELAX-NG, ISO/IEC 19757-2