Labels
Diagrams
PNTD Maps
Defaut PNTD to Symbol map (URI string to pntd symbol):
"continuous" => :continuous
"highlevelnet" => :hlnet
"hlcore" => :hlcore
"hlnet" => :hlnet
"http://www.pnml.org/version-2009/grammar/highlevelnet" => :hlnet
"http://www.pnml.org/version-2009/grammar/pnmlcore" => :pnmlcore
"http://www.pnml.org/version-2009/grammar/pnmlcoremodel" => :pnmlcore
"http://www.pnml.org/version-2009/grammar/pt-hlpng" => :pt_hlpng
"http://www.pnml.org/version-2009/grammar/ptnet" => :ptnet
"http://www.pnml.org/version-2009/grammar/symmetricnet" => :symmetric
"https://www.pnml.org/version-2009/extensions/inhibitorptnet" => :ptnet
"https://www.pnml.org/version-2009/extensions/resetinhibitorptnet" => :ptnet
"https://www.pnml.org/version-2009/extensions/resetptnet" => :ptnet
"inhibitorptnet" => :ptnet
"nonstandard" => :pnmlcore
"open" => :pnmlcore
"pnmlcore" => :pnmlcore
"pt-hlpng" => :pt_hlpng
"pt_hlpng" => :pt_hlpng
"ptnet" => :ptnet
"resetinhibitorptnet" => :ptnet
"resetptnet" => :ptnet
"symmetric" => :symmetric
"symmetricnet" => :symmetricPNML.PnmlTypes.pntd_map — Constant
Map from Petri Net Type Definition (pntd) URI to Symbol. Allows multiple strings to map to the same pntd.
There is a companion map pnmltype_map that takes the symbol to a type object.
The URI is a string and may be the full URL of a pntd schema, just the schema file name, or a placeholder for a future schema.
For readability, the 'pntd symbol' should match the name used in the URI with inconvinient characters removed or replaced. For example, '-' is replaced by '_'.
PnmlType map (pntd symbol to singleton):
Pair{Symbol, PNML.PnmlTypes.AbstractPnmlType}(:pnmlcore, PNML.PnmlTypes.PnmlCoreNet())
Pair{Symbol, PNML.PnmlTypes.AbstractPnmlType}(:symmetric, PNML.PnmlTypes.SymmetricNet())
Pair{Symbol, PNML.PnmlTypes.AbstractPnmlType}(:ptnet, PNML.PnmlTypes.PTNet())
Pair{Symbol, PNML.PnmlTypes.AbstractPnmlType}(:continuous, PNML.PnmlTypes.ContinuousNet())
Pair{Symbol, PNML.PnmlTypes.AbstractPnmlType}(:hlnet, PNML.PnmlTypes.HLPNG())
Pair{Symbol, PNML.PnmlTypes.AbstractPnmlType}(:hlcore, PNML.PnmlTypes.HLCoreNet())
Pair{Symbol, PNML.PnmlTypes.AbstractPnmlType}(:pt_hlpng, PNML.PnmlTypes.PT_HLPNG())PNML.PnmlTypes.pnmltype_map — Constant
The key Symbols are the supported kinds of PNML Nets (PNTDs). Values are concrete singletons.
Handling Labels
The implementation of Labels supports annotation and attribute format labels.
Annotation Labels
annotation format labels are expected to have either a <text> element, a <structure> element or both. Often the <text> is a human-readable representation of of the <structure> element. Graphics and ToolInfo elements may be present.
For PTNet (and pnmlcore) only the Name label with a <text> element (and no <structure> element) is defined by the standard.
Labels defined in High-Level pntds, specifically 'Symmetric Nets', "require" all meaning to reside in the <structure>.
Attribute Labels
attribute format labels are present in the UML model of pnml. They differ from annotation by omitting the Graphics element, but retain the ToolInfo element. Unless an optimization is identified, both attribute and annotation will share the same implementation.
A standard-conforming pnml model would not have any Graphics element so that field would be nothing.