<!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>Automatic Partitions Extraction to Distribute the Runtime Veri cation of a Global Speci cation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Angelo Ferrando?</string-name>
          <email>angelo.ferrando@dibris.unige.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DIBRIS, University of Genova</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Trace expressions are a compact and expressive formalism, initially devised for runtime veri cation of agent interactions in multiagent systems (MAS), which has been successfully employed to model real protocols, and to generate monitors for mainstream multiagent system platforms, and generalized to support runtime veri cation of di erent kinds of properties and systems. In this paper we present the trace expression formalism and its use in the runtime veri cation context focusing on future works related to the distribution aspects.</p>
      </abstract>
      <kwd-group>
        <kwd>Distributed Runtime Veri cation</kwd>
        <kwd>Multiagent Systems</kwd>
        <kwd>Distributed Monitoring</kwd>
        <kwd>Trace expressions</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Runtime veri cation (RV) is a software veri cation technique that complements
formal static veri cation (as model checking) and testing. In RV dynamic
checking of the correct behavior of a system can be performed by a monitor which is
generated from a formal speci cation of the properties to be veri ed. A possible
way to specify the monitor behavior is through the set of all correct traces ( nite
or in nite sequences of events) which can be generated during the system
execution. Sets of traces may be represented in many di erent ways. In this extended
abstract we present trace expressions [3, 4], a formalism inspired to session types
[8, 12] which can be used to design monitors for the RV of centralized and
decentralized software systems. Distributed runtime veri cation (DRV), as described
by S. Rajsbaum in his keynote speech at the SSS 2015 Symposium [10], tackles
the problem of building a decentralized runtime monitor for a distributed system
and involves designing a distributed algorithm that coordinates the monitors in
order for them to correctly verify the dynamic behavior of the whole system.
Once the formal speci cation of the global pattern of events is given, however,
distributing the monitoring activity can be resorted to decomposing the global
speci cation into \sub-speci cations", involving less events than the global one,
which can be monitored in an independent way from each other and such that
the union of their independent monitoring gives the same guarantees as the
monitoring of the whole system w.r.t. the original speci cation. The trace expression
formalism can be used to construct protocols representing sequences on generic
events. Since we focus on its distributed aspects, we limit the set of the events
to the subset corresponding to the interaction events, where interactions are
intended as exchange of messages among agents in a MAS. Trace expressions
are already used for centralized runtime veri cation (no distribution) [4] and
for the automatic generation of protocol-driven agents (total distribution) [2]
through projection on each single agent involved in the protocol. This work lays
the foundations to ll the gap between these two projects obtaining a middle
way approach between the centralization (bottleneck) and the total distribution
(ine cient) implementations.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Trace Expressions</title>
      <p>
        A trace expression represents a set of possibly in nite event traces, and is
de ned on top of the following operators: (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) (empty trace), denoting the
singleton set f g containing the empty event trace ; (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) #: (pre x ), denoting
the set of all traces whose rst event e matches the event type1 # (e 2 #), and
the remaining part is a trace of ; (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) 1 2 (concatenation), denoting the set
of all traces obtained by concatenating the traces of 1 with those of 2; (
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
1^ 2 (intersection), denoting the intersection of the traces of 1 and 2; (
        <xref ref-type="bibr" rid="ref5">5</xref>
        )
1_ 2 (union), denoting the union of the traces of 1 and 2; (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ) 1j 2 (shu e),
denoting the set obtained by shu ing the traces of 1 with the traces of 2; (
        <xref ref-type="bibr" rid="ref7">7</xref>
        )
# ( lter ), a derived operator denoting the set of all traces contained in ,
when deprived of all events that do not match #. Event types represent sets of
generic events; in the following when we consider interaction types, which are a
special case of event types related to the exchange of messages among agents,
we denote them as and we represent the interaction events contained inside as
es!r meaning that the sender s sends the message e to the receiver r. To support
recursion without introducing an explicit construct, trace expressions are regular
(a.k.a. rational or cyclic) terms: they correspond to trees where nodes2 are either
the leaf , or the node (corresponding to the pre x operator) # with one child,
or the nodes , ^, _, and j all having two children. According to the standard
de nition of rational trees, their depth is allowed to be in nite, but the number
of their subtrees must be nite. The semantics of trace expressions is speci ed
by the transition relation T E T, where T and E denote the set of trace
expressions and of events, respectively. As it is customary, we write 1 !e 2 to
mean ( 1; e; 2) 2 . If the trace expression 1 speci es the current valid state
of the system, then an event e is considered valid i there exists a transition
e
1 ! 2; in such a case, 2 will specify the next valid state of the system after
1 To be more general, trace expressions are built on top of event types (chosen from
a set ET), rather than of single events; an event type denotes a subset of E.
2 Since the lter is a derived operator it can be rewritten and there is not a
correspondence on the tree.
event e. Otherwise, the event e is not considered to be valid in the current state
represented by 1.
      </p>
      <p>Example 1. Let E = fe1; : : : ; e7g, and #i, i = 1; : : : ; 7, be the event types such
that e 2 #i i e = ei (that is, J#iK = feig); then the trace expression 1 =
((#1: j#2: )_(#3: j#4: )) (#5:#6: j#7: ) denotes the following set of event traces:
e1e2e5e6e7; e1e2e5e7e6; e1e2e7e5e6; e2e1e5e6e7; e2e1e5e7e6; e2e1e7e5e6;
e3e4e5e6e7; e3e4e5e7e6; e3e4e7e5e6; e4e3e5e6e7; e4e3e5e7e6; e4e3e7e5e6
Example 2. Let the set of interaction types ET = f ping; pongg and E =
fpingA!B; pongB!Ag, J pingK = fpingA!Bg and J pongK = fpongB!Ag; then
the trace expression P ingP ong = ( ping:P ingP ong pong: )_ denotes the
following set of interaction events:
fpingA!BpongB!A; pingA!BpingA!BpongB!ApongB!A; :::; pingAn!BpongBn!Ag:
2.1</p>
      <sec id="sec-2-1">
        <title>Projection</title>
        <p>The projection function was rst introduced in [1]. Given the nite set AGS of all
the agents that could play a role in the MAS and an interaction type (an event
type containing only interaction events), senders( ) is the set of all the agents
in AGS that could play the role of sender in actual interactions having type ,
and receivers( ) is the set of all the agents in AGS that could play the role of
receiver in interactions of type . The involves predicate holds on one interaction
type and one set of agents Ags, involves( ; Ags), i (senders( ) \ Ags 6=
;) _ (receivers( ) \ Ags 6= ;).</p>
        <p>
          We de ne two auxiliary functions f irst : T ! P(ET) (last : T ! P(ET)),
f irst( ) = f#1; #2; :::; #ng (last( ) = f#1; #2; :::; #ng) i 8#i :9e2#i s.t. e is
one of the rst (last) events which can be consumed by the transition
relation called on . In this way we can introduce the derived sets involved( ) =
Ags () senders( ) [ receivers( ) = Ags and involved( ) = ;; involved( ) =
involved(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )[:::[involved( n)[involved(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )[:::[involved( m); with f irst( ) =
f 1; :::; ng and 81 i m: !e i; for some e. Projection can be described as a
function : T P(AGS) ! T. is driven by the syntax of the trace expression
to project; since is de ned on cyclic terms, the simplest way to de ne it is
by coinduction as follows: (i) ( ; Ags) = , (ii) ( : ; Ags) = : ( ; Ags)
if involves( ; Ags), (iii) ( : ; Ags) = ( ; Ags) if :involves( ; Ags), (iv)
( 0 op 00; Ags) = ( 0; Ags) op ( 00; Ags), where op 2 f ; ^; _; jg.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Trace Expression Distribution</title>
      <p>As already anticipated, we consider trace expressions to model interaction
protocols inside a MAS. With respect to the centralized runtime veri cation approach
proposed in [4], we want to reason about the trace expression distribution in
order to obtain a set of trace expressions where each one represents the
protocol subset related to a xed set of agents. The main problem of this approach
is to understand which agents can be monitored separately and which must
be monitored together (unsplittable) in order to guarantee that the distributed
monitoring gives the same results as the centralized one. This notion is strongly
related to the correctness de nition in the Choreographies research eld [9] where
a choreography can be projected on each single entity (agent for us) only if it
satis es three conditions (for trace expressions the rst two are enough). We
report these two conditions adapted for the trace expression formalism.
De nition 1. The two conditions which a trace expression must satisfy in
order to be correctly projected on each single agent involved in its event types
are:
1. Connectedness for sequence.</p>
      <p>
        For each sub-expression : 1, with f irst(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) = f 1; 2; :::; ng, we have
8 i2first(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ):involved( ) \ involved( i)6=;: For each sub-expression 1 2,
with last(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) = f 1; 2; :::; ng and f irst(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) = f 10; 20; :::; n0g, we have
8 2last(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ):8 02first(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ):involved( ) \ involved( 0) 6= ;:
2. Unique point of choice.
      </p>
      <p>
        For each sub-expression 1_ 2, with f irst(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) = f 1; 2; :::; ng and f irst(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
= f 10; 20; :::; n0g, we have 8 2first(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ):8 02first(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ):involved( ) \ involved( 0)
6= ; and involved(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) = involved(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ):
      </p>
      <p>Without loss of generality we consider only trace expressions where all
interaction types represent nite sets of events. Thus, we can have interaction types
like = fi1A!B; i2B!A; i3A!B; :::g and not interaction types like = fi1A!B;
i2C!D; :::g or = fi1A!B; i2A!D; :::g.</p>
      <p>We can observe that the two conditions are too restrictive when we want
to distribute our protocols on sets of agents. In particular, we can easily nd
protocols that cannot be projected on a single agent but can be projected on a set
of agents. Considering for instance the trace expression = :::( ping: pong: ):::
where ::: means that contains also other terms and J pingK = fpingA!Bg,
J pongK = fpongC!Dg, can immediately note that it does not satisfy the rst
condition (the connectedness for sequence). Since can be a very large trace
expression we would like to distribute it anyway. Even if we cannot distribute
it on each single agent ffAg; fBg; fCg; fDgg, in this particular case a possible
choice for the distribution could be ffAg; fB; Cg; fDgg obtaining three di erent
projections of the global protocol in three separated parts where B and C are
projected and monitored together.</p>
      <p>Example 3. Given the trace expression = ( m1: )_( m2: ) where AGS =
fA; B; C; Dg, J m1K = fmsg1A!Bg and J m2K = fmsg2C!Dg. ( ; fAg) =
( ; fBg) = (( m1: )_( m2: )) = ( m1: ( ))_( ( )) = ( m1: )_( ) = m1:
and ( ; fCg) = ( ; fDg) = (( m1: )_( m2: )) = ( ( ))_( m2: ( )) =
( )_( m2: ) = m2: The two local versions of the protocol have lost the unique
point of choice information.
3.1</p>
      <sec id="sec-3-1">
        <title>Automatic Partitions Extraction</title>
        <p>
          An important feature in order to distribute a trace expression is the automatic
generation of the set of all possible partitions of agents that preserve the
semantics during the projection phase. Since we know that a trace expression must
satisfy the two conditions (De nition 1) to be correctly projected on each single
agents involved in the protocol, we can use this information to guide our analysis.
From an high level point of view, given a trace expression , for each subterm of
we can check if the two conditions are satis ed; if a condition is not satis ed
on a singular agent, we try to evaluate it on a set of agents containing the agent.
Considering for instance the rst condition (connectedness for sequence), if we
nd a subterm 1 : 2 : :::, with involved(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ) \ involved(
          <xref ref-type="bibr" rid="ref2">2</xref>
          ) = ;, it does not
satisfy the condition, but we can generate the set of all possible correct partitions
ffa; bgja 2 involved(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ); b 2 involved(
          <xref ref-type="bibr" rid="ref2">2</xref>
          )g forcing in this way the
connectedness property. A similar thing should be done for the other condition. Once we
have obtained the set with all correct partitions we can choose the one that best
meets our distribution requirements.
        </p>
        <p>We are working on the implementation of the corresponding algorithm
focusing on the correctness and completeness proofs. The intuition is that forcing the
preservation of the two conditions (De nition 1) we preserve all critical points
of the trace expression, where the critical points are all points of the protocol
where it could be necessary monitor some agents together.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related and Future Work</title>
      <p>In this extended abstract we have presented a possible approach for the
distribution of a trace expression on a set of agents. Following the conditions deriving
from Choreographies (De nition 1) we can extract the partitions of agents which
allow us to obtain the semantic preservation during the projection phase. Once
we have the set of all possible valid partitions we can use them to generate the
monitors to perform the distributed runtime veri cation of our MAS.</p>
      <p>We can nd works on distributed runtime monitoring like [7, 6, 11] but w.r.t.
DRV of MASs we were not able to nd any related work, except for the one
which spun o from [1], namely [5]. Another relevant work is [13] where an
interesting distributed approach to process mining is presented. Considering the
conformance checking, that work is extremely related to ours and it can be useful
to study the possible connections. For instance using trace expressions instead
of Petri nets for the conformance checking of event logs.</p>
      <p>Future work will be to implement the algorithm corresponding to this
intuition using the programming language Prolog whereby we have already
implemented the semantics of trace expressions and the projection function. Once we
will have implemented the distribution algorithm we will be able to project the
global protocol on each single partition in order to automatically generate
distributed monitors. A possible implementation could be using a MASs framework
based on logic programming, in this way we will be able to generate monitors
directly by the projected trace expressions. We will try our approach rst on some
well known communicative protocols (as Contract Net Protocol, Alternating Bit
Protocol, and so on) and after on a real case study concerning the distributed
runtime veri cation of a MAS.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ancona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>El Fallah Seghrouchni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Taillibert</surname>
          </string-name>
          .
          <article-title>Efcient veri cation of MASs with projections</article-title>
          .
          <source>In Engineering Multi-Agent Systems - Second International Workshop, EMAS 2014, Revised Selected Papers, Lecture Notes in Computer Science</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ancona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferrando</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          .
          <article-title>Global protocols as rst class entities for self-adaptive agents</article-title>
          .
          <source>In Proceedings of the 2015 International Conference on Autonomous Agents and Multiagent Systems, AAMAS 2015</source>
          , pages
          <fpage>1019</fpage>
          {
          <fpage>1029</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ancona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Drossopoulou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          .
          <article-title>Automatic generation of selfmonitoring MASs from multiparty global session types in Jason</article-title>
          .
          <source>In DALT</source>
          <year>2012</year>
          , volume
          <volume>7784</volume>
          <source>of LNAI</source>
          , pages
          <volume>76</volume>
          {
          <fpage>95</fpage>
          . Springer International Publishing,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ancona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferrando</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          .
          <article-title>Theory and Practice of Formal Methods: Essays Dedicated to Frank de Boer on the Occasion of His 60th Birthday, chapter Comparing Trace Expressions and Linear Temporal Logic for Runtime Veri cation</article-title>
          , pages
          <volume>47</volume>
          {
          <fpage>64</fpage>
          . Springer International Publishing, Cham,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Ancona</surname>
          </string-name>
          .
          <article-title>Distributed runtime veri cation of JADE multiagent systems</article-title>
          . In D. Camacho,
          <string-name>
            <given-names>L.</given-names>
            <surname>Braubach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Venticinque</surname>
          </string-name>
          , and C. Badica, editors,
          <source>IDC</source>
          <year>2014</year>
          , volume
          <volume>570</volume>
          <source>of Studies in Computational Intelligence</source>
          , pages
          <fpage>81</fpage>
          {
          <fpage>91</fpage>
          . Springer International Publishing,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>T.-C. Chen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Bocchi</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.-M. Denielou</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Honda</surname>
            , and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Yoshida</surname>
          </string-name>
          .
          <article-title>Asynchronous Distributed Monitoring for Multiparty Session Enforcement</article-title>
          , pages
          <volume>25</volume>
          {
          <fpage>45</fpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Francalanza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gauci</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Pace</surname>
          </string-name>
          .
          <article-title>Runtime monitoring of distributed systems (extended abstract)</article-title>
          .
          <source>Technical report</source>
          , University of Malta,
          <year>2010</year>
          . WICT.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>K.</given-names>
            <surname>Honda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. T.</given-names>
            <surname>Vasconcelos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kubo</surname>
          </string-name>
          .
          <article-title>Language primitives and type discipline for structured communication-based programming</article-title>
          .
          <source>In Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems</source>
          , ESOP '
          <volume>98</volume>
          , pages
          <fpage>122</fpage>
          {
          <fpage>138</fpage>
          , London, UK, UK,
          <year>1998</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>I.</given-names>
            <surname>Lanese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Guidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Montesi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Zavattaro.</surname>
          </string-name>
          <article-title>Bridging the gap between interaction-and process-oriented choreographies</article-title>
          .
          <source>In 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods</source>
          , pages
          <volume>323</volume>
          {
          <fpage>332</fpage>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>S.</given-names>
            <surname>Rajsbaum</surname>
          </string-name>
          .
          <article-title>Distributed runtime veri cation { where combinatorics, faulttolerance and formal methods meet</article-title>
          .
          <source>Keynote Talk at the SSS</source>
          <year>2015</year>
          ,
          <year>August 2015</year>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. T. Sche el and
          <string-name>
            <given-names>M.</given-names>
            <surname>Schmitz</surname>
          </string-name>
          .
          <article-title>Three-valued asynchronous distributed runtime verication</article-title>
          .
          <source>In Twelfth ACM/IEEE International Conference on Formal Methods and Models for Codesign</source>
          ,
          <source>MEMOCODE</source>
          <year>2014</year>
          , Lausanne, Switzerland,
          <source>October 19-21</source>
          ,
          <year>2014</year>
          , pages
          <fpage>52</fpage>
          {
          <fpage>61</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>K.</given-names>
            <surname>Takeuchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Honda</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kubo</surname>
          </string-name>
          .
          <article-title>An interaction-based language and its typing system</article-title>
          .
          <source>In In PARLE?94</source>
          , volume
          <volume>817</volume>
          <source>of LNCS</source>
          , pages
          <volume>398</volume>
          {
          <fpage>413</fpage>
          .
          <string-name>
            <surname>SpringerVerlag</surname>
          </string-name>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          .
          <source>Distributed Process Discovery and Conformance Checking</source>
          , pages
          <fpage>1</fpage>
          <lpage>{</lpage>
          25. Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>