About my blog
I am multithreaded, and sometimes the threads get tangled.
- December 2012 (1)
- March 2012 (1)
- December 2011 (1)
- May 2011 (1)
- April 2011 (1)
- March 2011 (1)
- January 2011 (1)
- December 2010 (1)
- October 2010 (2)
- September 2010 (1)
- June 2010 (1)
- May 2010 (1)
- April 2010 (3)
- February 2010 (2)
- November 2009 (2)
- October 2009 (1)
- September 2009 (1)
- August 2009 (2)
- July 2009 (1)
- June 2009 (2)
- May 2009 (1)
- April 2009 (2)
- March 2009 (6)
- February 2009 (5)
- January 2009 (3)
a Studiolab production.
the wind I am enjoying
Petri nets are a graphical formal tool to model systems that can be described in terms of activity steps: like legal procedures, industrial processes, recipes and algorithms. State machines and UML can be described as subsets of Petri nets. Industrial designers could use them, because they are general enough for most problems and they provide a blueprint for programming. A good place to start for general information is the Petri Nets World page.
This silly net says that, if you are a human being with a BA, you can enroll in a master program: then you can either go through the graduation process and graduate, or change your mind and become a rock star. Your activities are also fed into a big database somewhere. The model can be made fancier by annotating it with time, for example: so that you can have estimates of how long it takes to graduate etc. or whether it is possible to get stuck somewhere in the process. By the way, this network is also a state machine, something that makes computer scientists very happy.
I recenty looked up a few tools for working with Petri nets. I walked my way down this convenient list page from Petri Nets World, ignored things that looked dead, costed money or would not run on Windows. I was interested in tools that can also deal with time. Here are my notes:
Renew is a big Java application that seems able to do many things. I really don’t like Java, so I installed it with great reluctance. It worked nicely, but then it steadily refused to save anything. This is a bit of a drawback, so I uninstalled it and cursed Java for the hundredth time.
Snakes is a super cool Python library for doing Petri Nets. I was very tempted to start playing with it, just because I like programming in Python, but I decided to be a responsible person for once. It looks very Linuxy.
Tina is the TIme Petri Nets Analyzer. A collection of tools for editing and analyzing and doing very fancy things with Petri Nets. Looks very tasty, maybe will play with it in the future. Explicitly available for Mac, Win and Linux.
Yasper is an entry level tool for playing around with Nets. It is very easy to use and it comes with a manual that also introduces some general modelling concepts. And it is a Dutch product, written in dot net at the TU Eindhoven. I am using it currently, mostly because it is easy to install and kind of friendly.
CPNTools looked very promising, but they want you to obtain a license. The license is free, but I will put up with the tedium only if other tools are not enough.
StpnPlay also looked very promising, but their project page appears to work only with Internet Explorer. Gamestopper for this guy.
Snoopy is also rather friendly and easy to install. I am playing with it currently, and it looks more general that Yasper but still reasonable.
(added on July 21st 2011) WoPeD is visually pleasing, and it seems oriented to colored Petri Nets with fancy extensions like AND transitions.
(added on July 21st 2011) There are also tools that work as plugins of Eclipse. Eclipse is a way of life, a religion, and I am not sure I want to inflict it on myself or my students. Of course writing an Eclipse plugin makes perfect sense to computer scientists, becaus they are already running Eclipse anyway.
After looking at the big list of Petri Nets software I have come to a realization: whenever a computer scientist does not know what to do, he gets together
with a gang of other bigger and smaller computer scientists, some with
PhDs and some not. First they agree on which of the thousand flavors of Petri Nets they like best; then they write a Petri Net tool, or
at least a Petri Net library that understands some subset of PNML. Then they refactor it, add colors, add
extensions, add importers, add exporters and generally speaking add a
kazillion other things to the original beautiful idea. Then they get
bored or finish their PhD, and do something else that nobody has ever
done before, like a raytracing engine or a compiler that can compile all
the compilers that cannot compile themselves.