Dear Paula,
It's true, but... from a very pratical and simple point of view. Beside
petri-nets, there's a lot of interesting things that must be learn too...
What about maths?
Assuming that this refers to formal background in general, I think it is a
question of what maths when for which purposes. Trying to put it in a
nutshell: if we can convey the essence of Petri nets first (with pointers to
formal backgrounds), learners will be motivated to study the formal
backgrounds they need to proceed; if we focus on any of the formal
backgrounds first, Petri nets will appear only as one of many "applications"
of that formal background, and we will have instilled no motivation, no
understanding, no guidance.
From an introductory point of view, most Petri net text start with too much
maths, and with the "wrong" maths at that. The standard way of formalizing
nets as bi-partite graphs is hardly ever helpful *in an introduction* - it
focusses on graphical syntax rather than semantics, obscures what is
important about nets, and induces the wrong intuitions wrt modelling
(knitting monolithic graphs instead of composing semantic actions).
The good old matrix-based invariant topic, also still popular, is more
directly useful for modellers, but is it more important than, say logic-based
invariants, expressed in the calculus of facts (which have direct practical
applications as assertions in models)? Would you introduce unfolding
semantics, case graphs, process nets, linear logic, or perhaps even
categorical models, before the learner has an informal intuition about
what is essential about Petri nets, about how to use them for modelling,
about how they compare to other approaches? Would you bias an
introduction towards a specific formal background (and which one?
linear logic, multiset rewriting, categories, algebra, ..)?
I'd like to see a modular approach to Petri net introductions, starting
with an informal (or preformal, as there is always a formal semantics
in the background) approach, then providing additional modules from
which learners can choose according to their specific needs. These
would cover formal backgrounds (ideally with some guidance about
which form to choose for which needs), net variants, modelling
techniques, .. There is way too much material to compress it all into
the first introductory module.
Let me criticize one of my own examples: the single most popular
download on my old website was a set of slides with a tour of Petri
nets, which I prepared as a contribution to a local study group on
issues in timed automata. So the slides are biased towards what I
thought would be most useful for that group, and they are more of
a tour than an introduction
http://www.cs.kent.ac.uk/~cr3/talks/#PetriNets
I did try to convey what is special about nets in comparison to their
preferred approaches, I did try to illustrate how net models are
composed, and how the submodels are still recognizable in the
combined model, and I did manage to avoid most unneeded formalism.
But I did fall into the trap of talking about numerical invariants, when
I should have been talking about the tension between static and
dynamic aspects of models (eg, most net newcomers do not think
that a pi-calculus could be modeled as a high-level Petri net, when
in fact the only problem is that the model doesn't have much static
structure, illustrating how static structure is the basis for structural
invariants, not unlike the static guarantees from modern static type
systems). And while the slides compose bigger models from smaller
ones, they start from non-atomic models, when instead I should have
gone all the way to decompose even transitions into their basic actions
(which then leads very naturally into composition as the only way of
constructing complex models). And I'm not sure I managed to convey
the links to physics and logics, even though I talked about them (and
these links are really essential: they make Petri nets stand out from the
usual anything-I-can-define modeling formalisms in computer science).
Now, why were those slides so popular? The logs showed many hits
from Google searches, and from some Chinese link collections. I don't
read Chinese, unfortunately, so I don't know about that part, but the
Google part indicates that the much more complete introductions linked
from the Petri Nets World aren't found as easily as these slides, which
can't be right.
You decide to give him scientific papers... he understood a little bit
more... but, in general, in scientific papers there isn't a complete
formalisation of nothing... so how can he progress?
It has been over 10 years since I have actually seen a copy, so perhaps
I'm being overly nostalgic, but I seem to recall Reisig's textbook as
having fairly complete coverage at its time (late 1980s, using PrT nets
instead of CPN), although I'm sure that our Prof (Werner Kluge) expanded
the coverage in his lectures considerably from his own research. It would be
nice to see a similarly broad standard textbook for the somewhat enlarged
body of knowledge today, but last time I checked for something to order as
a seed corn for local university libraries, I wasn't too happy with the current
in-print alternatives - is there anything that comes close enough to recommend
as *the* textbook for students interested in Petri nets?
Imagine that you have a student interested not only in the understanding of
petri-nets (from a pratical point of view) but describing himself systems
using mathematical models (in general), and extending them. Next step will
be to formalise everything...
Yes, but which of the many formalisms? Just as there is a choice of modelling
languages, with Petri nets being one of them, so there is a choice of formal
backgrounds for Petri nets. It would be nice to have brief introductions to
all of them, so that your students would be able to choose which one is
going to make which task manageable. And then there would have to be
textbooks with in-depth treatments of the details, up to date with current
research, to within a couple of years (for the most recent research, papers/
dissertations/email will always be needed; in other research areas, finding the
most recent relevant dissertation, and starting from its formal background
sections, is a workable approach - doesn't this work here?).
My point is that, the interactive tools could be used to:
a.) define and describe systems (*formally*);
b.) show the progression of the "computations" (this already exists);
c.) compare two systems (possibly described using different mathematical
models or programming languages);
d.) show visual equivalences between systems (or programs)... and for last,
e.) permit susbtituion of sub-models (or programs).
It would be nice to have also the complete proof of the correctness of
equivalence...
Yes, there are several ways to go beyond the state of the art in tool support,
and it would be nice to collect, classify and refine ideas such as these to
see to what extent they could be supported by (extensions to/combinations of)
current tools. It would also be nice if there was a straightforward way to figure
out which current toolsets come closest to a given set of needs (which is not
just a matter of listing features, but a matter of surveys that look at how
useable
those feature sets are, or how well features from different tool sets combine).
Claus
----
[[ Petri Nets World: ]]
[[ http://www.informatik.uni-hamburg.de/TGI/PetriNets/ ]]
[[ Mailing list FAQ: ]]
[[ http://www.informatik.uni-hamburg.de/TGI/PetriNets/pnml/faq.html ]]
[[ Post messages/summary of replies: ]]
[[ [email protected] ]]