<!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>Service selection by choreography-driven matching</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Matteo Baldoni</string-name>
          <email>baldoni@di.unito.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cristina Baroglio</string-name>
          <email>baroglio@di.unito.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alberto Martelli</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Viviana Patti</string-name>
          <email>patti@di.unito.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Claudio Schifanella</string-name>
          <email>schi@di.unito.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Informatica - Universita` degli Studi di Torino C.so Svizzera</institution>
          ,
          <addr-line>185 - I-10149 Torino</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The greater and greater quantity of services that are available over the web causes a growing attention to techniques that facilitate their reuse. A web service specification can be quite complex, including various operations and message exchange patterns. In this work, we focus on the problem of retrieving a web service, which can play a given choreography role, preserving at the same time a condition of interest (the goal to satisfy which the service is sought). We show that current semantic matchmaking techniques do not guarantee goal preservation. We also show an approach for overcoming these limits, which exploits the choreography definition. This work is based on an action-based representation of the operations of a service: each operation is described in terms of its preconditions and effects, without taking into account the ontology layer which is not functional to the aims of the work.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Web services have a platform-independent nature, that endeavors enterprises to
develop new business processes by combining existing services, retrieved over
the web [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. In the perspective of service reuse, the ability of retrieving
services according to particular needs is crucial. Of course, it is unlikely to discover
services that perfectly match a specification, some degree of flexibility is
necessary. Nowadays, service retrieval is basically performed through registries like
UDDI [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], where service advertisements are published. A common choice is to
describe services by WSDL [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] specifications. In this context, retrieval cannot
yet be accomplished automatically as well as desired because the representations
used and the discovery mechanisms are semantically poor.
      </p>
      <p>
        The need of adding a semantic layer to service descriptions brought to
initiatives like the development of the language OWL-S [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and the development
of the Web Service Modeling Ontology (WSMO) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. In the semantic approach
a richer annotation, aimed at representing the so called IOPEs (inputs, outputs,
preconditions and effects of the service), is used. Inputs and outputs are usually
described in terms taken from a public ontology, while preconditions and effects
are often expressed by means of logic representations. The WSMO model is
slightly different: here every service has also associated a logical formula, known
as the goal of the service, which is matched with the request during the search.
The goal captures the purposes of the service while the request represents the
goal of the querier: the selection is performed only when the two match.
      </p>
      <p>
        Semantic annotation allows the discovery of services, whose descriptions do
not exactly match with the corresponding queries. Intuitively, they allow the
retrieval of services, which have been developed for a (slightly) different purpose
but that can however be used for the aims of the current query. Therefore, these
techniques facilitate software reuse. So-called semantic matchmaking techniques
(e.g. [
        <xref ref-type="bibr" rid="ref10 ref16 ref21">21, 16, 10</xref>
        ]) mainly exploit forms of ontological reasoning. Many of these
proposals are inspired by the seminal work of Zaremski and Wing [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] for
software components match, who propose a formal specification to describe and
compare software components. They define various flavors of relaxed match,
that capture the notions of generalization, specialization, and substitutability;
the best-known of these relaxed matches is the plugin match. Specifications are
given in terms of pre- and post-conditions, written as predicates in first-order
logic. Already in this work, the goal was to identify software components that
could be reused in a context that was not the one for which they were originally
developed.
      </p>
      <p>
        Semantic matchmaking focuses on the discovery of single services, in the sense
that a service is considered as corresponding to a single operation. In general,
however, the use of a web service implies the execution of a sequence of operations
in a particular order, which might even involve other services [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]: for instance,
the clients of a supplier web service have to identify themselves, request item
prices and delivery time, and so on. In order for the interaction to be successful,
the message exchange must obey some constraints: if they are not satisfied the
service will be unable to process the messages and will return an error. To allow
the interaction, web services exhibit interfaces (port-types) which gather various
operations that are logically related. Moreover, it is possible to specify the order
in which messages are to be exchanged by means of languages like WSCI [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]
and, at a lower level of detail, WSDL message exchange patterns [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
      </p>
      <p>
        On the other hand, the need of describing compositions of services, which
have to interact according to (complex) patterns of interaction, ruled by
conversation protocols, has lead to the development of choreography languages like
WS-CDL [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. WS-CDL is aimed at describing collaborations between any type
of participant independently from the programming model used by its
implementation. A WS-CDL specification can be seen as a sort of contract, that specifies
the ordering conditions and constraints that rule the message exchange. The
description is done from a global point of view, encompassing the expected
behavior of all the participants. Each participant is supposed to use the global
definition to build and test solutions that conform to it.
      </p>
      <p>
        The task of selecting a web service, that should play a role in a
choreography (rather than using the choreography as the design of a new set of services),
implies verifying two things: the conformance of the service to the specification
of a role of interest, and that the use of that service allows the achievement
of the goal, that caused its search. Conformance guarantees the
interoperability of the service with the players of the other roles [
        <xref ref-type="bibr" rid="ref11 ref23 ref8">23, 11, 8</xref>
        ] by guaranteeing
that the message exchange will produce correct and accepted conversations. The
goal that caused the search of a service is a condition that should hold after
the whole interaction has taken place. It is not tied to the descriptions of some
service operation but it is a global condition that should hold in the final state,
obtained after the conclusion of the conversation/interaction. The achievement
of the goal depends on the operation sequence because each operation can
influence the executability and the outcomes of the subsequent ones. Therefore,
the matchmaking process, that is applied to discover services, should not only
focus on local properties of the single operations, e.g. IOPEs, but it should also
consider the global schema of execution, which is given by the choreography.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] we have faced the conformance issue, proposing a conformance test
that is based on a variant of bisimulation. In this work, we focus on the
second problem: the selection of existing services that can play given choreography
roles, preserving a condition of interest. In particular, we show that performing
a match operation by operation, by applying the definitions in [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], does not
preserve the global goal. We also show how to overcome these limits by exploiting
the choreography definition. Actually, it is possible to extract from the
choreography some information that can be used to bias the matching process so that
the global goal will be preserved. To this aim, we exploit an action-based
representation of the operations of a service: each operation is described in terms of
its preconditions and effects, as in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], without taking into account the ontology
layer which is not functional to the aims of the work. This representation
supplies the mechanisms and the tools for reasoning on compositions of services, as
described in choreographies; in particular, it supplies a representation of states
and an execution model that can be reasoned about.
      </p>
      <p>The article is organized as follows. Section 2 introduces a simple
representation for services, that is based on a declarative language, to abstract away from
the details of implementation. Section 3 reports the main results of the work:
we introduce the notions of conservative and of uninfluential substitution, and
we show that it is possible to exploit the choreography to select services in such
a way that a goal of interest is preserved. Throughout these sections we will use
a same running example (introduced little by little), that is centered on the
interaction ruled by the simple purchase-flight protocol in Figure 1. Such protocol
captures the interaction between a flight ticket seller and one of its clients. In
the various sections we will see the how the protocol specification is given, in
the declarative language that we have adopted, as well as some implementations
associated to specific services, discussing about them. Related works (Section 4)
and conclusions end the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Using a declarative language to represent services</title>
      <p>
        In this section, we briefly summarize the notation that we use to represent
services, introduced in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and we discuss the problem of verifying a global goal.
The notation is based on a logical theory for reasoning about actions and change
in a modal logic programming setting. In this perspective, the problem of
reasoning amounts either to build or to traverse a sequence of transitions between
states. A state is a set of fluents, i.e., properties whose truth value can change
over time, due to the application of actions. In general, we cannot assume that
the value of each fluent in a state is known: we want to have both the possibility
of representing unknown fluents and the ability of reasoning about the execution
of actions on incomplete states. To explicitly represent unknown fluents, we use
an epistemic operator B, to represent the beliefs an entity has about the world:
Bf means that the fluent f is known to be true, B¬f means that the fluent f
is known to be false. A fluent f is undefined when both ¬Bf and ¬B¬f hold
(¬Bf ∧ ¬B¬f ). For expressing that a fluent f is undefined, we write u(f ). Thus
each fluent in a state can have one of the three values: true, false or unknown.
2.1
      </p>
      <p>
        Service representation
A service description is defined as a triple hO, G, Pi, where O is a set of
operations, G is a set of actions that allow to receive messages, and P (policy) is a
description of the interactive behavior of the service. The name “policy” derives
from the literature concerning conversation protocols [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        – The set O contains the descriptions of a set of service operations. An
operation is an atomic action. As such, it is described in terms of its executability
preconditions and effects, the former being a set of fluents (introduced by
the keyword possible if) which must be contained in the service state in
order for the operation to be applicable, the latter being a set of fluents
(introduced by the keyword causes) which will be added to the service
state after the operation execution. Formalized in these terms, operations,
when executed, trigger a revision process on the actor’s beliefs. Since we
describe web services from a subjective point of view (i.e. taking the
perspective of a specific service, by representing and reasoning on the service
policies), we distinguish between the case when the service is either the
initiator or the servant of an operation by further decorating the operation
name with a notation inspired by [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. With reference to a specific service,
operationÀ(interlocutor, content) denotes the fact that the service is the
initiator of the operation (as in the case of “solicit-response” interactions),
while operation¿(interlocutor, content) denotes the fact that the service is
the servant of the operation (as in the case of “request-response”
interactions). Formally, an operation is represented as:
operationd(interlocutor, content) possible if {P1, . . . , Pt}
operationd(interlocutor, content) causes {E1, . . . , En}
where d is either À or ¿, Ei, i ∈ [1, n], and Pj , j ∈ [1, t], denote respectively
the fluents, which are expected as effect of the execution of an operation and
the precondition to its execution, while content denotes possible additional
data that is required by the operation.
      </p>
      <p>As an example, let’s consider search flight, an operation of a flight reservation
service, which is offered by a seller and can be invoked by a client to search
information about flights with given departure and arrival locations. From
the point of view of the client, the operation search flight is represented as:
search flightÀ(seller, Date, Start, Dest)</p>
      <p>possible if {BStart, BDest, BDate}
search flightÀ(seller, Date, Start, Dest)</p>
      <p>causes {Bwill get of f er}
This notation captures the preconditions and the effects of the operation:
the precondition is that the departure location is known (BStart), that the
destination is known (BDest), and that the day of departure is also known
(BDate); the effect is that after the execution the invoker (the client) expects
that an offer will be sent (Bwill get of f er).</p>
      <p>Last but not least, a service can also have internal operations, which can
be included in its policy but are not visible from outside. Each operation is
represented again as an atomic action, specified by its preconditions and its
effects. Formally, it is defined as:
operation(content) causes {E1, . . . , En}
operation(content) possible if {P1, . . . , Pt}
where Ei, i ∈ [1, n], and Pj , j ∈ [1, t], denote respectively the fluents, which
are expected as effect of the execution of an operation and the precondition
to its execution, while content denotes possible additional data that is
required by the operation. Notice that such operations can also be implemented
as invocations to other services. As an example, here is the description of
the eval offer internal operation of a possible client for the flight-purchase
interaction:
eval offer possible if {Bof f er(f light)}
eval offer causes {Beval rst(Y )}
eval offer applies when an offer for a flight is available and produces an
evaluation that can be used for taking internal decision. The variable Y
ranges over the set {business, no business} depending on the kind of ticket
that is being considered.
– Besides operations, we explicitly represent actions that allow the reception of
information. We call them get-answer actions (set G). The range of possible
answers is supposed to be finite, in the sense that the interlocutor is supposed
to use a message out of a finite and predefined set of alternatives: if a different
message is sent the service is not able to handle it. We imagine the reception
of a piece of information as a “one-way” operation that is invoked over the
recipient. Actually, for technical reasons in our formalization, each possible
alternative answer corresponds to a different operation of this kind. Formally,
they are represented as:</p>
      <p>receive act(interlocutor, content) receives I
where interlocutor is the partner in the interaction, content is used to
store the received message, and I is a set of alternative action
invocations each allowing the reception of one of the alternative messages. As
an example get answer, reported hereafter, allows the reception of either
a not available¿ answer or of an offer through the execution of one of the
two actions not available¿ and offer¿. The decision of which of the two
actions will be executed is up to the interlocutor that decides which message
to send.</p>
      <p>get answer(Seller) receives [not available¿(Seller) or offer¿(Seller)]
In this example we do not use the content.
– P encodes the behavior for the service; it is a collection of clauses of the
kind:</p>
      <p>p0 is p1, . . . , pn
where p0 is the name of the procedure and pi, i = 1, . . . , n, is either an atomic
action (operation), a get-answer action, a test action (denoted by the symbol
?), or a procedure call. Procedures can be recursive and are executed in a
goal-directed way, similarly to standard logic programs, and their definitions
can be non-deterministic as in Prolog. As an instance, here we report the
booking procedure:
booking(Seller, Date, Start, Dest) is
search flightÀ(Seller, Date, Start, Dest), get answer(Seller),</p>
      <p>Bof f er(not avail)?
booking(Seller, Date, Start, Dest) is
search flightÀ(Seller, Date, Start, Dest), get answer(Seller),</p>
      <p>Bof f er(f light)?, eval offer, finalize(Seller)
It is defined by a set of two clauses, the former capturing the case when
the ticket is not available, the latter the normal situation when an offer
for a ticket is actually returned. In this case, the offer is evaluated and the
purchase is finalized by invoking another procedure.</p>
      <p>A choreography is made of a set of interacting roles, a role being a subjective
view of the interaction that is encoded. When a service plays a role in a
choreography, its policy will contain some operations which are not of the service itself
but belong to some other role of the choreography, with which it interacts. In
other words, O can be partitioned in two sets: a set of bound operations and a
set of unbound operations, that must be supplied by some counterpart(s).
Until the counterpart(s) service is (are) not defined, such operations will be those
specified in the choreography. We assume that they are represented in a way
that is homogeneous with the representation of operations, i.e. by means of
preconditions and effects. The binding will be possible only when the partner in the
interaction will be found. The fact that the former service is taking a given role
in the choreography is due, in our proposal, to the fact that it knows that a
certain goal condition will be true after the execution of the role. When a possible
partner is identified for the latter role, after the binding has taken place, it is
necessary to check if the goal condition is preserved. The reasons for which this
could not happen are explained in the following section; hereafter, we formalize
the notion of substitution that we interpret as the binding.</p>
      <p>Let Sd = hO, G, Pi a service description, and let Ou be a subset of O,
containing unbound operations that are to be supplied by a same counterpart Si.
Let OSi be the set of operations in Si that we want Sd to use, binding them to
Ou. We represent the binding by the substitution θ = [OSi /Ou] applied to Sd,
i.e.: Sdθ = hOθ, Gθ, Pθi, where every element of Ou is substituted by/bound to
an element of OSi . Notice that not all elements of OSi are, instead, necessarily
bound. An example is reported in Example 3.</p>
      <p>
        Example 1. Let us introduce, as an example, a simple choreography (see
Figure 1) that rules a flight reservation protocol, inspired to [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], with two roles: a
Buyer and a Seller. The buyer sends a request to search for flights, specifying
the departure location, the destination, and date. Depending on the seat
availability, the seller can either refuse the request, or send the information regarding
a specific flight. The buyer checks the offer, then, it either refuses (n ack) or
accepts it (ack). All the names on the arrows, e.g. searchFlight and offer, are
specifications of the operations that the players must provide and perform.
      </p>
      <p>Let us consider a service b1 that is conformant to the role Buyer. Following
the proposed notation, we describe it as hO, G, Pi, where P = {booking, finalize},
O = {search flightÀu, not available¿u, eval offer, offer¿u, ackÀu, n ackÀu},
G = {get answer}. Notice that all the operations but eval offer are unbound and
depend on the service that will actually play the other role. Instead, eval offer
is an internal action of the buyer, that is used to decide whether accepting or
refusing an offer. The procedures in P are described by the following clauses:
booking(Seller, Date, Start, Dest) is
search flightÀu(Seller, Date, Start, Dest), get answer(Seller),</p>
      <p>Bof f er(not avail)?
booking(Seller, Date, Start, Dest) is
search flightÀu(Seller, Date, Start, Dest), get answer(Seller),</p>
      <p>Bof f er(f light)?, eval offer, finalize(Seller)
finalize(Seller) is</p>
      <p>Beval rst(business)?, ackÀu(Seller)
finalize(Seller) is</p>
      <p>Beval rst(no business)?, n ackÀu(Seller)
get answer(Seller) receives [not available¿u(Seller) or offer¿u(Seller)]
The only get message action in G is described by:
Finally, the operations in O are described as:
eval offer causes {Beval rst(Y )}
eval offer possible if {Bof f er(f light)}
search flightÀu(Seller, Date, Start, Dest)</p>
      <p>causes {Bwill get of f er}
search flightÀu(Seller, Date, Start, Dest)</p>
      <p>possible if {Bstart, Bdest, Bdate}
not available¿u(Seller) causes {Bof f er(not available)}
not available¿u(Seller) possible if {}
offer¿u(Seller) causes {Bof f er(f light)}
offer¿u(Seller) possible if {}
ackÀu(Seller) causes {Bbooked(f light)}
ackÀu(Seller) possible if {}
n ackÀu(Seller) causes {B¬booked(f light)}
n ackÀu(Seller) possible if {}
where X ranges on the set {not available, f light} and Y ranges on the set
{business, no business}. All the above definitions, but the one of eval offer, are
supplied by the choreography. ¤
In the outlined framework, it is possible to reason about goals by means of
queries of the form:</p>
      <p>Fs after p
where Fs is the goal (represented as a conjunction of fluents), that we wish to
hold after the execution of a policy p. Checking if a formula of this kind holds
corresponds to answering the query: “Is it possible to execute p in such a way
that the condition Fs is true in the final state?”. When the answer is positive, the
reasoning process returns a sequence of atomic actions that allows the
achievement of the desired condition. This sequence corresponds to an execution trace
of the procedure and can be seen as a plan to bring about the goal Fs. Such a
plan can be conditional because whenever a get-answer action is involved, none
of the possible answers from the interlocutor can be excluded. In other words,
the trace will contain a different execution branch for every option.</p>
      <p>This form of reasoning is known as temporal projection. Temporal projection
fits our needs because, as mentioned in the introduction, in order to perform the
selection we need a mechanism that verifies if a goal condition holds after the
interaction with the service has taken place. Fs is the set of facts that we would
like to hold “after” p.</p>
      <p>Let Sd = hO, G, Pi be a service description. The application of temporal
projection to P returns, if any, an execution trace, that makes a goal of interest
become true. Let us, then, consider a procedure p belonging to P, and denote
by G the query Fs after p. Given a state S0, containing all the fluents that we
know as being true in the beginning, we denote the fact that G is successful in
Sd by:</p>
      <p>(hO, G, Pi, S0) ` G
The execution of the above query returns as a side-effect an execution trace σ
of p. The execution trace σ can either be linear, i.e. a terminating sequence
a1, . . . , an of atomic actions, or it can contain branches, that are due, as we have
mentioned, to the presence of get-message actions.</p>
      <p>Example 2 (Flight-purchase, second part). Let us suppose that the initial state
of the service b1 is S0 = {Bdate, Bstart, Bdest, Bsmoking f light}, (all the
other fluents truth value is “unknown”). This means that b1 assumes a date,
a departure location, an arrival location and that on the flight it is allowed to
smoke. The goal of b1 is that the following condition holds:
G = {Bbooked(f light), Bsmoking f light} after booking(seller, date, start, dest)
Intuitively, the buyer expects that, after the interaction, it will have a reservation
on a smoking flight.</p>
      <p>By reasoning on its policy and by using the definitions of the unbound
operations that are given by the choreography, b1 can identify an execution trace,
that leads to a state where G holds:
σ = search flightÀu(seller, date, start, dest); offer¿u(seller);</p>
      <p>eval offer; ackÀu(seller)
This is possible because in a declarative representation specifications are
executable. Moreover notice that this execution does not influence the belief about
the smoking flight, which persists from the initial through the final state and is
not contradicted. ¤
3</p>
    </sec>
    <sec id="sec-3">
      <title>Goal-preserving match</title>
      <p>When the matching process is applied for selecting a service that should play a
role in a (partially instantiated) choreography, the desire is that the substitution
(of the service operations to the specifications contained in the choreography)
preserves the properties of interest. Let us formalize this notion.</p>
      <p>Definition 1 (Conservative substitution). Let us consider a service Si =
hO, G, Pi which plays a role Ri in a given choreography, and a query G such
that, given an initial state S0,
Consider a substitution θ = [OSj /Ouσ(Rj)], where Ou(Rj) = {ou ∈ O | o occurs in σ}
σ
is the set of all unbound operations that refer to another role Rj , j 6= i, of the
same choreography, that are used in the execution trace σ. θ is conservative when
the following holds:</p>
      <p>(hOθ, Gθ, Pθi, S0) ` G w.a. σθ</p>
      <p>
        In the above definition, θ can be any kind of association between the
operations of a service with the operations described in a choreography. In practice is
the result of a matching process. In the literature it is possible to find many match
algorithms, many of them (in the case of semantic web services) are grounded
into the work by Zaremski and Wing [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], mentioned in the introduction.
      </p>
      <p>Zaremski and Wing propose a formal specification to describe the
behavior of software components, and to determine if two components match. Each
software component has precondition Precs(s) and postcondition Effs(s). Their
specifications are matched against a requirement, coherently specified as
having precondition Precs(r) and postcondition Effs(r). Five kinds of relaxed match
between r and s are defined, that we rephrase hereafter, to adapt them to our
framework:
– EM (Exact Pre/Post Match): Precs(r) = Precs(s) ∧ Effs(r) = Effs(s)
– PIM (Plugin Match): Precs(r) ⊇ Precs(s) ∧ Effs(s) ⊇ Effs(r)
– POM (Plugin Post Match): Effs(s) ⊇ Effs(r)
– GPIM (Guarded Plugin Match): Precs(r) ⊇ Precs(s) ∧ ((Precs(s) ∪ Effs(s)) ⊇</p>
      <p>Effs(r))
– GPOM (Guarded Post Match): ((Precs(s) ∪ Effs(s)) ⊇ Effs(r))</p>
      <p>
        Exact pre/post match states the equivalence of r and s. Plugin match is weaker:
s must only be behaviorally equivalent to r when plugged-in to replace r. Plugin
post match relaxes the former: only the postcondition is considered. Guarded
matches focus on guaranteeing that the desired postcondition holds when the
precondition of s holds, not necessarily in general. The different matches can
be organized according to a lattice [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], that we have reported in Fig. 2. For
short, we will respectively denote by θEM , θP IM , θP OM , θGP IM , θGP OM , the
substitutions obtained by applying the five degrees of match.
      </p>
      <p>It is immediate to see that any substitution, obtained by applying the exact
pre/post match, satisfies Definition 1. However, this is not true for the other
kinds of match. Let us show this with the help of a simple example.
Example 3. The buyer service b1 (see previous examples) is looking for another
service, which can play the role of the Seller, to reserve a flight seat. This service
must provide a set of operations that will substitute the unbound operations of
the buyer role. Let us choose the plugin match as matching rule. Let us consider
the candidate s1, a service that is conformant to the protocol w.r.t. the role
Seller. The set of operations of the seller represented in the knowledge base of
the buyer includes the following definition for operation search flightÀ:
search flightÀ(Seller, Date, Start, Dest)</p>
      <p>possible if {Bstart, Bdest, Bdate}
search flightÀ(Seller, Date, Start, Dest)</p>
      <p>causes {Bwill get of f er, B¬smoking f light}
while all the other operations are defined exactly as in Example 1.</p>
      <p>By applying the plugin match, we obtain the substitution θP IM , which
includes, among the others, also [search flightÀ/search flightÀu] 1. By applying the
substitution θP IM we obtain the set of policies PθP IM :
booking(Seller, Date, Start, Dest) is
search flightÀ(Seller, Date, Start, Dest), get answer(Seller),</p>
      <p>Bof f er(not avail)?
booking(Seller, Date, Start, Dest) is
search flightÀ(Seller, Date, Start, Dest), get answer(Seller),</p>
      <p>Bof f er(f light)?; eval offer; finalize(Seller)
finalize(Seller) is</p>
      <p>Beval rst(business)?; ackÀ(Seller)
finalize(Seller) is</p>
      <p>Beval rst(no business)?; n ackÀ(Seller)
By using this policy, the query (hOθP IM , GθP IM , C, PθP IM i, S0) ` G fails: in
fact, the additional effect B¬smoking f light of the service search flightÀ
prevents the buyer to achieve a part of its goal, i.e. to book a smoking flight. ¤
Theorem 1. The class of PIM, POM, GPIM and GPOM substitutions are not
conservative.</p>
      <p>Proof. The proof is given by the counterexample in Example 3. In fact, θ, besides
being a PIM substitution, is also an instance of all the other kinds of substitution
that we have listed, i.e. it is also a POM, a GPIM, and a GPOM substitution.
In order for a substitution to be conservative, it must take into account also the
overall structure, encoded by the choreography. The locality of the matches used
in the matchmaking phase, indeed, seriously limits the possibility of re-using
services by selecting and composing them in an automatic way.</p>
      <p>In the remainder of this section, we focus on the plug-in match. The plugin
match is one of the most used matches and it immediately follows the exact
match in the lattice (it is the strongest of the flexible matches). We show how
to enrich it so to allow the construction of conservative substitutions. To this
aim, we take into account the dependencies between actions, which produce as
effects fluents, that are used as preconditions by subsequent action. Intuitively,
the idea is to verify that the “causal chain” which allows the execution of the
sequence of actions, is not broken by the differences between capabilities/services
and requirements, as instead happens in the example. The obvious hypothesis is
that we have a choreography and that we know that it allows to achieve the goal
of interest, i.e. that there is an execution σ of the role specification, which allows
the achievement of the goal. We will use this trace for defining the additional
properties for the match.
1 For the sake of brevity, we omit to specify the substitutions when the operations
exactly match the specifications.</p>
      <p>Let us start by introducing the notions that define dependencies between
actions and dependency sets for fluents. Consider a service description S = hO, G,
Pi, and suppose that, given the initial state S0, the goal G = Fs after p
succeeds, thus obtaining as answer the successful sequence of actions σ = a1; a2;
. . . ; an, which is an execution trace of p.2 We denote by σ the sequence of actions
a0; a1; a2; . . . ; an; an+1, where a0 and an+1 are two fictitious actions that will be
used respectively to represent the initial state S0 and the set of fluents Fs, which
must hold after σ. That is, we assume a0 has no precondition and Effs(a0) = S0,
and that an+1 has no effect but Precs(an+1) = Fs.</p>
      <p>Consider two indexes i and j, such that j &lt; i, i, j = 0, . . . , n + 1. We say
that in σ the action ai depends on aj for the fluent Bl, written aj ÃhBl,σi ai,
iff Bl ∈ Effs(aj), Bl ∈ Precs(ai), and there is not a k, j &lt; k &lt; i, such that
Bl ∈ Effs(ak). Given a fluent Bl and a sequence of actions σ, we can, therefore,
define the dependency set of Bl as Deps(Bl, σ) = {(j, i) | aj ÃhBl,σi ai}.</p>
      <p>Let [s/ou] be a specific substitution of a service operation s to an unbound
operation ou, that is contained in θP IM , we say that a fluent Bl ∈ Effs(s) −
Effs(ou) (i.e. an additional effect of s w.r.t. the effects of ou) is an uninfluential
fluent w.r.t. the sequence σθP IM iff for all pairs (j, i) ∈ Deps(B¬l, σ), identifying
by k the position of ou in σ, we have that k &lt; j or i ≤ k, Intuitively, this means
that the fluent will not break any dependency between the actions which involve
the inverse fluent because either it will be overwritten or it will appear after its
inverse has already been used. Note that σ and σθP IM have the same length
and are identical as sequences of actions but for the fact that in the latter the
selected service operations substitute unbound operations. For this reason, we
can reduce to reasoning on σ for what concerns the action positions.</p>
      <p>A substitution θP IM is called uninfluential iff for any substitution [s/ou] in
θP IM , all beliefs in Effs(s) − Effs(ou) are uninfluential fluents w.r.t. σ. Now we
are in position to prove that a substitution which exploits the plugin match and
which is also uninfluential, is conservative.</p>
      <p>Theorem 2. Let us consider a service Si = hO, G, Pi which plays a role Ri in
a given choreography, and a query G such that, given an initial state S0,
(hO, G, Pi, S0) ` G w.a. σ
Consider an uninfluential substitution θP IM = [OSj /Ouσ(Rj)], where Ou(Rj) =
σ
{ou ∈ O | o occurs in σ} is the set of all unbound operations that refer to another
role Rj, j 6= i, of the same choreography, that are used in the execution trace σ.
Then, the following holds:</p>
      <p>
        (hOθP IM , GθP IM , PθP IM i, S0) ` G w.a. σθP IM
Proof. The proof is by absurd and it uses the proof theory introduced in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Let
us assume that (hO, G, Pi, S0) ` G w.a. σ but (hOθP IM , GθP IM , PθP IM i, S0) 6`
2 In the following we focus on linear plans. Conditional plans can be tackled by
considering each path separately.
      </p>
      <p>G w.a. σθP IM . Since, by hypothesis, for any substitution [o/ou] in θP IM , Effs(o) ⊆
Effs(ou) holds, there exists a fluent F such that a0, a1, . . . , ai−1 ` F but (a0, a1, . . . ,
ai−1)θP IM 6` F , where σ = a0, a1, . . . , ai−1, ai, . . . , an and F ∈ Precs(ai). Now,
since a0, a1, . . . , ai−1 ` F , there exists j ≤ i − 1, such that a0, a1, . . . , aj ` F
and F ∈ Effs(aj) but (a0, a1, . . . , aj)θP IM 6` F , that is F 6∈ Effs(ajθP IM ). This
is absurd due to the hypothesis that θP IM is an uninfluential substitution. ¤
Example 4. Let us now consider the goal and the service description specified
in Example 1, and let us also consider another service s2, that is conformant to
the role Seller. Let s2 be equivalent to the role specification but for the service
that implements search flightÀu, which is specified as:
search flightÀ(Seller, Date, Start, Dest)</p>
      <p>possible if {Bstart, Bdest, Bdate}
search flightÀ(Seller, Date, Start, Dest)</p>
      <p>causes {Bwill get of f er, Bveg meals}
Differently than the one of s1, this service does not compromise the achievement
of the goal, even though it provides some additional information (Bveg meals).
This information is not used in the interaction that we are considering but
we must take into account the fact that s2 might be conformant also to other
protocols, in which this information is relevant. It is realistic that the service
will not be re-implemented each time if not strictly necessary. ¤</p>
      <p>The verification that a substitution is uninfluential involves the derivation σ,
and it is based on checking whether the chains of dependencies between actions
for the various fluents are not interrupted by some opposite fluent. Obviously,
if the domain is such that no fluent, once asserted, can be negated, any θP IM
will be conservative. This can be verified statically on the choreography and the
set of unbound operations, by checking that every fluent (that appears as effect
of some action) is always positive or negative, including the initial state and
the goal in the verification. Indeed, the application domains in which actions
produce knowledge are of this kind.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and related works</title>
      <p>
        In this work we have studied the relation between the matchmaking rules and
the achievement of a goal in a choreography, within the process of selecting a
service for playing a role. We have shown that, when the adoption of a role is due
to the desire of reaching a goal, the matches performed on single operations (but
the exact match) are not adequate and it is necessary to introduce a verification
that takes into account the context given by the choreography. Afterwards, we
have presented an extension of the plugin match that takes into account also the
choreography. To the best of our knowledge, the selection of a service based on a
kind of match that takes into account context of application of the sought services
(i.e. the choreography in which it will be immersed) has not been yet tackled in
the literature, with the only exception of the work by Biswas [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Biswas proposes
to enrich service descriptions with constraints, i.e. conditions that hold during
the execution of the service. Given a specification of a desired composed service,
in BPEL or in OWL-S, a discovery process is enacted to identify the services
to assemble. The constraints associated to them are used to build the overall
constraints of the composition, which is then checked against the constraints
given by the user, to see if the composition satisfies the user’s needs. This is
a bottom-up approach, aimed at verifying some properties of the composition
which are not captured by the IOPE analysis.
      </p>
      <p>
        The literature related to matchmaking is wide and it is really difficult to be
exhaustive. The matches proposed in [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] have inspired most of the semantic
matches for web service discovery. Amongst them, Paolucci et al. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] propose
four degrees of match (exact, plugin, subsumes, and fail) that are computed on
the ontological relations of the outputs of an advertisement for a service and
a query. This approach tackles DAML-S representations, in which services are
described by means of inputs and outputs. This approach is refined in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], a work
that describes a service matchmaking prototype, which uses a DAML-S based
ontology and a Description Logic reasoner to compare ontology-based service
descriptions, given in terms of input and output parameters. The matchmaking
process, like in [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], produces a discrete scale of degrees of match (Exact, PlugIn,
Subsume, Intersection, Disjoint).
      </p>
      <p>
        WSMO (Web Service Modeling Ontology) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is an organizational framework
for semantic web services. As such, it does not suggest a specific matching rule,
which is up to the specific implementations. However, the authors propose in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
an approach that is based on [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] and on [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. More recently, a WSMO
matchmaker has been proposed in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], which combines several aspects: type matching,
relation matching, constraint matching, parameter matching, intentional
matching. Last but not least, in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] a multi-level evaluation model is proposed, for
deciding whether two services are composable. This is done through four levels
of control (quality, dynamic semantics, static semantics, and syntax). Dynamic
semantics is the name given to the matches of [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
      </p>
      <p>
        The idea of synthesizing a policy from an abstract specification is also stated
in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], where it is observed that services are often conceived so as to be delivered
individually, while there is a growing need of reusing this software, either by
composing services or by tailoring a composition to some specific client. This
direction has been suggested in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], where a UML specification of a business
process was used to abstract the description of a composition away from the
specification of the composed services. This abstract specification defines a model,
used for driving the retrieval and the composition task.
      </p>
      <p>
        Works like [
        <xref ref-type="bibr" rid="ref22 ref7">22, 7</xref>
        ] propose approaches for goal-driven service composition
based on planning. However, the task is accomplished without reference to any
choreography. In particular, in [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] the composition and the semantic reasoning
phases (carried on on inputs and outputs) are separated and the latter is
performed on a local basis only. In [
        <xref ref-type="bibr" rid="ref12 ref17">12, 17</xref>
        ] web services are composed by composing
their interaction protocols in a social framework, by means of a temporal logic.
      </p>
      <p>
        The next step of this research will be to test the presented method, by
implementing it in a real system and applying it to real cases. In particular, for
what concerns the representation we mean to explore the use of SAWSDL [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ],
an extension of WSDL that enables the use of semantic annotations. Moreover,
so far we have not yet tackled the integration of ontological reasoning in our
work. This is surely an interesting extension that we will face soon; actually,
many proposals for semantic matchmaking base upon the same relaxed match
that we have used, and we expect similar results.
      </p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgment</title>
      <p>This research has partially been funded by the European Commission and by
the Swiss Federal Office for Education and Science within the 6th FP project
REWERSE number 506779 (cf. http://rewerse.net), and by MIUR PRIN 2005
“Specification and verification of agent interaction protocols” national project.
Claudio Schifanella is partially supported by the fellowship program “Fondazione
CRT - Progetto Lagrange” (cf. http://www.progettolagrange.it).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>G.</given-names>
            <surname>Alonso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Casati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kuno</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Machiraju</surname>
          </string-name>
          . Web Services. Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Baldoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Baroglio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Martelli</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Patti</surname>
          </string-name>
          .
          <article-title>A priori conformance verification for guaranteeing interoperability in open environments</article-title>
          .
          <source>In Proc. of ICSOC</source>
          <year>2006</year>
          , volume
          <volume>4294</volume>
          <source>of LNCS</source>
          , pages
          <fpage>339</fpage>
          -
          <lpage>351</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>M.</given-names>
            <surname>Baldoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Baroglio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Martelli</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Patti</surname>
          </string-name>
          .
          <article-title>Reasoning about interaction protocols for customizing web service selection and composition</article-title>
          .
          <source>J. of Logic and Algebraic Programming</source>
          ,
          <volume>70</volume>
          (
          <issue>1</issue>
          ):
          <fpage>53</fpage>
          -
          <lpage>73</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M.</given-names>
            <surname>Baldoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Giordano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Martelli</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Patti</surname>
          </string-name>
          .
          <article-title>Programming Rational Agents in a Modal Action Logic</article-title>
          .
          <source>Annals of Mathematics and Artificial Intelligence</source>
          ,
          <source>Special issue on Logic-Based Agent Implementation</source>
          ,
          <volume>41</volume>
          (
          <issue>2-4</issue>
          ):
          <fpage>207</fpage>
          -
          <lpage>257</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D.</given-names>
            <surname>Berardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          , G. De Giacomo,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mecella</surname>
          </string-name>
          .
          <article-title>Synthesis of Underspecified Composite e-Service bases on Atomated Reasoning</article-title>
          .
          <source>In Proc. of ICSOC04</source>
          , pages
          <fpage>105</fpage>
          -
          <lpage>114</lpage>
          . ACM,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>D.</given-names>
            <surname>Biswas</surname>
          </string-name>
          .
          <article-title>Web services discovery and constraints composition</article-title>
          .
          <source>In Proc. of the 1st Int. Conf. on Web Reasoning and Rule Systems, RR</source>
          <year>2007</year>
          , volume
          <volume>4524</volume>
          <source>of LNCS</source>
          , pages
          <fpage>73</fpage>
          -
          <lpage>87</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>J.</given-names>
            <surname>Bryson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Martin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>McIlraith</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L. A.</given-names>
            <surname>Stein</surname>
          </string-name>
          .
          <article-title>Agent-based composite services in DAML-S: The behavior-oriented design of an intelligent semantic web. In Agent-Based Composite Services in DAML-S: The Behavior-Oriented Design of an Intelligent Semantic Web</article-title>
          ,
          <source>Web Intelligence</source>
          . Springer-Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>N.</given-names>
            <surname>Busi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Gorrieri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Guidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lucchi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Zavattaro</surname>
          </string-name>
          .
          <article-title>Choreography and orchestration: a synergic approach for system design</article-title>
          .
          <source>In Proc. of 4th International Conference on Service Oriented Computing (ICSOC</source>
          <year>2005</year>
          ),
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>F.</given-names>
            <surname>Casati</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Chien</surname>
          </string-name>
          .
          <article-title>Dynamic and adaptive composition of e-services</article-title>
          .
          <source>Information Systems</source>
          ,
          <volume>26</volume>
          :
          <fpage>143</fpage>
          -
          <lpage>163</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>D.</given-names>
            <surname>Fensel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Lausen</surname>
          </string-name>
          , J. de Bruijn,
          <string-name>
            <given-names>M.</given-names>
            <surname>Stollberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Roman</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Polleres</surname>
          </string-name>
          .
          <source>Enabling Semantic Web Services : The Web Service Modeling Ontology</source>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. H.
          <string-name>
            <surname>Foster</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Uchitel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Magee</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Kramer</surname>
          </string-name>
          .
          <article-title>Model-based analysis of obligations in web service choreography</article-title>
          .
          <source>In Proc. of IEEE International Conference on Internet&amp;Web Applications and Services</source>
          <year>2006</year>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>L.</given-names>
            <surname>Giordano</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Martelli</surname>
          </string-name>
          .
          <article-title>Web Service Composition in a Temporal Action Logic</article-title>
          .
          <source>In Proc. of 4th Int. Work. on AI for Service Composition</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Huget</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.L.</given-names>
            <surname>Koning</surname>
          </string-name>
          .
          <article-title>Interaction Protocol Engineering</article-title>
          . In H.P. Huget, editor,
          <source>Communication in Multiagent Systems</source>
          , volume
          <volume>2650</volume>
          <source>of LNAI</source>
          , pages
          <fpage>179</fpage>
          -
          <lpage>193</lpage>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>F.</given-names>
            <surname>Kaufer</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Klusch</surname>
          </string-name>
          .
          <article-title>Wsmo-mx: A logic programming based hybrid service matchmaker</article-title>
          .
          <source>In ECOWS '06: Proc. of the European Conference on Web Services</source>
          , pages
          <fpage>161</fpage>
          -
          <lpage>170</lpage>
          , Washington, DC, USA,
          <year>2006</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. U. Keller, R. Laraand A.
          <string-name>
            <surname>Polleres</surname>
            , I. Toma,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Kifer</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Fensel</surname>
          </string-name>
          .
          <source>D5.1 v0</source>
          .
          <article-title>1 WSMO web service discovery</article-title>
          .
          <source>Technical report, WSML deliverable</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>L.</given-names>
            <surname>Li</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Horrocks.</surname>
          </string-name>
          <article-title>A software framework for matchmaking based on semantic technology</article-title>
          .
          <source>In Proc. of WWW Conference</source>
          . ACM Press,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>A.</given-names>
            <surname>Martelli</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Giordano</surname>
          </string-name>
          .
          <article-title>Reasoning About Web Services in a Temporal Action Logic</article-title>
          .
          <source>In Reasoning, Action and Interaction in AI Theories and System, number 4155 in LNAI</source>
          , pages
          <fpage>229</fpage>
          -
          <lpage>246</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>B.</given-names>
            <surname>Medjahed</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Bouguettaya</surname>
          </string-name>
          .
          <article-title>A multilevel composability model for semantic web services</article-title>
          .
          <source>IEEE Trans. on Knowledge and Data Engineering</source>
          ,
          <volume>17</volume>
          (
          <issue>7</issue>
          ):
          <fpage>954</fpage>
          -
          <lpage>968</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. B. O¨rrens, J.
          <string-name>
            <surname>Yang</surname>
            , and
            <given-names>M.P.</given-names>
          </string-name>
          <string-name>
            <surname>Papazoglou</surname>
          </string-name>
          .
          <article-title>Model driven service composition</article-title>
          .
          <source>In ICSOC</source>
          <year>2003</year>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>OWL-S Coalition</surname>
          </string-name>
          . http://www.daml.org/services/owl-s/.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>M. Paolucci</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Kawamura</surname>
            ,
            <given-names>T. R.</given-names>
          </string-name>
          <string-name>
            <surname>Payne</surname>
            , and
            <given-names>K. P.</given-names>
          </string-name>
          <string-name>
            <surname>Sycara</surname>
          </string-name>
          .
          <article-title>Semantic matching of web services capabilities</article-title>
          .
          <source>In Proc. of ISWC'02</source>
          , pages
          <fpage>333</fpage>
          -
          <lpage>347</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>M. Pistore</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Spalazzi</surname>
            , and
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Traverso</surname>
          </string-name>
          .
          <article-title>A minimalist approach to semantic annotations for web processes compositions</article-title>
          .
          <source>In ESWC</source>
          , pages
          <fpage>620</fpage>
          -
          <lpage>634</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Rajamani</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Rehof</surname>
          </string-name>
          .
          <article-title>Conformance checking for models of asynchronous message passing software</article-title>
          .
          <source>In Proc. of CAV</source>
          <year>2002</year>
          , volume
          <volume>2404</volume>
          <source>of LNCS</source>
          , pages
          <fpage>166</fpage>
          -
          <lpage>179</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. UDDI,
          <string-name>
            <surname>Universal</surname>
            <given-names>Description</given-names>
          </string-name>
          , Discovery and Integration. http://www.uddi.org/.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25. W3C.
          <article-title>Semantic Annotations for</article-title>
          WSDL Working Group. http://www.w3.org/2002/ws/sawsdl/.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. WS-CDL. http://www.w3.org/tr/ws-cdl-
          <volume>10</volume>
          /.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>27. WSCI, Web Service Choreography Interface. http://www.w3.org/tr/wsci.</mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28. WSDL Message Exchange Patterns. http://www.w3.org/tr/2004/wd-wsdl20
          <string-name>
            <surname>-</surname>
          </string-name>
          patterns-20040326/.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. WSDL,
          <string-name>
            <surname>Web Service</surname>
          </string-name>
          Description Language. http://www.w3.org/tr/wsdl.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>A. Moormann Zaremski</surname>
            and
            <given-names>J. M.</given-names>
          </string-name>
          <string-name>
            <surname>Wing</surname>
          </string-name>
          .
          <article-title>Specification matching of software components</article-title>
          .
          <source>ACM Trans. on Software Engineering and Methodology</source>
          ,
          <volume>6</volume>
          (
          <issue>4</issue>
          ):
          <fpage>333</fpage>
          -
          <lpage>369</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>