<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Logic of Actions to Specify and Verify Process Requirements</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Carlo Simon</string-name>
          <email>simon@uni-koblenz.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Timestamp Petri Nets</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for Management, University Koblenz-Landau</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2002</year>
      </pub-date>
      <fpage>157</fpage>
      <lpage>168</lpage>
      <abstract>
        <p>In this paper, Timestamp Petri nets - a special kind of timed Petri nets - and a Logic of Actions are used to specify process requirements. Petri net implementations of such specifications are used for a better visualization and to prove whether a given realization is sound and complete with respect to a given specification. The theory is applied to the specification of workflow processes. An example shows how to prove that a given workflow fulfills time constraints required by the management of a company. A Software Requirements Specification (SRS), as defined in (Davis, 1993), “is a document containing a complete description of what software will do without describing how it will do it”. An SRS is the result of an early phase within a software project and builds the base for the further development. It is a collection of user needs and technical restrictions that must be considered while the software is being built. Because of its central importance, many academic and practical work concentrates on the following problems: Which formal techniques and languages exist to define requirements such that they can be transformed into a formal specification and later on into an implementation? If a given formal requirements definition cannot be transformed into an implementation automatically, is it at least possible to prove whether a realized implementation fulfills this requirement definition? In the following, we concentrate on special requirement definitions - specifications of processes. We use a Logic of Actions proposed in (Simon, 2001a) to formally define process specifications and realizations. Petri net representations of these definitions are used to illustrate the represented processes and for proving given realizations against given specifications within this theory. They will be explained throughout this paper. An example from Workflow Management Systems will be used to illustrate the application of this logic within a software development process. Timestamp Petri Nets (Hanisch, Lautenbach, Simon, and Thieme, 1998) are a special kind of Petri net (Peterson, 1981, Reisig, 1985) allowing the representation time information. Each token of a timestamp net carries a timestamp designating the moment the token was put on its</p>
      </abstract>
      <kwd-group>
        <kwd>(Timestamp) Petri nets</kwd>
        <kwd>Logic of Actions</kwd>
        <kwd>Workflow Management</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The edge from place p1 to transition a is permeable from eight to ten, i.e. in interval [5+3;
7+3]. Within this interval, transition a is able to fire any moment. If doing so, the resulting
token on place p4 gets a timestamp with value eight to ten dependent on the moment
transition a actually fires.</p>
      <p>The edge from p2 to b is permeable from ten to eleven and that from p3 to b from nine to
twelve. Since both edges are only permeable simultaneously from ten to eleven, transition b is
only able to fire within this interval. Afterwards, the resulting token on p5 will carry a token
with a timestamp between ten and eleven.
[0;1]
[1;2]
c
c
&lt;9&gt;</p>
      <p>[0;1]
&lt;11&gt;</p>
      <p>[1;2]
p1
p2
p3
&lt;3&gt;
&lt;7&gt;
&lt;1&gt;
[5;7]
[3;4]
[8;11]
p1
p2
p3
[5;7]
[3;4]
[8;11]
a
place. Intervals at the incoming edges of transitions specify their permeability with respect to
the marking of the adjacent place. If all pre-places of a transition are marked and all its
incoming edges are permeable simultaneously, then this transition is able to fire.
Figure 1 shows a timestamp net consisting of five places p1, …, p5 and three transitions a, b,
and c. Place p1 is marked with a token with timestamp three, the token on p2 has a timestamp
seven and the token on p3 has a timestamp of one. Therefore, the token on p2 is the youngest
and that on p3 is the eldest shown in the net. All other places of the net are unmarked.</p>
      <p>Timewise stuckness always occurs when one incoming edge of a transition looses its
permeability before another become permeable at all. Hanisch, Lautenbach, Simon, and
Thieme (1998) have presented an analyzing technique that can be used to determine whether
certain transitions in a timestamp net might get timewise stuck. The same analyzing technique
can be used to determine time parameters within such a net such that certain transitions will
never get timewise stuck.</p>
      <p>
        Until now, applications of timestamp nets have been rather technical
        <xref ref-type="bibr" rid="ref5 ref6">(Simon, 2001a, Simon,
2001b)</xref>
        , but as we will demonstrate later in this paper, non-technical applications can be found
as well.
      </p>
    </sec>
    <sec id="sec-2">
      <title>A (Timed) Logic of Actions</title>
      <p>In Simon, (2001a), a Logic of Actions (LA) is proposed. Process is the central term in LA.
Processes consist of actions which might occur or are forbidden and which are ordered in
sequence or might occur coincidentally. Timestamps assigned to actions are used to determine
their moment of occurrence. The extension of LA by time is called Timestamp Logic of
Actions (TiLA) .</p>
      <p>Modules, the formulas of LA and TiLA, are used to specify process sets. Before (&lt;), after (&gt;),
coincident (=), forbid (¬), and (∧), xor (+), and iteration operators are used to combine sub
modules to complex ones.</p>
      <p>[[3;4] a &lt; [[6;7] b + [5;8] c]]
is an example for a TiLA module. It specifies processes where action a occurs 3 to 4 time
units after process start. Afterwards, either action b occurs after 6 to 7 time units or c occurs
after 5 to 8 units of time and the processes end. A Petri net implementation of this module is
shown in figure 3.</p>
      <p>s
[3;4]
a
[6;7]
[5;8]
b
c
[0;∞]
g
In a Petri net implementation of a module, the same processes can be realized as are specified
by the module. A process in such a net is a firing sequence reproducing the empty initial
marking and in which the start transition s and the goal transition g, used to specify the
beginning and the end of each process, occur exactly once. Actions are represented by equally
named transitions. The symbol ∞ designates that the respective edge never looses its
permeability after it has been marked as long as the token stays on the adjacent place.
Petri nets are not only a means to visualize TiLA modules but rather are used to simplify
proving within this theory. The aim of verification within TiLA is to prove whether a given
realization of processes fulfills a given process specification. A realization can be proven to
be sound and complete with respect to a specification.</p>
      <sec id="sec-2-1">
        <title>Definition: Fulfill</title>
        <sec id="sec-2-1-1">
          <title>Let M1, M2 be TiLA modules over a set of actions A.</title>
          <p>M1 fulfills M2 (M1 →→ M2) iff P[CM2(M1)] ⊆ P[CM1(M2)]
Within this definition, the operator C is used to mutually complete the modules in order to
make them comparable. In all processes of completed modules each action of this module
either occurs or is forbidden. M1 fulfills M2, if the set of completed processes realized by M1
is a subset of those specified by M2.</p>
          <p>A realization is called sound if it only realizes specified processes. In terms of our logic, it
fulfills its specification. If all specified processes are realized then the realization is complete.</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>Definition: Sound, Complete</title>
        <p>Let S be a specification given as a TiLA module over a set of actions A, and R a realization
also given as a TiLA module over the same set of actions A.:
•
•</p>
        <sec id="sec-2-2-1">
          <title>R is sound with respect to S iff R →→ S</title>
        </sec>
        <sec id="sec-2-2-2">
          <title>R is complete with respect to S iff S →→ R</title>
          <p>This definition of sound and complete is based on counting the processes specified by
modules. However, in the case of TiLA modules the number of specified processes is
infinitely large. Therefore, we will consider an alternative approach to proving in the
following section.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Proving within the Logic of Actions</title>
      <p>Instead of comparing the process sets of a specification S and a realization R, we do
verification by conjoining S and R and determining whether this rules out processes specified
by R. In this case, R defines processes not specified by S and therefore R does not fulfill S.</p>
      <sec id="sec-3-1">
        <title>Theorem 1</title>
        <sec id="sec-3-1-1">
          <title>Let M1, M2 be TiLA modules over a set of actions A.</title>
          <p>M1 →→</p>
          <p>M2 ⇔ P[M1 ∧ M2] = P[CM2(M1)]
We use theorem 2 instead, if undesirable behavior is specified instead of desired behavior, i.e.
if ¬S and not S is given.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Theorem 2</title>
        <sec id="sec-3-2-1">
          <title>Let M1, M2 be TiLA modules over a set of actions A.</title>
          <p>M1 →→</p>
          <p>
            M2 ⇔ |P[M1 ∧ ¬M2]| = 0
Both theorems have been proven in
            <xref ref-type="bibr" rid="ref5 ref6">(Simon, 2001a)</xref>
            . We use theorem 1 for direct proving and
theorem 2 for indirect proving.
          </p>
          <p>For given Petri net implementations of modules M1 and M2, we can realize M1 ∧ M2 by
joining (×) the completed implementations N (CM2(M1)) and N (CM1(M2)). Joining identifies
equally named transitions of both participating nets (including s and g) and fuses them. All
places of the participating nets also occur in the result of the join except those which cause
redundant structures. Additionally, places are added to prevent transitions representing a
certain action and others representing its prohibition from occurring both in processes.</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>Theorem 3</title>
        <p>
          and a realization
The effect of joining Petri net implementations of modules is that the resulting net realizes
only such processes specified by each participating module or its Petri net implementation,
respectively. The completion step is responsible for making the participated processes
comparable. This observation leads to the following theorem that is central in
          <xref ref-type="bibr" rid="ref5 ref6">(Simon, 2001a)</xref>
          .
Let M1, M2 be TiLA modules over a set of actions A, N (CM2(M1)) and N (CM1(M2)) Petri net
implementations of their completions.
        </p>
        <p>N (CM2(M1)) × N (CM1(M2)) implements M1 ∧ M2</p>
        <sec id="sec-3-3-1">
          <title>As an example, let us consider a specification</title>
          <p>S = [[3;4] a &lt; [[6;7] b + [5;8] c]]</p>
          <p>R = [[[4;4] a &lt; [6;7] c] ∧ [0; ¥]¬b].</p>
          <p>Specification S describes processes where a occurs three to four units of time after process
start. Afterwards, either b occurs six to seven units of time later, or c occurs five to eight units
of time later. Realization R describes processes where a occurs exactly after four units of time
after process start. Six to seven units of time later, c occurs. In addition, b is forbidden.
For proving whether R fulfills S, we first have to mutually complete their implementations.
Figure 5 shows this step with respect to the implementation of R. Although the result of this
completion looks quite complex this is only a problem of visualization. The operation itself is
linear dependent on the number of transitions in the net.</p>
          <p>s
s
As we mentioned above, completion is responsible for making the process sets of modules
comparable. Therefore, this completion step, as demonstrated above, is also important on the
Petri net level (cf. Simon, 2002). However, in Petri net implementations we can make an
observation that simplifies further calculations: Processes of such a Petri net implementation
are firing sequences reproducing the empty initial marking. Thus, only such firing sequences
can be realized which are also realizable in the same Petri net without time information. In
such a Petri net without time information, such firing sequences reproducing the empty initial
marking must be covered by T-invariants. Therefore, each transition that is not included in
any T-invariant cannot occur in any realizable process of such a Petri net implementation. In
other words: the corresponding action does not occur or is forbidden in any process of the
implemented completed module.</p>
          <p>If we consider the Petri net in figure 5 without time information, we only find one T-invariant
covering transitions s, a, ¬b, c, and g. No one of the transitions added throughout the
completion step is participated in any process. Therefore, we can immediately role back our
completion step and can conclude that in our realization already each specified process must
have been complete.</p>
          <p>Completing the Petri net implementation of the specification S and reducing this result with
the aid of the T-invariant method described above results in the implementation shown in
figure 6.</p>
          <p>s
[3;4]</p>
          <p>a
Figure 7 shows the result of joining these intermediary results.
s
s
s
[4;4]
Comparable to our reductions of the completed modules, we can also simplify this result
using the T-invariant method. This time, we can rule out transitions ¬a, b, and ¬c from
occurring in any process. This leads to the Petri net implementation of S ∧ R as shown in
figure 8.
In all firing sequences beginning with start transition s, both pre-places of transition a get
marked at the same moment. Three to four time units later the first incoming edge of a is
permeable. The second one is permeable exactly after four time units. Since transition a can
only fire if all its incoming edges are permeable simultaneously, the permeability of both
edges results from the intersection of interval [3;4] and [4;4]. As a result, we get the net
shown in figure 9.
In the same way we can proceed with the incoming edges of transition c. The result is the
Petri net implementation of our realization R as shown in figure 4. With the aid of theorems 1
and 3 we conclude that the realization fulfills the specification.</p>
          <p>In the following sections, we show an application of this theory to the field of Workflow</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>Management Systems.</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Workflow Management Systems</title>
      <p>
        The development of Workflow Management Systems
        <xref ref-type="bibr" rid="ref9">(WfMC, 1996)</xref>
        arose with Electronic
Document Management Systems. Offices appeared to be drowning in paper. However, merely
changing a paper representation of a business issue into an electronic representation was no
solution
        <xref ref-type="bibr" rid="ref2">(Koulopulos, Frappaolo, 1995)</xref>
        . The main benefit of Electronic Document
Management Systems arises from integrating them into a Workflow Management System
identifying the documents needed for conducting a certain task and retrieving them from
document archive.
      </p>
      <p>
        The expression workflow is used to describe human work and the basic terms on this area are
defined by the Workflow Management Coalition (WfMC). A workflow is "the automation of a
business process, in whole or part, during which documents, information or tasks are passed
from one participant to another for action, according to a set of procedural rules". A
Workflow Management System "defines, creates and manages the execution of workflows
through the use of software, running on one or more workflow engines, which is able to
interpret the process definition, interact with workflow participants and, where required,
invoke the use of IT tools and applications"
        <xref ref-type="bibr" rid="ref9">(WfMC, 1996)</xref>
        .
      </p>
      <p>These fundamental definitions by the WfMC highlight the most important parts of workflow
systems from the point of view of automation:
•
•</p>
      <sec id="sec-4-1">
        <title>Workflow participants who perform the work. The term workflow participant "is normally applied to a human resource but it could conceptually include machine based resources such as an intelligent agent" (WfMC, 1996).</title>
      </sec>
      <sec id="sec-4-2">
        <title>An organizational role specifies a group of employees "exhibiting a specific set of</title>
        <p>
          attributes, qualifications and/or skills"
          <xref ref-type="bibr" rid="ref9">(WfMC, 1996)</xref>
          . Instead of "workflow
participant" the term "role player" is used. This highlights the fact that when a
workflow is planned one does not think of individuals, but of tasks and of positions in
an organizational structure which are implemented to fulfill this task. The assignment
of a certain task to a specific individual is done while a process instance is executed.
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>Activities are definitions of the elementary pieces of work of which a workflow is composed. The structure of a workflow specifies sequences, alternatives, and parallel occurrences of activities.</title>
      </sec>
      <sec id="sec-4-4">
        <title>An activity can be performed manually (by humans) or automatically (by the</title>
      </sec>
      <sec id="sec-4-5">
        <title>Workflow Management System or by elementary tools for business automation).</title>
      </sec>
      <sec id="sec-4-6">
        <title>A process instance is a workflow in execution, while an activity instance is an activity in execution. The diagram in figure 10 illustrates the relationships between these elementary terms according to the WfMC (WfMC, 1996).</title>
        <sec id="sec-4-6-1">
          <title>Business Process</title>
          <p>(i.e. what is intended to happen)
is defined in a
is managed by a</p>
        </sec>
        <sec id="sec-4-6-2">
          <title>Process Definition</title>
          <p>(a represenation of what
is intended to happen)</p>
        </sec>
        <sec id="sec-4-6-3">
          <title>Workflow Management System</title>
          <p>(controls automated aspects
of the business process)
Sub</p>
        </sec>
        <sec id="sec-4-6-4">
          <title>Processes</title>
          <p>composed of
used to create
&amp; manage
via
which may be</p>
        </sec>
        <sec id="sec-4-6-5">
          <title>Activities</title>
          <p>or</p>
        </sec>
        <sec id="sec-4-6-6">
          <title>Manual Activities</title>
          <p>(which are not
managed as part of
the Workflow System)</p>
        </sec>
        <sec id="sec-4-6-7">
          <title>Automated</title>
          <p>Activities during execution
are represented by</p>
          <p>Process Instances
(a representation of what
is actually happening)
include one
or more
which
include</p>
        </sec>
        <sec id="sec-4-6-8">
          <title>Activity Instances</title>
          <p>and/or</p>
        </sec>
        <sec id="sec-4-6-9">
          <title>Work Items</title>
          <p>(tasks allocated to a
workflow participant)</p>
        </sec>
        <sec id="sec-4-6-10">
          <title>Invoked</title>
        </sec>
        <sec id="sec-4-6-11">
          <title>Applications</title>
          <p>(computer tools/
applications used
to support an
activity)
Obviously, processes are central in the definition of Workflow Management Systems. They
are detailed in nature because they cover both, the usual business process as well as
exceptions from this process in the case of faults. However, a first specification of such a
business process might come along without such details. In the following section we consider
the question how to prove whether a workflow definition fulfills such a previously made
specification.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Applying TiLA to Workflow Management System</title>
      <p>
        In the following, we use TiLA to answer the question: Is every process of a complex
realization conforming a given specification?
To demonstrate this, we consider an exemplary workflow described in
        <xref ref-type="bibr" rid="ref7">(Aalst, Hee, 2002)</xref>
        .
They use Petri nets to specify workflow models
        <xref ref-type="bibr" rid="ref8">(Aalst, 1998)</xref>
        . As a use case, they consider an
insurance company. Figure 11 shows the process “handle complaint”. Numbers in transitions
are used to indicate the average processing time per task. We leave out assessment cycles,
because in the following we want to concentrate on a typical process.
start
c1
c2
contact client
record
10
15
contact department
c3
c4
collect
c5
c6
c7
10 pay
25 send letter
20 assess
c8
end
s
s
We want to introduce the following abbreviations: r ≅ record, cc ≅ contact client, cd ≅ contact
department, c ≅ collect, a ≅ assess, p ≅ pay, sl ≅ send letter, and f ≅ file. The following
module describes the workflow shown in figure 11 where the time information is interpreted
as the moment the respective task ends:
      </p>
      <p>[[0] r &lt; [[0] cc ∧ [0] cd] &lt; [0] c &lt; [0] a &lt; [[0] p + [0] sl] &lt; [0] f]
We abbreviate intervals specifying a single moment like [15;15] by [15]. Figure 12 shows a
Petri net implementation of this module.</p>
      <p>[10]
[15]
cc
cd
[0;∞]
c
[0;∞]
[10]
[25]
p
sl
[0]
r
[20]
a
[0]
f
[0;∞]
g
As one can imagine, the module only specifies a very simple workflow. However, for a
manager of an insurance company this already might be too complex. S/he might mostly be
interested in the maximal duration of the entire process. A typical question s/he could ask for
is: Does it take no longer than 55 units of time after process start until all process data and all
used documents are filed?
In the Logic of Action, the formulation of this question is rather simple. [[55] f] is a
specification of the question. Figure 13 shows the implementation of this module.
For verifying whether our business process fulfills this specification, we join the
implementations of both modules. Figure 14 shows the result of this join.
s
p1
[0]</p>
      <p>r
p6</p>
      <p>[15]
p5
[10]</p>
      <p>p7
cc
cd
[0;∞]</p>
      <p>]
[0;∞</p>
      <p>g
[0;∞]
Now we have to examine whether the net in figure 14 represents the same processes as the net
in figure 12. If it represents less, this can only be caused by transition f getting timewise stuck.</p>
      <sec id="sec-5-1">
        <title>We use symbolic analysis to verify this.</title>
        <p>Firing transition s produces tokens with timestamp α on p1, p2, p3, and p4. After firing
transition r, places p2, p3, p4, p5, and p6 are marked. The tokens on p2, p3, and p4 have
timestamp α, those on p5 and p6 have timestamp β = α + 0 = α. By firing cc and cd, places
p5 and p6 get unmarked, p7 gets a token with timestamp γ = β + 10 = α + 10, and p8 gets a
token with timestamp δ = β + 15 = α + 15. The tokens on places p2, p3, and p4 still have
timestamp α. Assuming transition c fires as soon as possible, p7 and p8 get unmarked and p9
gets a token with timestamp ε = min{γ, δ} = α + 15. Firing transition a causes a marking
where p10 has a token with timestamp ζ = ε + 20 = α + 35, and where p2, p3, and p4 are still
marked by tokens with timestamp α. Now, we have the possibility either to fire transition p or
to fire transition sl.</p>
        <p>•
•</p>
        <p>Firing transition p marks p11 and p12 by tokens with timestamp θ = ζ + 10 = α + 45.</p>
      </sec>
      <sec id="sec-5-2">
        <title>Under this situation, transition f does not get timewise stuck and can fire at moment θ.</title>
      </sec>
      <sec id="sec-5-3">
        <title>Independent from the moment transition ¬sl fires, we can finish the process</title>
        <p>afterwards by firing g.</p>
        <p>Firing transition sl marks p12 and p13 by tokens with timestamp λ = ζ + 25 = α + 60.</p>
      </sec>
      <sec id="sec-5-4">
        <title>In the same moment, the edge from p12 to f is permeable. However, the other</title>
        <p>incoming edge of f (from place p4 to f) has already lost its permeability. Therefore,
transition f is timewise stuck and the process cannot be finished.</p>
        <p>Consequently, the realization of our business process does not fulfill the manager’s
specification. Moreover, we observe that we have to optimize our business process such that it
is 5 units of time faster. This can be achieved by optimizing action contact department,
assess, or send letter.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In this paper, we have used a Logic of Actions to specify process requirements. Petri net
implementations of the formulas of our logic are used for visualization and for proving. As an
application, we chose the verification of workflows. We demonstrated our approach with the
aid of an example.</p>
      <p>Our models and proving techniques are rather formal. As a consequence, they allow precise
descriptions of the systems under examination. However, especially in a business
environment these descriptions must be substituted by less formal ones, i.e. our mathematical
methodology must be hidden from a possible user. Our future work will focus on this
problem.</p>
    </sec>
    <sec id="sec-7">
      <title>References</title>
      <sec id="sec-7-1">
        <title>Davis, A. M. (1993): Software Requirements - Revision, Prentice Hall, Englewood Cliffs Hanisch, H.-M., Lautenbach, K., Simon, C., and Thieme, J. (1998): Timestamp Nets in</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Hanisch</surname>
            ,
            <given-names>H.-M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lautenbach</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simon</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Thieme</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>1998</year>
          )
          <article-title>: Timestamp Nets in Technical Applications</article-title>
          , In IEEE International Workshop on Discrete Event Systems, San Diego, CA; USA
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Koulopulos</surname>
            ,
            <given-names>T. M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Frappaolo</surname>
            ,
            <given-names>C</given-names>
          </string-name>
          (
          <year>1995</year>
          )
          <article-title>: Electronic Document Management Systems - A Protable Consulting</article-title>
          ,
          <string-name>
            <surname>McGraw-Hill</surname>
          </string-name>
          , New York
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Peterson</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          (
          <year>1981</year>
          )
          <article-title>: Petri Net Theory and the Modeling of Systems</article-title>
          , Englewood Cliffs: Prentice Hall
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Reisig</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          (
          <year>1985</year>
          )
          <article-title>: Petri Nets: An Introduction</article-title>
          , volume
          <volume>4</volume>
          <source>of EATCS Monographs in Theoretical Computer Science</source>
          , Springer-Verlag
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Simon</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2001a</year>
          )
          <article-title>: A Logic of Actions and Its Application to the Development of Programmable Controllers</article-title>
          , Verlag Fölbach, Koblenz, Germany
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Simon</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2001b</year>
          ):
          <article-title>Developing Software Controllers with Petri Nets and a Logic of Actions</article-title>
          ,
          <source>in IEEE International Conference on Robotics and Automation</source>
          ,
          <string-name>
            <surname>ICRA</surname>
          </string-name>
          <year>2001</year>
          , Seoul, Korea
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>van der Aalst</surname>
            , W., van Hee,
            <given-names>K.</given-names>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>: Workflow Management - Models, Methods, and</article-title>
          <string-name>
            <surname>Systems</surname>
          </string-name>
          , The MIT Press, Cambridge, Massachusetts
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          (
          <year>1998</year>
          ):
          <article-title>The Application of Petri Nets to Workflow Management</article-title>
          ,
          <source>The Journal of Circuits, Systems and Computers</source>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>Workflow</given-names>
            <surname>Management</surname>
          </string-name>
          <string-name>
            <surname>Coalition</surname>
          </string-name>
          ,
          <source>WfMC</source>
          (
          <year>1996</year>
          ): Terminology &amp; Glossary, issue
          <volume>2</volume>
          .0, http://www.wfmc.org/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>