It looks like you're new here. If you want to get involved, click one of these buttons!

- All Categories 2.2K
- Applied Category Theory Course 353
- Applied Category Theory Seminar 4
- Exercises 149
- Discussion Groups 49
- How to Use MathJax 15
- Chat 480
- Azimuth Code Project 108
- News and Information 145
- Azimuth Blog 149
- Azimuth Forum 29
- Azimuth Project 189
- - Strategy 108
- - Conventions and Policies 21
- - Questions 43
- Azimuth Wiki 711
- - Latest Changes 701
- - - Action 14
- - - Biodiversity 8
- - - Books 2
- - - Carbon 9
- - - Computational methods 38
- - - Climate 53
- - - Earth science 23
- - - Ecology 43
- - - Energy 29
- - - Experiments 30
- - - Geoengineering 0
- - - Mathematical methods 69
- - - Meta 9
- - - Methodology 16
- - - Natural resources 7
- - - Oceans 4
- - - Organizations 34
- - - People 6
- - - Publishing 4
- - - Reports 3
- - - Software 21
- - - Statistical methods 2
- - - Sustainability 4
- - - Things to do 2
- - - Visualisation 1
- General 39

Options

This page has for working notes on software evaluation, standards, test design and specification references for online Petri net editors.

Some possible criteria for evaluating Petri net software packages are listed below.

A secure interactive online editor which:

runs in any web browser

has drag-and-drop icons for place, transition and arc graphics with text annotations.

can construct any variety of Petri net and store it in a database

can simulate, animate, log and store for reuse the execution histories of transitions

can input complex probabilistic guard and firing rules for transitions as mathematical formulae entered via appropriate mathematical operator icons and parameter text entry boxes.

L. M. Hillah, F. Kordon, L. Petrucci, and N. Treves, Petri Net Standards, a survey

## Comments

I guess "WDYT?" = "what do you think?" I don't know what "RNG TBD" means. (I don't like acronyms: they're a way for the writer to save one minute and making dozens of readers waste a minute.)

But anyway: are you thinking of a "Petri net simulator" or a "universal modeling tool" here? Even though Petri nets come in many flavors, some of which are Turing-complete, I don't think of Petri nets as a good way to model

everything, so I wouldn't call them "universal" in a practical sense.A good Petri net simulator will, I think, be vastly easier than a good "universal modelling tool".

If I were going to get into the "unified modelling tool" game, I'd start by looking at Unified Modelling Language, and being a mathematician, I'd try to understand its semantics in a good way or change it so it had a good semantics. A more practical person would start trying to

useUML and see how to improve it.`I guess "WDYT?" = "what do you think?" I don't know what "RNG TBD" means. (I don't like acronyms: they're a way for the writer to save one minute and making dozens of readers waste a minute.) But anyway: are you thinking of a "Petri net simulator" or a "universal modeling tool" here? Even though Petri nets come in many flavors, some of which are Turing-complete, I don't think of Petri nets as a good way to model _everything_, so I wouldn't call them "universal" in a practical sense. A good Petri net simulator will, I think, be vastly easier than a good "universal modelling tool". If I were going to get into the "unified modelling tool" game, I'd start by looking at [Unified Modelling Language](http://www.tutorialspoint.com/uml/uml_building_blocks.htm), and being a mathematician, I'd try to understand its semantics in a good way or change it so it had a good semantics. A more practical person would start trying to _use_ UML and see how to improve it.`

Sorry about the undefined acronyms. I've linked or deleted them.

To Be Done was just a place holder.

Relax-NG is the formalism the Petri net markup language (PNML) standard is specified in.

John wrote:

I remember you were interested in non-Turing-complete Petri nets.

What other tools do you think modellers need?

UML is just a notation, To be of any use the diagrams have to be annotated with statements in Object Constraint Language (OCL) which is Turing-complete.

Relax-NG concise (.rnc) is an improved convention for specifying extensible markup language (XML) schemas and is a replacement for Data Type Definitions (DTD)s; a description of the fields of a database might be an easy way to think of them. The Intenational Standards Organisation (ISO) Petri net grammar is specified in RNG.

The PNML standard is about 100 pages long, mandates an object hierarchy for interchange of graphical Petri nets and costs somewhere near $400 dollars. I have not yet found any example of Petri nets being passed between different tools using this standard.

`Sorry about the undefined acronyms. I've linked or deleted them. To Be Done was just a place holder. [Relax-NG](http://wikipedia.org/Relax-NG) is the formalism the [Petri net markup language (PNML) standard](http://pnml.org) is specified in. John wrote: > Even though Petri nets come in many flavors, some of which are Turing-complete, I don’t think of Petri nets as a good way to model everything, so I wouldn’t call them “universal” in a practical sense. I remember you were interested in non-Turing-complete Petri nets. What other tools do you think modellers need? UML is just a notation, To be of any use the diagrams have to be annotated with statements in [Object Constraint Language (OCL)](http://wikipedia.com/Object_constraint_language) which is Turing-complete. Relax-NG concise (.rnc) is an improved convention for specifying extensible markup language [(XML) schemas](http://wikipedia.org/XML_schema) and is a replacement for [Data Type Definitions (DTD)](http://wikipedia.org/Data_type_definition)s; a description of the fields of a database might be an easy way to think of them. The [Intenational Standards Organisation (ISO) Petri net grammar](http://www.pnml.org/) is specified in RNG. The PNML standard is about 100 pages long, mandates an object hierarchy for interchange of graphical Petri nets and costs somewhere near $400 dollars. I have not yet found any example of Petri nets being passed between different tools using this standard.`

After John (Baez)'s return to Petri nets I've started a new wiki page called Experiments in Petri net specification linked to Dave (Tanzer), Ken (Webb)'s Python implementations and my first-cut Haskell unsafe golfing implementation of Ming Chen's "Matrix representation of Petri nets" from 2013/2014. (FWIW "golf" is getting in the hole with the minimal number of strokes, 17 lines in this case (11 without the data, title and import)).

`After John (Baez)'s return to Petri nets I've started a new wiki page called [[Experiments in Petri net specification]] linked to Dave (Tanzer), Ken (Webb)'s Python implementations and my first-cut Haskell unsafe golfing implementation of Ming Chen's "Matrix representation of Petri nets" from 2013/2014. (FWIW "golf" is getting in the hole with the minimal number of strokes, 17 lines in this case (11 without the data, title and import)).`

Cool!

`Cool!`

I just came across SimpleSBML: A Python package for creating and editing SBML models by Caroline Cannistra, Kyle Medley Herbert Sauro. SBML is System biology Markup Language. I had not come across it before but it looks like a specification language for reaction networks.

`I just came across [SimpleSBML: A Python package for creating and editing SBML models](http://biorxiv.org/content/early/2015/10/30/030312.full.pdf+html?) by Caroline Cannistra, Kyle Medley Herbert Sauro. SBML is System biology Markup Language. I had not come across it before but it looks like a specification language for reaction networks.`

Looks like SimpleSBML is part of the Tellurium system to "model, simulate, and analyze biochemical systems".

`Looks like SimpleSBML is part of the [Tellurium](http://tellurium.analogmachine.org/) system to "model, simulate, and analyze biochemical systems". > Tellurium (te.) is a Python environment based on spyder2 IDE. It combines a number of existing libraries, including libSBML, libRoadRunner (including libStruct), libAntimony, and is extensible via telPlugins. In addition other tools kits such as matplotlib and NumPy are used to provide additional analysis and plotting support. When you need to add a another package, te. comes with pip, so you can easily pip install package whenever you need them.`

What I'd really enjoy is a graphical programming system where you can draw "open stochastic Petri nets", run them, and also connect them to form larger open stochastic Petri nets.

Asking if someone had created this already would be a bit unreasonable, since I haven't yet publicly

definedan "open" stochastic Petri net. But they are essentially just stochastic Petri nets where some of the states are designated as "inputs" and "outputs". This lets you hook the outputs of one to the inputs of another. They generalize the "open Markov processes" that Blake and Brendan and I have been writing about. Blake and I should come out with a paper on open stochastic Petri nets at some point.`What I'd really enjoy is a graphical programming system where you can draw "open stochastic Petri nets", run them, and also connect them to form larger open stochastic Petri nets. Asking if someone had created this already would be a bit unreasonable, since I haven't yet publicly _defined_ an "open" stochastic Petri net. But they are essentially just stochastic Petri nets where some of the states are designated as "inputs" and "outputs". This lets you hook the outputs of one to the inputs of another. They generalize the "open Markov processes" that Blake and Brendan and I have been writing about. Blake and I should come out with a paper on open stochastic Petri nets at some point.`

A number of commercial system modelling tools are a lot like like that, eg.Simulink and Stella, I think I have seen open source tools like that, but I am not recalling them at the moment.

`A number of commercial system modelling tools are a lot like like that, eg.Simulink and Stella, I think I have seen open source tools like that, but I am not recalling them at the moment.`

If some software works really well and is easy to use I'd buy it for myself. But I like the idea of open-source software for educational purposes.

To really deal with "open" stochastic Petri nets, I need to be able to mark certain states as inputs or outputs, and specify the populations at these states to be any function of time that I like. (When they're held constant in time, chemists call them "chemostats", but this isn't general enough for me.)

`If some software works really well and is easy to use I'd buy it for myself. But I like the idea of open-source software for educational purposes. To really deal with "open" stochastic Petri nets, I need to be able to mark certain states as inputs or outputs, and specify the populations at these states to be any function of time that I like. (When they're held constant in time, chemists call them "chemostats", but this isn't general enough for me.)`

Have you looked at InsightMaker? I do not think it is what you actually want, but it could be interesting to see where it matches and where it does not.

`Have you looked at [InsightMaker](InsightMaker.com)? I do not think it is what you actually want, but it could be interesting to see where it matches and where it does not.`

I'll check it out - thanks! Sorry to take so long to reply; I've been pretty oversaturated with work.

`I'll check it out - thanks! Sorry to take so long to reply; I've been pretty oversaturated with work.`

The python-control package just crossed my path:

`The [python-control](http://python-control.sourceforge.net/manual/intro.html) package just crossed my path: > The python-control package is a set of python classes and functions that implement common operations for the analysis and design of feedback control systems. The initial goal is to implement all of the functionality required to work through the examples in the textbook Feedback Systems by Astrom and Murray. A MATLAB compatibility package (control.matlab) is available that provides many of the common functions corresponding to commands available in the MATLAB Control Systems Toolbox.`

Oops I posted that in the wrong thread. There was a another thread about simulating dynamical systems that I meant to post it in.

`Oops I posted that in the wrong thread. There was a another thread about simulating dynamical systems that I meant to post it in.`