We propose a new kind of nets, called contextual nets, where events may have both preconditions and postconditions, as in the classical case, and also positive or negative context conditions. Positive context conditions are to be interpreted as elements which are needed for the event to occur, but which are not affected by the occurring of the event. Instead, negative context conditions are elements which must not be present for the event to take place. The importance of an explicit representation of positive context elements is twofold. Firstly, it allows a faithful representation of systems where the notion of ''reading without consuming'' is commonly used, like database systems, concurrent constraint programming, or any computation framework based on shared memory. Secondly, it allows to specify directly and naturally a level of concurrency greater than in classical nets. In fact, two events with different preconditions but with the same positive context may occur both in any order and also simultaneously. It is important to note that no other formalism for specifying distributed systems has such feature, not even Petri nets, where the ''read'' operation does not exists and it is instead modelled through a ''rewrite'' operation (i.e., a loop), which however does not allow the simultaneous execution of two tasks which read the same resource. Of course a context situation may be simulated in classical nets by creating as many copies of the context as are the users, but this would lead to a very unrealistic (and also more costly) description of the real situation. Negative context conditions are instead very natural to use in systems or languages where negation is present. In this paper we provide contextual nets with two process-based semantics which both are able to represent all and only the computations of a net and express the correct level of true-concurrency. Moreover, we show that contact situations, as well as negative context conditions, do not add any additional power, and we investigate the relationship between contextual nets and classical nets in terms of their processes.
File in questo prodotto:
Non ci sono file associati a questo prodotto.