1 Introduction
One of our long term research objectives is to develop a system that can answer questions similar to the ones given in the biological texts, used to test the understanding of the students. In order to answer such questions, we have to model pathways, add interventions / extensions to them based on the question, simulate them, and reason with the simulation results. We found Petri Nets [1] to be a suitable formalism for modeling biological pathways, as their graphical representation is very close to the biological pathways, and they can be extended to add necessary assumptions and interventions relevant to the questions as shown in our prequel to this paper [2]. Looking through the pathways, we found that certain aspects of biological pathways, such as multiple locations and substance types (perhaps connected to these locations) cannot be represented by regular Petri Nets in a succinct manner.
Consider the simplified Petri Net model of the Electron Transport Chain [3] in Figure 1. The chain removes high energy electrons () from NADH () and delivers them to Oxygen () by using electron carriers Coenzyme Q () and Cytochrome C (). During the process, H+ () ions are transported from the Mitochondrial Matrix () to the Intermembrane Space (). The crossmembrane H+ gradient thus produced drives ATP Synthase (not shown) to produce ATP. The transitions represent multiprotein complexes that form the chain. In order for to fire, 2NADH and 2H+ () are required at the Mitochondrial Matrix (). It is clear that the location information embedded in this pathway is a vital part of its model. Regular Petri Nets that were a focus of our previous work [2] cannot capture this location information in a succinct way. In addition, when we use place nodes to represent locations (as in Figure 1), regular (uncolored) tokens do not provide sufficient fidelity to represent various token types needed as input to a transition. As a result, we have to use Petri Nets with colored tokens [4] to model such biological pathways^{1}^{1}1Though a Petri Net with colored tokens can be converted into a regular Petri Net without colored tokens, they are usually too large and cumbersome, hence inconvenient.. In contrast to our previous work, the place nodes in this Petri Net model represent locations rather than substances. Even electroncarrier (substances) are locations for electrons () to be stored and shuttled. Colored tokens also provide a mechanism for differentiating between separate quantities of the same substance present in multiple locations (a common occurrence in biological systems).
Numerous Petri Net modeling and simulation systems exist [5, 6, 7, 8], but we did not find them to be suitable for our application, either due to limited adaptability outside their intended application domain, limited extendibility, or ease of extendibility. In addition, most systems did not explore all possible state evolutions, allowed different firing semantics, or provided a way to guide the search through specification of partial state as waypoints. We found the features, such as intuitive encoding, easy extendibility, and strong reasoning capability in Answer Set Programming (ASP), which is a declarative programming language with numerous competitive solvers [9]
. It has been effectively used in various domains, such as spacecrafts, work flows, natural language processing, and biological systems
[10]. The suitability of ASP to analyze Petri Nets is further reinforced over other techniques, such as process algebra, temporal logics, and mathematical equations when one considers the restrictions on Petri Nets imposed by mathematical techniques [11], the cumbersomeness of encoding in calculus even for small models [12], or the lack of applicability to higher level Petri Net extensions.Previous work on Petri Net to ASP translation has been limited to specific classes of Petri Nets, such as regular Petri Nets [13] and Simple Logic Petri Nets (SLPN) [14], focusing on analyzing their properties. Neither used colored tokens. Please see our previous work [2] for more details. Though our focus in the current work is on biological questions, our approach is equally suited for hypothesis verification during drug design, drug interaction and biological systems model development. It can also be applied to other domains where Petri Nets are used for modeling and simulation, such as work flows, embedded systems, and industrial control.
Thus, the main contributions of this paper are as follows. In Section 3 we show how ASP allows intuitive declarative encoding of higher level Petri Net extension of colored tokens [4]. We then show how additional extensions can be incorporated in our encoding by making small changes. In this regard, we present changing the firing semantics (Section 3.2), priority transitions (Section 4), and timed transitions (Section 5). We show how Petri Nets and our encoding fit into our ultimate research goals of answering questions about biological pathways. We start with a brief background on ASP, multisets, and Petri Nets.
2 Fundamentals
Answer Set Programming (ASP)
is a declarative logic programming language based on the Stable Model Semantics
[15]. Code presented in this paper follows the Clingo [16] syntax. The reader is referred to [16, 17] for the syntax and semantics of Answer Set Programs.A multiset over a domain set is a pair , where is a function giving the multiplicity of in . Given two multsets , if , where , and if . Multiset sum/difference is defined in the usual way. We use the shorthands to represent , to represent , to represent , where , . We use the notation to represent that appears times in ; we drop when clear from context. The reader is referred to [18] for details.
A basic Petri Net [1] is a bipartite graph of a finite set of place nodes , and transition nodes connected through directed arcs . An arc goes from a place to a transition or a transition to a place . The state of a Petri Net is defined by the token allocation of all place nodes, collectively called its marking . Arc weights specify the number of tokens consumed or produced from place nodes at the head or tail of the arcs due to firing of a transition. Modeling capability of basic Petri Nets is enhanced by adding reset, inhibit and read arcs. Reset arcs remove all tokens from their source places when fired. Inhibitor arcs prevent their transitions from firing until their source places are empty. Read arcs prevent their transitions from firing until their source places have at least the tokens specified by read arc weights .
Higher level Petri Nets extend the notion of tokens to typed (or colored) tokens. A Petri Net with Colored Tokens (with reset, inhibit and read arcs) is a tuple , where are the same as for basic Petri Nets, is a finite set of colors (or types), and arc weights , are specified as multisets of colored tokens over color set . The state (or marking) of place nodes is specified as a multiset of colored tokens over set .
We will now define a number of concepts about Petri Nets used in this paper. The initial marking is the initial token assignment of place nodes and is represented by . The marking at timestep is written as . The preset (or inputset) of a transition is , while the postset (or outputset) is . A transition is enabled with respect to marking , , if each of its input places has at least the number of coloredtokens as the arcweight ^{2}^{2}2In the following text, for simplicity, we will use to mean . We use similar simpler notation for ., each of its inhibiting places have zero tokens and each of its read places have at least the number of coloredtokens as the readarcweight , i.e. ( for a given . Any number of enabled transitions may fire simultaneously as long as they don’t conflict. The set of such simultaneously firing transitions is called a firing set. Execution of a firing set on a marking computes a new marking as: , , where . A set of transitions is in conflict conflict in with respect to if firing them will consume more tokens than are available at one of their common input places, i.e., ^{3}^{3}3The reset arc is involved here because we use a modified execution semantics of reset arcs compared to the standard definition [19]. Even though both capture similar operation, our definition allows us to model elimination of all quantity of a substance as soon as it is produced, even in a maximal firing set semantics. Our semantics considers reset arc’s token consumption in contention with other arcs, while the standard definition does not.. An execution sequence is the simulation of a firing sequence , where each is a firing set. It is the transitive closure of executions, where subsequent markings become the initial marking for the next transition set. Thus in the execution sequence , the firing of at produces , which becomes initial marking for .
If the Figure 1 Petri Net has the marking: , , , , then transitions are enabled. However, either or can fire simultaneously in a single firing at time 0 due to limited tokens in . is said to be in conflict with .
3 Translating Petri Nets with Colored Tokens to ASP
In this section we present an ASP encoding of a Petri Net with Colored Tokens , with an initial marking and a simulation length . This work extends our encoding of regular Petri Nets in [2]. The following sections will show how Petri Net extensions can be easily added to this initial encoding. We represent the Petri Net with initial marking , and simulation time with the following facts and rules.
 f1:

Facts place() where is a place.
 f3:

Facts trans() where is a transition.
 f5:

Facts col() where is a color.
 f7:

Rules ptarc() : time(). for each , , .^{4}^{4}4The time parameter allows us to capture reset arcs, which consume tokens equal to the current (timestep based) marking of their source nodes.
 f9:

Rules tparc() : time(). for each , , .
 f11:

Rules ptarc() : holds(), num(), >0, time(). for each , , .
 f13:

Rules iptarc() : time(). for each , .
 f15:

Rules tptarc() : time(). for each , , .
 i1:

Facts holds(). for each place .
 f17:

Facts time() where are the discrete simulation time steps.
 f19:

Facts num() where are token quantities^{5}^{5}5The token count predicate num’s limit can be arbitrarily selected to be higher than the expected token count. It is there for efficient ASP grounding and not to impose a limit on the token quantity.
Next, we encode Petri Net’s execution behavior, which proceeds in discrete time steps. For a transition to be enabled, it must satisfy the following conditions: (i) , (ii) , and (iii) . These three conditions are encoded as , respectively and we encode the absence of any of these conditions for a transition as :
 e1:

notenabled(T,TS) : ptarc(P,T, N,C,TS), holds(P,Q,C,TS), place(P),
trans(T), time(TS), num(N), num(Q), col(C), Q<N.  e3:

notenabled(T,TS) : iptarc(P,T,N,C,TS), holds(P,Q,C,TS), place(P),
trans(T), time(TS), num(N), num(Q), col(C), Q>=N.  e5:

notenabled(T,TS) : tptarc(P,T,N,C,TS), holds(P,Q,C,TS), place(P),
trans(T), time(TS), num(N), num(Q), col(C), Q<N.  e7:

enabled(T,TS) : trans(T), time(TS), not notenabled(T,TS).
Rule captures the existence of an input place with insufficient number of tokens for transition to fire. Rule captures existence of a nonempty source place of an inhibitor arc to preventing from firing. Rule captures existence of a source place with less than arcweight tokens required by the read arc to transition for to be enabled. The, holds(P,Q,C,TS) predicate captures the marking of place at time as tokens of color . Rule captures enabling of transition when no reason for it to be not enabled is determined by . In a biological context, this enabling is equivalent to a reaction’s preconditions being satisfied. A reaction can proceed when its input substances are available in the required quantities, it is not inhibited, and any required activation quantity of activating substances is available.
Any subset of enabled transitions can fire simultaneously at a given timestep. We select a subset of fireable transitions using a choice rule:
 a1:

{fires(T,TS)} : enabled(T,TS), trans(T), time(TS).
The choice rule either picks an enabled transition for firing at time or not. The combined effect over all transitions is to pick a subset of enabled transitions to fire. Whether these transitions are in conflict are checked by later rules . In a biological context, the multiple firing models parallel processes occurring simultaneously. The marking is updated according to the firing set using the following rules:
 r1:

add(P,Q,T,C,TS) : fires(T,TS), tparc(T,P,Q,C,TS), time(TS).
 r3:

del(P,Q,T,C,TS) : fires(T,TS), ptarc(P,T,Q,C,TS), time(TS).
 r5:

tot_incr(P,QQ,C,TS) : col(C), QQ = #sum[add(P,Q,T,C,TS) = Q : num(Q) : trans(T)], time(TS), num(QQ), place(P).
 r7:

tot_decr(P,QQ,C,TS) : col(C), QQ = #sum[del(P,Q,T,C,TS) = Q : num(Q) : trans(T)], time(TS), num(QQ), place(P).
 r9:

holds(P,Q,C,TS+1):place(P),num(Q;Q1;Q2;Q3),time(TS),time(TS+1),col(C), holds(P,Q1,C,TS), tot_incr(P,Q2,C,TS), tot_decr(P,Q3,C,TS), Q=Q1+Q2Q3.
Rules and capture that tokens of color will be added or removed to/from place due to firing of transition at the respective timestep . Rules and aggregate these tokens for each for each place (using aggregate assignment QQ = #sum[…]) at the respective timestep . Rule uses the aggregates to compute the next marking of for color at the timestep () by subtracting removed tokens and adding added tokens to the current marking. In a biological context, this captures the effect of a process / reaction, which consumes its inputs and produces outputs for the downstream processes. We capture token overconsumption using the following rules:
 a3:

consumesmore(P,TS) : holds(P,Q,C,TS), tot_decr(P,Q1,C,TS), Q1 > Q.
 a5:

consumesmore : consumesmore(P,TS).
 a7:

: consumesmore.
Rule determines whether firing set selected by will cause overconsumption of tokens at at time by comparing available tokens to aggregate tokens removed as determined by . Rule generalizes the notion of overconsumption, while rule eliminates answer with such overconsumption. In a biological context, conflict (through overconsumption) models the limitation of input substances, which dictate which downstream processes can occur simultaneously.
Proposition 1
Let be a Petri Net with colored tokens, reset, inhibit, and read arcs and be an initial marking and let be the ASP encoding of and over a simulation of length as defined in Section 3. Then is an execution sequence of (with respect to ) iff there is an answerset A of such that: and
3.1 Example Execution
Given the above translation rules, the following facts and rules encode the Petri Net in Figure 1 with an initial marking of zero tokens^{6}^{6}6We show a few of the tparc/5, ptarc/5, holds/4 to illustrate the approach, the rest of them can be encoded in a similar fashion.:
time(0..5). num(0..30). place(mm;is;q;cytc). trans(t1;t3;t4;t10;t12). col(nadh;h;e;nadp;h2o;o2). holds(mm,0,nadh,0). holds(mm,0,h,0). tparc(t12,is,1,o2,TS):time(TS). tparc(t10,mm,6,h,TS):time(TS). tparc(t10,mm,2,nadh,TS):time(TS). ptarc(mm,t1,2,nadh,TS):time(TS).
We get thousands of answersets, for example^{7}^{7}7We are only showing colored tokens with nonzero quantity. Also, we are representing fires(t1,ts),…,fires(tm,ts) as fires(t1;…;tm,ts) to conserve space.:
fires(t10;t12,0) holds(is,1,o2,1) holds(mm,6,h,1) holds(mm,2,nadh,1) fires(t1;t10;t12,1) holds(is,2,h,2) holds(is,2,o2,2) holds(mm,10,h,2) holds(mm,2,nadh,2) holds(mm,2,nadp,2) holds(q,2,e,2) fires(t1;t3;t10;t12,2) holds(cytc,2,e,3) holds(is,6,h,3) holds(is,3,o2,3) holds(mm,12,h,3) holds(mm,2,nadh,3) holds(mm,4,nadp,3) holds(q,2,e,3) fires(t1;t3;t4;t10;t12,3) holds(cytc,2,e,4) holds(is,12,h,4) holds(is,1,h2o,4) holds(is,3,o2,4) holds(mm,8,h,4) holds(mm,2,nadh,4) holds(mm,6,nadp,4) holds(q,2,e,4) fires(t3;t4;t10;t12,4) holds(cytc,2,e,5) holds(is,16,h,5) holds(is,2,h2o,5) holds(is,3,o2,5) holds(mm,6,h,5) holds(mm,4,nadh,5) holds(mm,6,nadp,5) fires(t1;t10;t12,5)
3.2 Changing Firing Semantics
The above code implements a set firing semantics, which can produce a large number of answersets^{8}^{8}8A subset of a firing set can also be fired as a firing set by itself.. In biological domain, it is often preferable to simulate the maximum parallel activity at each time step. We accomplish this by enforcing the maximal firing set semantics by extending its encoding for regular Petri Nets in [2] to colored tokens as follows:
 a9:

could_not_have(T,TS):enabled(T,TS),not fires(T,TS), ptarc(S,T,Q,C,TS), holds(S,QQ,C,TS), tot_decr(S,QQQ,C,TS), Q > QQ  QQQ.
 a11:

: not could_not_have(T,TS), time(TS), enabled(T,TS), not fires(T,TS), trans(T).
Rule captures the fact that transition , though enabled, could not have fired at , as its firing would have caused overconsumption. Rule eliminates any answers where an enabled transition could have fired without causing overconsumption but did not. This modification reduces the number of answers produced for the Petri Net in Figure 1 to 4. We can encode other firing semantics with similar ease^{9}^{9}9For example, if interleaved semantics is desired, rules can changed to capture and eliminate answersets in which more than one transition fires in a firing set as: a3.2’: more_than_one_fires : fires(T1,TS),fires(T2,TS),T1!=T2,time(TS). a3.2’: :more_than_one_fires. . We now look at how additional extensions can be easily encoded by making small code changes.
4 Extension  Priority Transitions
Priority transitions enable ordering of Petri Net transitions, favoring high priority transitions over lower priority ones [20]. In a biological context, this is used to model primary (or dominant) vs. secondary pathways / processes in a biological system. This prioritization may be due to an intervention (such as prioritizing elimination of a metabolite over recycling it).
A Priority Colored Petri Net with reset, inhibit, and read arcs is a tuple , where: are the same as for , and is a priority function that assigns priorities to transitions. Lower number signifies higher priority. A transition is enabled in if it would be enabled in (with respect to M) and there isn’t another transition that would be enabled in (with respect to M) s.t. . We add the following facts and rules to encode transition priority and enabled priority transitions:
 f21:

Facts transpr(,) where is priority.
 a13:

notprenabled(T,TS) : enabled(T,TS), transpr(T,P), enabled(TT,TS),
transpr(TT,PP), PP < P.  a15:

prenabled(T,TS) : enabled(T,TS), not notprenabled(T,TS).
Rule captures that an enabled transition is not priorityenabled, if there is another enabled transition with higher priority at . Rule captures that transition is priorityenabled at since there is no enabled transition with higher priority. We replace rules with respectively to propagate priority as follows:
 a17:

{fires(T,TS)} : prenabled(T,TS), trans(T), time(TS).
 a19:

could_not_have(T,TS) : prenabled(TS,TS), not fires(T,TS),
ptarc(S,T,Q,C,TS), holds(S,QQ,C,TS), tot_decr(S,QQQ,C,TS), Q > QQ  QQQ.  a21:

: prenabled(tr,TS), not fires(tr,TS), time(TS).
Rules perform the same function as , except that they consider only priorityenabled transitions as compared all enabled transitions.
Proposition 2
Let be a Petri Net with colored tokens, reset, inhibit, read arcs and priority based transitions and be an initial marking and let be the ASP encoding of and over a simulation of length as defined in Section 4. Then is an execution sequence of (with respect to ) iff there is an answerset A of such that: , and
5 Extension  Timed Transitions
Biological processes vary in time required for them to complete. Timed transitions [21] model this variation of duration. The timed transitions can be reentrant or nonreentrant^{10}^{10}10A reentrant transition is like a vehicle assembly line, which accepts new parts while working on multiple vehicles at various stages of completion; whereas a nonreentrant transition only accepts new input when the current processing is finished.. We extend our encoding to allow reentrant timed transitions.
A Priority Colored Petri Net with Timed Transitions, reset, inhibit, and query arcs is a tuple , where are the same as for , and is a duration function that assigns positive integer durations to transitions.
Figure 2 shows an extended version of Petri Net model of the Electron Transport Chain [3] shown in Figure 1. The new transitions and (shown in dotted outline) are timed transitions modeling the speed of the small carrier molecules, Coenzyme Q () and Cytochrome C () as an effect of membrane fluidity. Higher numbers for transition duration represent slower movement of the carrier molecules due to lower fluidity. Execution in changes, since the token update from to can involve transitions that started at some time before time , but finish at . Thus, the new marking is computed as follows: , and , where .
A timed transition produces its output time units after being fired. We replace with adding transition duration and replace rule with that produces tokens at the end of transition duration ^{11}^{11}11 We can easily make these timed transitions nonreentrant by adding rule that disallows a transition from being enabled if it is already in progress: e9: notenabled(T,TS1):fires(T,TS0), num(N), TS1>TS0, tparc(T,P,N,C,TS0,D), col(C), time(TS0), time(TS1), TS1<(TS0+D). :
 f23:

Rules tparc():time(). for each , , .
 r11:

add(P,Q,T,C,TSS):fires(T,TS),time(TS;TSS), tparc(T,P,Q,C,TS,D),
TSS=TS+D1.
Proposition 3
Let be a Petri Net with colored tokens, reset, inhibit, read arcs and priority based timed transitions and be an initial marking and let be the ASP encoding of and over a simulation of length as defined in Section 5. Then is an execution sequence of (with respect to ) iff there is an answerset A of such that: , and
6 Example Use of Our Encoding and Reasoning Abilities
We illustrate the usefulness of our encoding by applying it to the following simulation based reasoning question^{12}^{12}12As it appeared in https://sites.google.com/site/2nddeepkrchallenge/ from [3]: “Membranes must be fluid to function properly. How would decreased fluidity of the membrane affect the efficiency of the electron transport chain?”
To answer this question, first we build a Petri Net model of the Electron Transport Chain, including its interplay with the membrane. Our model is shown in Figure 1. We base our model on [3, Figure 9.15], which shows multiple substances flowing through the protein complexes that form this chain. For example, the first complex (), removes electrons from NADH () arriving at the Mitochondrial Matrix () and delivers them to the mobile carrier Coenzyme Q (), converting NADH to NAD+ (). As a side effect, also moves H+ () ions from to the Intermembrane Space (). The speed at which (which lives in the membrane) shuttles electrons to next complex depends upon the membrane fluidity.
To answer the question, we need to model change in fluidity and its impact on the mobile carriers. Background knowledge tells us that lower fluidity leads to slower movement of mobile carriers, leading to longer transit times. We model this using an intervention to the Petri Net model of Figure 1, extending it with additional delay transitions in the path of and Cytochrome C (), as shown with dotted outline in Figure 2. We encode both models in ASP using encodings from Sections 3 and 5, respectively, and simulate them for a fixed number of timesteps using the maximal firing set semantics from Section 3.2. A plot of H+ produced over time is shown in Figure 3. We compute the efficiency of the electron transport chain as the quantity of H+ (“”) ions moved (from “”) to “” over the simulation duration “”, i.e. “”. We found that this value decreased from 4.5 to 3 with decrease of membrane fluidity (modeled as timed transitions of duration 2). Thus, our results show that decreased fluidity of the membrane results in lowering the efficiency of the electron transport chain.
If we permit additional background knowledge about the mobile carriers, we can refine our ASP encoding, modeling the mobile carriers with nonreentrant timed transitions (Section 5 Footnote 11) ^{13}^{13}13Similar modeling is also possible by using inhibitor arcs from mobile carriers to the transitions preceding them.. Repeating our simulation with nonreentrant timed transitions results in an efficiency value of 2.5, which is a larger reduction in the efficiency of the electron chain due to decreased fluidity.
ASP’s enumeration of the entire simulation evolution allows us to perform additional reasoning not directly possible with Petri Nets. For example, partial state or firing sequence can be encoded (as ASP constraints) as waypoints to guide the simulation. A simple use case is to enumerate answersets where a transition fires when one of its upstream source products is found to be depleted. These answersets are used to identify another upstream substance responsible for ’s firing. Our encoding allows various Petri Net dynamic and structural properties to be easily analyzed, as described in our previous work [2].
7 Related Work and Conclusion
Now we look at some of the existing Petri Net systems that support higher level Petri Net constructs^{14}^{14}14The Petri Net Tools Database website summarizes a large slice of existing tools http://www.informatik.unihamburg.de/TGI/PetriNets/tools/quick.html (focusing on the ones used for biological modeling). We also look at some ways existing Petri Net tools are used for biological analysis and put them in context of our research.
CPN Tools [5], Renew [8], Snoopy [6] all support Colored Petri Nets. All but CPN Tools directly support inhibit and reset arcs. All but Snoopy are limited to one particular firing semantics, while Snoopy allows three distinct firing semantics. Neither pursues more than one simulation and all break ties arbitrarily. Cell Illustrator [7] does not support colored tokens, but does provide a rich graphical environment with pathway representation similar to standard biological pathways. It also only supports one possible evolution.
Petri Nets have been previously used to analyze biological pathways [22, 23, 24], but most of this analysis has been limited to dynamic and structural properties of the Petri Net model. [25] took a different approach, where they surveyed the Petri Net implementations and came up with questions answerable by each. Contrary to the previous work, we focus on real world biological questions as they appear in college level biological text books; we model these questions as Petri Net extensions; and leverage ASP as a rich reasoning environment.
Conclusion: In this paper we presented the suitability of using Petri Nets with colored tokens for modeling biological pathways. We showed how such Petri Nets can be intuitively encoded in ASP, simulated, and reasoned with, in order to answer real world questions posed in the biological texts. We showed how our initial encoding can be easily extended to include additional extensions, such as maximal firing semantics, priority transitions, and timed transitions. Our encoding has a low specificationimplementation gap, it allows enumeration of all possible state evolutions, the ability to guide the search by specifying waypoints (such as partial state), and a strong reasoning ability. Our focus in this work is more on encoding flexibility, exploring all possible state evolutions, and reasoning capabilities; and less on performance. We showcased the usefulness of our encoding by an example. We briefly compared our work to other Petri Net systems and their use in biological modeling and analysis. In follow on papers, we will extend our work to include the Highlevel Petri Net standard.
References
 [1] Petri, C.A.: Kommunikation mit Automaten. Technical report, Institut für Instrumentelle Mathematik, Bonn, Germany (1962)
 [2] Anwar, S., Baral, C., Inoue, K.: Encoding Petri nets in Answer Set Programming for simulation based reasoning. http://arxiv.org/abs/1306.3542 (2013)
 [3] Reece, J., Cain, M., Urry, L., Minorsky, P., Wasserman, S.: Campbell Biology. Pearson Benjamin Cummings (2010)
 [4] Peterson, J., et al.: A note on colored Petri nets. Information Processing Letters 11(1) (1980) 40–43
 [5] Jensen, K., Kristensen, L., Wells, L.: Coloured Petri Nets and CPN Tools for modelling and validation of concurrent systems. International Journal on Software Tools for Technology Transfer (STTT) 9(3) (2007) 213–254
 [6] Heiner, M., Herajy, M., Liu, F., Rohr, C., Schwarick, M.: Snoopy  a unifying Petri net tool. In: Application and Theory of Petri Nets. Volume 7347 of Lecture Notes in Computer Science. (2012) 398–407
 [7] Nagasaki, M., Saito, A., Jeong, E., Li, C., Kojima, K., Ikeda, E., Miyano, S.: Cell illustrator 4.0: A computational platform for systems biology. In Silico Biology 10(1) (2010) 5–26
 [8] Kummer, O., Wienberg, F., Duvigneau, M.: Renew–the reference net workshop. Petri Net Newsletter 56 (1999) 12–16
 [9] Gebser, M., Liu, L., Namasivayam, G., Neumann, A., Schaub, T., Truszczyński, M.: The first answer set programming system competition. In: Logic Programming and Nonmonotonic Reasoning. Springer Berlin Heidelberg (2007) 3–17
 [10] Brewka, G., Eiter, T., Truszczyński, M.: Answer set programming at a glance. Communications of the ACM 54(12) (2011) 92–103
 [11] Murata, T.: Petri nets: Properties, analysis and applications. Proceedings of the IEEE 77(4) (1989) 541–580
 [12] van der Aalst, W.: Pi calculus versus Petri nets: Let us eat “humble pie” rather than further inflate the “pi hype”. BPTrends 3(5) (2005) 1–11
 [13] Heljanko, K., Niemelä, I.: Bounded LTL model checking with stable models. In: Logic Programming and Nonmotonic Reasoning. Springer (2001) 200–212
 [14] Behrens, T.M., Dix, J.: Model Checking with Logic Based Petri Nets. Technical report ifi0702, Insitut für Informatik, Technische Universität Clausthal JuliusAlbert Str. 4, 38678 ClausthalZellerfeld, Germany, Clausthal University of Technology, Dept of Computer Science (May 2007)
 [15] Gelfond, M., Lifschitz, V.: The stable model semantics for logic programming. Logic Programming: Proceedings of the Fifth International Conference and Symposium (1988) 1070–1080
 [16] Gebser, M., Kaminski, R., Kaufmann, B., Ostrowski, M., Schaub, T., Schneider, M.: Potassco: The Potsdam answer set solving collection. aicom 24(2) (2011) 105–124
 [17] Baral, C.: Knowledge Representation, Reasoning and Declarative Problem Solving. Cambridge University Press (2003)
 [18] Syropoulos, A.: Mathematics of multisets. Multiset Processing (2001) 347–358
 [19] Araki, T., Kasami, T.: Some decision problems related to the reachability problem for Petri nets. Theoretical Computer Science 3(1) (1976) 85–104
 [20] Best, E., Koutny, M.: Petri net semantics of priority systems. Theoretical Computer Science 96(1) (1992) 175–215
 [21] Ramchandani, C.: Analysis of asynchronous concurrent systems by Petri nets. Technical report, DTIC Document (1974)
 [22] Sackmann, A., Heiner, M., Koch, I.: Application of Petri net based analysis techniques to signal transduction pathways. BMC Bioinformatics 2(7) (November 2006) 482
 [23] Hofestädt, R., Thelen, S.: Qualitative modeling of biochemical networks. In Silico Biology 1 (1998) 39–53
 [24] Li, C., Suzuki, S., Ge, Q.W., Nakata, M., Matsuno, H., Miyano, S.: Structural modeling and analysis of signaling pathways based on Petri nets. Journal of bioinformatics and computational biology 4(05) (2006) 1119–1140
 [25] Peleg, M., Rubin, D., Altman, R.B.: Using Petri net tools to study properties and dynamics of biological systems. Journal of the American Medical Informatics Association 12(2) (2005) 181–199
Comments
There are no comments yet.