<!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>Policy-based reasoning for smart web service interaction</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marco Alberti</string-name>
          <email>marco.alberti@unife.it</email>
          <email>marco.gavanelli@unife.it</email>
          <email>{marco.alberti|marco.gavanelli|evelina.lamma}@unife.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Federico Chesani</string-name>
          <email>fchesani@deis.unibo.it</email>
          <email>{fchesani|pmello|mmontali|ptorroni}@deis.unibo.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Marco Gavanelli</institution>
          ,
          <addr-line>Evelina Lamma, ENDIF, Universita` di Ferrara</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Paola Mello</institution>
          ,
          <addr-line>Marco Montali, Paolo Torroni, DEIS, Universita` di Bologna</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>- We present a vision of smart, goal-oriented web services that reason about other services' policies and evaluate the possibility of future interactions. We assume web services whose interface behaviour is specified in terms of reactive rules. Such rules can be made public, in order for other web services to answer the following question: “is it possible to inter-operate with a given web service and achieve a given goal?” In this article we focus on the underlying reasoning process, and we propose a declarative and operational abductive logic programming-based framework, called WAVe.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>I. INTRODUCTION</p>
      <p>
        Service Oriented Computing (SOC) is rapidly emerging as
a new programming paradigm, propelled by the wide
availability of network infrastructures, such as the Internet, and by
the success of its predecessor, Object Oriented programming
paradigm. Web service-based technologies are an
implementation of SOC, aimed at overcoming the intrinsic difficulties of
integrating different platforms, operating systems, languages,
etc., into new applications. It is then in the spirit of SOC to
take off-the-shelf solutions, like web services, and compose
them into new applications. Service composition is very
attractive for its support to rapid prototyping and possibility
to create complex applications from simple elements. It is
the philosophy followed, e.g., by BPEL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]: composing new
applications through existing web services.
      </p>
      <p>If we adopt the SOC programming paradigm, how to exploit
the potential of a growing base of web services becomes
one of our strategic issue. In a domain in which being more
competitive means knowing more and using all available
information at best, how shall we cope with the proliferation
of new services? How shall we decide to use a web service
rather than another one? when new ones become available,
shall we go for them? are there new opportunities that were
not there before? It is a necessary, never-ending, heavy and
thus potentially very costly decision process, but it could also
be very rewarding, if we had the proper tools.</p>
      <p>A partial answer to these questions is given by service
discovery. As new services become available, they are published,
for instance by registration on some yellow-pages server;
existing services can then become aware of the new ones
and exploit them. This solves part of the problem: as through
discovery we only know that there are some services, which
possibly follow some standards, but understanding whether
interacting with them will be profitable or detrimental, is far
from being a trivial question. For one, it is not possible to think
to try and invoke all newly discovered services and analyze the
results. Beside being highly error-prone, such a method would
require expensive rollbacks that are often unaffordable at
runtime. Thus, alternative approaches have to be developed. This
is what we intend to address in this article.</p>
      <p>The focus of this article is the following problem: how
to dynamically understand if two web services can
interoperate, without them having a-priori knowledge of each
other’s capabilities, but by reasoning about policies exchanged
at run-time.</p>
      <p>We present a vision of smart, goal-oriented web services
that reason about other services’ specifications, with the aim to
separate out those that can lead to a fruitful interaction, without
resorting to trial and error. We envisage a two-phase discovery
activity on the side of web services. First, web services collect
information about other web services, and try and understand
by reasoning which ones can lead to a fruitful interaction.
This activity is carried out off-line, beforehand. Then they use
the available information to interact with each other. It is the
same philosophy of search engines: before, collect information
through web spiders, then use it when requested by the user.</p>
      <p>In this article we focus on the reasoning involved in the
offline phase, assuming that a new web service has been found,
and we must decide about the possibility to interact with it.
We assume that each web service publishes, alongside with its
WSDL, its interface behaviour specifications. By reasoning on
the information available about other web services’ interface
behaviour, each web service can verify which goals can be
reached by interaction.</p>
      <p>To achieve our vision, we propose a proof theoretic
approach, based on computational logic – in fact, on abductive
logic programming. In particular, we formalise policies for
web services in a declarative language which is a modification
of the SCIFF language originally defined in the context of the
EU IST-2001-32530 project, to specify and verify social-level
agent interaction.</p>
      <p>In this new language, policies can be defined by way</p>
      <p>WAVe
Gws' KBws' ICws'</p>
      <p>RIF
decoder/encoder</p>
      <p>Reasoning
Knowledge</p>
      <p>Rules
Interchange</p>
      <p>Format
of social integrity constraints (ICs): a sort of reactive rules
used to generate and reason about expectations about possible
evolutions of a given interaction setting.</p>
      <p>
        As claimed in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], a rule-based approach to reactivity on
the Web provides the following benefits over the conventional
approach:
• Rules are easy to understand for humans. Requirements
specifications often already comes in the for of rules
expressed in a natural or formal language;
• Rule-based specifications are flexible and easy to adapt;
• Rules are well-suited for processing and analyzing by
machines (verification, transformation);
• Rules can be managed in a single knowledge base or
in several knowledge bases possibly distributed over the
Web.
      </p>
      <p>
        Moreover, we believe that, as advocated by Alferes et al.
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], an approach based on logic programming allows to
express knowledge in form of rules, and to make inference
with those rules. Like the authors, we follow Tim
BernersLee et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] in considering logic a natural conceptual and
computational tool for the Semantic Web (“Adding logic to
the Web - the means to use rules to make inferences, choose
courses of action and answer questions - is the task before the
Semantic Web community at the moment”)
      </p>
      <p>Based on the SCIFF framework we propose a new
declarative semantics and a new proof-procedure that combines
forward, reactive reasoning with backward, goal-oriented
reasoning, and is tailored to the discovery activity’s off-line phase’s
verification problem. We have called this new framework
WAVe(Web-service Abductive Verification).</p>
      <p>In order to support the exchange of rules between web
services in a standard format, we also propose a RuleML
encoding for our language.</p>
      <p>We start by showing the abstract architecture of WAVe. In
Sect. III we introduce a running on-line shopping scenario.
In Sect. IV, we briefly introduce the language used in the
framework, and in Sect. V we show how the scenario can
be modeled in WAVe in terms of ICs. Sect. VI presents the
declarative and operational semantics of WAVe, and Sect. VII
proposes the application of WAVe to the verification problem
in the reference scenario. Sect. VIII discusses the encoding of
WAVe rules in RuleML. A brief discussion, also with respect
to related work, follows.</p>
    </sec>
    <sec id="sec-2">
      <title>II. THE ARCHITECTURE OF WAVe</title>
      <p>Fig. 1 depicts our general reference architecture. Arrows
indicate the flow of policies between web services. The layered
architecture of a web service, e.g. ws, has WAVe at the top of
the stack, performing reasoning based on its own knowledge
and on the policies obtained from other web services, e.g. ws0.
The functionalities of the various elements of the knowledge
will be explained in Sect. IV. For the moment, we say
that policies are identified with the ICws component. The
architecture is symmetric. We represented with thick borders
the modules involved in the operations carried out by ws,
and its output. In order for ws0 to pass ICws0 on to ws (and</p>
      <p>WAVe
Gws KBws ICws</p>
      <p>
        RIF
decoder/encoder
policies
policies
network
vice versa), a Rule Interchange Format (RIF) is adopted. One
possibility for such a RIF could be RuleML [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Finally, as
a result of the reasoning activity, ws produces an answer C
to the question: “is it possible to inter-operate with ws0 and
achieve goal Gws?”
      </p>
      <p>Fig. 1 does not show control elements, but only information
flows. We assume that suitable interaction protocols are
defined to control the flow of information (e.g. policies) between
the web services. In particular, in a more comprehensive
setting, ws and ws0 could negotiate the exchange of policies
in an incremental way, or could use the result C of this
reasoning activity to perform the second, on-line phase of
service interaction we mentioned in the introduction. All this
is outside of this picture, and of this article’s scope.</p>
      <sec id="sec-2-1">
        <title>III. THE alice &amp; eShop SCENARIO</title>
        <p>
          This scenario is inspired to the one described by the
Working Group on Rule Interchange Format [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. A similar
scenario is also in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. We consider two entities, which we
call alice and eShop.1 eShop is a web service which sells
devices. alice is another web service which instead needs
to obtain a device, and which is considering buying it from
eShop. alice and eShop describe their behaviour concerning
sales/payment/... of items through policies, specified as rules,
which they publish using some RIF.
        </p>
        <p>Before alice buys an item from eShop, alice checks
whether her policies and eShop’s policies are compatible, i.e.,
if they allow a successful transaction. During this process, it
turns out that eShop accepts credit card payments, besides
other payment methods, and that alice can only pay by credit
card; in this case, in order to proceed with the payment, she
requires evidence of the shop’s membership to some trusted
“Better Business Bureau” (BBB) association. We assume that
the shop is able and ready to provide such a piece of evidence.
We can thus define eShop’s and alice’s policies as follows:
1In this simplified scenario, we identify alice and eShop with their
representative software counterparts which will carry out transactions on their
behalf.
(shop1) if a customer wishes to buy an item, then (s)he should
pay it either by credit card, or by cash, or by cheque;
(shop2) if a customer wishes to buy an item, and (s)he has
paid it either by credit card, or by cash, or by cheque,
then eShop will deliver the item;
(shop3) if a customer wishes to receive a certificate about
eShop’s membership to the BBB, then the shop will
send it;
(alice1) if a shop requires that alice pays by credit card,
alice expects that the shop provides evidence of its
membership to the BBB;
(alice2) if a shop requires that alice pays by credit card, and
the shop has provided evidence of its membership to
the BBB, then alice will pay by credit card;</p>
        <p>In this example, we can identify two kinds of policy rules.
shop1 and alice1 express requirements, i.e., what is needed
in order to proceed with accomplishing some request. shop2,
shop3 and alice2 represent the effect of requests, i.e., they
tell what has to be expected if some conditions hold and some
request is received.</p>
        <p>Using this scenario, we want to demonstrate the possibility
of reaching an agreement through rules exchange. Besides, we
want to show how policies support backward and forward
reasoning, in the following way. Backward, pro-active reasoning
starts from goals to produce (expectations about) actions or
events that should be generated in order to achieve the goals.
Forward, reactive reasoning starts from events and is used to
generate (expectations about) actions that represent reactions
to such events.</p>
        <p>In this scenario, the goal of alice interacting with eShop is
to obtain an item from eShop. Actions are all the messages
exchanged between the two web services.</p>
        <p>The steps that we envisage are as follows:
1) alice wants to obtain a device. She knows that she can
have it if eShop delivers it to her. Thus, she sends eShop
a request, by which she wants to know eShop’s policies
regarding the delivery of that device;
2) eShop considers alice’s request, and composes a set
of rules related to alice’s request (its policies), possibly
deriving/filtering them from a larger set. In this example,
the set contains shop1, shop2, and shop3. Once such
a set is put together, eShop communicates it to alice;
3) alice reasons on (1) her goal, (2) her own policies
(alice1 and alice2), and (3) eShop’s policies. Two are
the possible outcomes:
• either alice infers that she and eShop can have
a successful transaction that satisfies each other’s
policies and that achieves her goal,
• or alice infers that there is no such a possibility.
4) possibly, at a later point, alice and eShop may engage
in a transaction which (hopefully) makes alice achieve
her goal.</p>
        <p>Points (1) through (3) represent the off-line phase of service
discovery/interaction, whereas point (4) represent the actual
transaction occurring between alice and eShop. The reasoning
involved in (3) is the subject of this article.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. THE WAVe FRAMEWORK</title>
      <p>In WAVe, the observable behaviour of the web services is
represented by events. Since we focus on (explicit) interaction
between web services, events always represent exchanged
messages.</p>
      <p>WAVe considers two types of events: those that one can
control and those that one cannot. Typically, from the standpoint
of a web service ws, an event such as a message generated
by ws himself will fall into the first category, a message
that ws is expecting from another fellow web service ws0
will fall instead into the second one. We use two different
functors to keep these two categories of messages distinct
from each other. Atoms denoted by functor H will stand for
events that a web service expects to be producing itself; atoms
denoted by functor E will stand for events that a web service
is expecting, and over which it does not have any control.
Since WAVe is about reasoning on possible future courses of
events, both kinds of events represent hypotheses that a web
service can make on possibly happening events. The notation
is: H(ws, ws0, M, T ), for messages (M ) that a web service ws
is expecting to send to ws0 at time T , and E(ws0, ws, M, T )
for messages (M ) expected by ws from ws0 for time T .</p>
      <p>
        Web service specifications in WAVe are relations among
expected events, expressed by an Abductive Logic Program
(ALP). In general, an ALP [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] is a triplet hP, A, ICi,
where P is a logic program, A is a set of predicates named
abducibles, and IC is a set of integrity constraints. Roughly
speaking, the role of P is to define predicates, the role of A
is to fill-in the parts of P which are unknown, and the role of
IC is to constrain the ways elements of A are hypothesised,
or “abduced”. Reasoning in abductive logic programming is
usually goal-directed (being G a goal), and it accounts to
finding a set of abduced hypotheses Δ built from predicates
in A such that P ∪ Δ |= G and P ∪ Δ |= IC. In the past,
a number of proof-procedures have been proposed to compute
Δ (see Kakas and Mancarella [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], Fung and Kowalski [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ],
Denecker and De Schreye [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], etc.).
      </p>
      <p>Definition 4.1 (Web service interface behaviour specification):
Given a web service ws, its web service interface behaviour
specification Pws is an ALP, represented by the triplet</p>
      <p>Pws ≡ hKBws, Ews, ICwsi
where:
• KBws is ws’s Knowledge Base,
• Ews is ws’s set of abducible predicates, and
• ICws is ws’s set of Integrity Constraints.</p>
      <p>KBws is a set of clauses which declaratively specifies pieces
of knowledge of the web service. Note that the body of KBws’s
clauses may contain E expectations about the behaviour of the
web services, as defined above. KBws’s syntax is summarised
in Eq. (1).
[ Clause ]?
Atom ← Cond
ExtLiteral [ ∧ ExtLiteral ]?
Atom | true | Expect | Constr</p>
      <p>E(Atom, Atom, Atom, Atom)</p>
      <p>Ews includes E expectations, H events, and predicates not
defined in KBws.</p>
      <p>ICws ::=</p>
      <p>IC ::=</p>
      <p>Body ::=
BodyLit ::=</p>
      <p>Head ::=
Disjunct ::=</p>
      <p>Expect ::=
Event ::=
[ IC ]?
Body → Head
(Event | Expect) [∧BodyLit]?
Event | Expect | Atom | Constr
Disjunct [ ∨ Disjunct ]? | false
(Expect | Event | Constr)
[ ∧ (Expect | Event | Constr)]?
E(Atom, Atom, Atom, Atom)</p>
      <p>H(Atom, Atom, Atom, Atom)</p>
      <p>
        Integrity Constraints (ICs) are forward rules, of the form
Body → Head (Eq. (2)). The Body of ICs is a conjunction
of literals and expected events; the Head instead is a
disjunction of conjunctions of expectations, events and literals, or
false. The syntax of ICws is a modification of the integrity
constraints in the SCIFF language [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In particular, unlike
SCIFF, WAVe treats H events as abducible predicates, and
as such it allows them to occur in the Head of integrity
constraints; however, this initial version of WAVe does not
yet accommodate negative expectations nor negation (¬). We
intend to consider these two features in future extensions of
WAVe.
      </p>
      <p>Intuitively, the operational behaviour of integrity constraints
is similar to forward rules: whenever the body becomes true,
the head is also made true.</p>
    </sec>
    <sec id="sec-4">
      <title>V. MODELING IN WAVe</title>
      <p>In this section, we demonstrate web service policy
modelling in WAVe by showing the specification of alice and
eShop. The first three rules represent eShop’s policies.</p>
      <sec id="sec-4-1">
        <title>E(eShop, alice, deliver(Item), Ts)</title>
        <p>→E(alice, eShop, pay(Item, cc), Tcc) ∧ Tcc &lt; Ts
∨E(alice, eShop, pay(Item, cash), Tca) ∧ Tca &lt; Ts
∨E(alice, eShop, pay(Item, cheque), Tch) ∧ Tch &lt; Ts
(shop1)
IC shop1 says that, if alice expects eShop to deliver an
Item, then eShop expects alice to pay by credit card, cash, or
cheque, and that payment must be made before delivery.2 In
that case, the abducibles in the head are expectations, because
they represent actions that should be performed by alice: from
eShop’s viewpoint, they can only be expected.</p>
        <p>E(eShop, alice, deliver(Item), Ts)
∧ H(alice, eShop, pay(Item, How), Tp) ∧ Tp &lt; Ts
(shop2)
∧ How::[cc, cash, cheque])
→H(eShop, alice, deliver(Item), Ts).</p>
        <p>2The alternative in the head could alternatively be expressed via
a variable with domain: E(alice, eShop, pay(Item, How), T ) ∧
How::[cc, cash, cheque] ∧ T &lt; Ts, where “::” represents a domain
constraint.
(1)
(2)</p>
        <p>IC shop2 says that, if alice expects eShop to deliver the Item,
and alice has paid for it, then eShop will actually deliver it
to alice. In that case, the abducible in the head is an event,
because it represents an action that eShop should perform,
and therefore it assumes that it will indeed happen (since it is
its own responsibility).</p>
      </sec>
      <sec id="sec-4-2">
        <title>E(eShop, alice, give guarantee, Tg)</title>
        <p>→H(eShop, alice, give guarantee, Tg).
(shop3)
IC shop3 says that if alice expects to receive a guarantee,
then eShop will send it. The following two rules represent
alice’s policies.</p>
      </sec>
      <sec id="sec-4-3">
        <title>E(alice, eShop, pay(Item, cc), Tp)</title>
        <p>(alice1)
→E(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tp.</p>
        <p>IC alice1 says that, if eShop expects alice to pay for an
Item by credit card, then alice expects that eShop will have
provided a guarantee by the time she pays.</p>
      </sec>
      <sec id="sec-4-4">
        <title>E(alice, eShop, pay(Item, cc), Tp)</title>
        <p>∧ H(eShop, alice, give guarantee, Tg) ∧ Tg &lt; T(palice2)
→H(alice, eShop, pay(Item, cc), Tp).</p>
        <p>IC alice2 says that, if eShop expects alice to pay for an
Item by credit card, and eShop has provided alice with a
guarantee, then alice will pay the Item by credit card. Finally,
the following clause is part of KBalice
have(alice, Item, T ) ←
E(eShop, alice, deliver(Item), Td) ∧ Td ≤ T.
(alice3)
Clause alice3 says that, in order for alice to have an Item at
time T , then alice expects eShop to deliver the Item by time
T .</p>
        <p>VI. DECLARATIVE AND OPERATIONAL SEMANTICS
We have assumed that all web services have their own
interface behaviour specified in the language of ICs. This
interface behaviour could be thought of as an extension of
WSDL, that could be used by other fellow web services to
reason about the specifications, or to check if inter-operability
is possible.</p>
        <p>Another approach would be to obtain web services’
interface behaviour through an appropriate request protocol,
in which ICs are (interactively) exchanged so that each
web service may disclose ad hoc, customised information on
demand.</p>
        <p>In this work, we make the simplifying assumption that all
information regarding the interface behaviour is provided at
once. The web service will then try and prove that a fruitful
interaction is possible based on what it receives.</p>
        <p>The web service initiating the interaction has a goal G,
which is a given state of affairs. A typical goal could be
to access a resource, to retrieve some information, or to
obtain a service from another web service. G will often be an
expectation (of obtaining a service, accessing a resource, or
gathering information), but in general it can be any conjunction
of expectations, CLP constraints, and any other literals, in the
syntax of ICws Head Disjuncts (Eq. 2).</p>
        <p>The verification of a web service ws about the possibility to
achieve a goal G by interacting with another fellow web
service ws0 makes use of KBws, ICws, G, and of the information
obtained about ws0’s policies, ICws0 (see Fig. 1). The idea is
to obtain, through abductive reasoning, a set of expectations
about a possible course of events that together with KBws
entails ICws ∪ ICws0 and G.</p>
        <p>Note that we do not assume that ws knows KBws0 , as the
KB is not part of the interface. However, in general integrity
constraints can involve predicates defined in the knowledge
base. For example, they can contain predicates defining
parameters, deadlines, coefficients, etc., or other knowledge only
available to ws0. If the interface behaviour provided by ws0
involves predicates defined in KBws0 , unknown to ws, we have
two alternatives:
• either ws0 provides ws with the necessary information,
e.g. with (part of) its KBws0 ;
• or ws will have to make assumptions about such unknown
predicates.</p>
        <p>We take the second option, and consider unknowns that
are neither H events nor E expectations as literals that can
be abduced, and we keep them in a set Δ. We then have
the following two equations that define the set of abductive
answers representing possible interaction between ws and ws0
achieving G:</p>
        <p>KBws ∪ HAP ∪ EXP ∪ Δ
KBws ∪ HAP ∪ EXP ∪ Δ
|= G
|=</p>
        <p>ICws ∪ ICws0
(3)
(4)
where HAP is a conjunction of H atoms, EXP is a
conjunction of E atoms, and Δ a conjunction of abducible atoms.</p>
        <p>We can now proceed with defining what kind of interaction
is possible/fruitful, given two web services and a goal.</p>
        <p>Definition 6.1 (Possible interaction about G): A possible
interaction about a goal G between two web services ws and
ws0 is an A-minimal set HAP ∪ EXP ∪ Δ such that Eq. 3
and 4 hold.</p>
        <p>Among all possible interactions about G, some of them
are fruitful, and some are not. An interaction only based
on expectations which will not be matched by corresponding
events is not a fruitful one: for example, the goal of ws might
not have a corresponding event, thus the goal is not actually
reached, but only expected. Or, one of the web services could
be waiting for a message from the other fellow, which will
never arrive, thus undermining the inter-operability.</p>
        <p>We select, among the possible interactions, those whose
history satisfies all the expectations of both the web services.
After the abductive phase, we have a verification phase in
which there are no abducibles, and in which the previously
abduced predicates H and E are now considered as defined
by atoms in HAP and EXP, and they have to match. If
among the possible interactions there exists one satisfying</p>
        <p>Definition 6.2 (Possible interaction achieving G): Given
two web services, ws and ws0, and a goal G, a possible
interaction achieving G is a possible interaction about G
satisfying Eq. 5.</p>
        <p>Intuitively, the “→” implication in Eq. 5 avoids situations in
which a web service waits forever for an event that the other
web service will never produce. The “←” implication avoids
that one web service sends unexpected messages, which in the
best case may not be understood (and in the worst scenarios
it may lead to faulty, unpredictable behaviour of the parties
involved).</p>
        <p>A. Operational Semantics</p>
        <p>
          The operational semantics is a modification of the SCIFF
proof-procedure [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. SCIFF is a transition system, whose state
is given by the following tuple:
        </p>
        <p>
          T ≡ hR, CS, P SIC, ΔA, PEND, HAP, FULF, VIOLi
The set of expectations EXP is partitioned into the fulfilled
(FULF), violating (VIOL), and pending (PEND)
expectations. The other elements are: the resolvent (R), the abduced
literals that are not expectations (ΔA), the constraint store
(CS), a set of implications, inherited from the IFF [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], called
partially solved integrity constraints (P SIC), and the history
of happened events (HAP).
        </p>
        <p>
          A classical application of SCIFF is on-line checking of
compliance of agent interaction to protocols. In fact, SCIFF
was initially developed to specify and verify agent interaction
protocols on-the-fly, under the assumption of open agent
environments adopted by other noteworthy agent research
work [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]. SCIFF processes events drawing from HAP
and generates (abduces) expectations; then it checks that all
expectation are fulfilled by at least one happened event. The
declarative semantics of SCIFF contains in fact a requirement
E(X) → H(X) – differently from WAVe, which has a double
implication (Eq. 5). In SCIFF, as soon as new H events are
processed, a transition fulfilment labels the relevant matching
expectations as fulfilled and moves them to the set FULF. At
the end of the derivation, if some expectation remains in the
set PEND, a failure node is generated, and other alternative
branches will be explored in backtracking, if there exist any.
        </p>
        <p>WAVe extends SCIFF and abduces H events as well as
expectations. The events history is not taken as input, but
all possible interactions are hypothesised. Moreover, in WAVe
events not matched by an expectation (which are perfectly
acceptable in the multi-agent scenario addressed by SCIFF)
cannot be part of a possible interaction achieving the goal.</p>
        <p>The two phases in the declarative semantics (generation
of possible interactions and their test for conformance) are
condensed into one single derivation process, thanks to a new
transition adopted in WAVe. The expected transition,
symmetrical to fulfilment, labels each H events with an expected flag
as soon as an expectation matching it is abduced. At the end
of the derivation, H with expected status = false will cause
failure.</p>
        <p>Given the guarantee, alice will pay by credit card (rule
(alice2) fires):</p>
        <p>EXP4a ={E(eShop, alice, deliver(device), Ts) ∧ Ts &lt; 50
∧E(alice, eShop, pay(device, cc), Tcc) ∧ Tcc &lt; Ts
∧E(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tcc
HAP4a ={H(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tcc
∧H(alice, eShop, pay(device, cc), Tcc) ∧ Tcc &lt; Ts}</p>
        <p>(by (alice2))</p>
        <p>Having received the payment, eShop’s policy would be to
deliver the device:</p>
        <p>EXP5a ={E(eShop, alice, deliver(device), Ts) ∧ Ts &lt; 50
∧E(alice, eShop, pay(device, cc), Tcc) ∧ Tcc &lt; Ts
∧E(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tcc}
HAP5a ={H(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tcc
∧H(alice, eShop, pay(device, cc), Tcc) ∧ Tcc &lt; Ts
∧H(eShop, alice, deliver(device), Ts) ∧ Ts &lt; 50}
(by (shop2))</p>
        <p>Otherwise, if the WAVe derivation in a program P for a
goal G succeeds with set of expectation EXP ∪ HAP ∪ Δ,
we write P `EXP∪HAP∪Δ G.</p>
        <p>
          Soundness and completeness results. WAVe is a
conservative modification of the SCIFF proof-procedure, which
is sound and complete under reasonable assumptions [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
Therefore, soundness and completeness results also hold for
WAVe. A detailed discussion of this issue can be found in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>We will next demonstrate the operational functioning of
verification in WAVe in the alice &amp; eShop scenario.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>VII. VERIFICATION IN WAVe</title>
      <p>In the following, the sets EXPN and HAPaN represent
a
the evolution of alice’s expectations and events as WAVe’s
derivation progresses; N is an incremental index. Let g be the
following goal of alice’s:
g ← have(alice, device, 50).
(goal)</p>
      <sec id="sec-5-1">
        <title>Then, by unfolding of clause alice3,</title>
        <p>EXP0a ={E(eShop, alice, deliver(device), Ts) ∧ Ts &lt; 50} (6)
(by (alice3))</p>
        <p>To this expectation, eShop will react by expecting a
payment:
EXP1a ={E(eShop, alice, deliver(device), Ts) ∧ Ts &lt; 50
∧(E(alice, eShop, pay(device, cc), Tcc) ∧ Tcc &lt; Ts
∨E(alice, eShop, pay(device, cash), Tca) ∧ Tca &lt; Ts
∨E(alice, eShop, pay(device, cheque), Tch) ∧ Tch &lt; Ts)
(by (shop1))</p>
        <p>Since the expectation containing the payment by cc is the
only one which generates an expectation matching a rule of
alice ((alice1)), the first expectation among the three payment
alternatives is selected (the other branches eventually fail
by Eq. 5, because no matching H is abduced). This choice
triggers (alice1):</p>
        <p>EXP2a ={E(eShop, alice, deliver(device), Ts) ∧ Ts &lt; 50
∧E(alice, eShop, pay(device, cc), Tcc) ∧ Tcc &lt; Ts
∧E(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tcc}</p>
        <p>(by (alice1))</p>
        <p>Then (shop3) fires, and abduces the happening of
give guarantee event. We then have:</p>
        <p>EXP3a ={E(eShop, alice, deliver(device), Ts) ∧ Ts &lt; 50
∧E(alice, eShop, pay(device, cc), Tcc) ∧ Tcc &lt; Ts
∧E(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tcc}</p>
        <p>(by (alice1))
HAP3a ={H(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tcc}
(by (shop3))
(7)
(8)
(9)
(10)
(11)
(12)</p>
        <p>Summarising, alice devised the following set of events,
which should let her achieve her goal (have the desired device)
while respecting both of alice’s and eShop’s policies.</p>
        <p>Ca ={H(eShop, alice, give guarantee, Tg) ∧ Tg &lt; Tp
∧H(alice, eShop, pay(device, cc), Tp) ∧ Tp &lt; Ts
∧H(eShop, alice, deliver(device), Ts) ∧ Ts &lt; 50)}</p>
      </sec>
      <sec id="sec-5-2">
        <title>VIII. RULE MARK-UP</title>
        <p>
          In WAVe, the ICs can be exchanged between web services,
as well as advertised together with their WSDL. For this
reason, a mark-up language is necessary for the rules in ICs.
RuleML [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] is the perfect mark-up language for exchanging
rules on the web, so our choice has been easy. RuleML 0.9
contains mark-ups for expressing important concepts of the
SCIFF proof-procedure. In particular, SCIFF is a rule engine
able to distinguish and use both backward and forward rules.
Backward rules are used to plan, reason upon events, perform
proactive reasoning. Forward rules are used for reactive
reasoning, to quickly perform actions in response to occurred
events. Both are seamlessly integrated in SCIFF. RuleML 0.9
contains a direction attribute that can be attached to rules.
Being based on abduction, SCIFF can deal both with negation
as failure and negation by default, that have an appropriate
tagging in RuleML. In this work, we only used standard
RuleML syntax; in future work we might be interested in
distinguishing between defined and abducible predicates, or
between expectations and events.
        </p>
        <p>
          SCIFF was implemented in SICStus Prolog: SICStus
contains an implementation of the PiLLoW library [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], which
makes it easy to perform http requests, as well as
implementing services on the web. Finally, SICStus contains an XML
parser, which allowed us to easily implement the RuleML
parser. The RuleML parser is freely available on the SCIFF
web site [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ].
        </p>
      </sec>
      <sec id="sec-5-3">
        <title>IX. DISCUSSION AND RELATED WORK</title>
        <p>WAVe is a framework intended for describing declaratively
the behavioural interface of web services, and for testing
operationally the possibility of fruitful interaction between
them. WAVe answers the question “does there exist a viable
interaction, between two given web services, which achieves
a given goal G?” In case of success, WAVe produces a set of
expectations about events. WAVe is particularly suitable for
highly dynamic environments, in which interoperability is an
unknown that has to be checked.</p>
        <p>
          WAVe uses and extends a technology initially developed for
online compliance verification of agent interaction to protocols
[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. SCIFF and the protocol specification language based on
social integrity constraints were motivated and inspired by
conspicuous work done in the context of agent interaction in
open societies, notably work by Singh [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ] and colleagues.
The extension of such a work to the context of web services,
centering around the concept of policies, as proposed in this
work, seems to be very promising. The idea of policies for
web services and policy-based reasoning is one that many
other authors also adopt. We will cite work by Finin and
colleagues [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], and by Bradshaw and colleagues [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ], the first
one with an emphasis on representation of actions, the latter
on the deontic semantic aspects of web service interaction. We
acknowledge the importance of action modelling and we point
that the idea of expected behaviour of web services can have
a deontic reading. In fact, previous work on SCIFF has been
devoted to investigating and clarifying the interesting links
between deontic operators and expectation-based reasoning
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. The distinguishing features of WAVe, compare to most
work of literature, are its logical underpinning and its sound
and complete operational characterisation. It is in our agenda
to carry out an extensive empiric evaluation of WAVe based
on interesting cases and scenarios such as those proposed in
related work, and on the existing implementation of the SCIFF
framework.3
        </p>
        <p>Another direction of current work relates to the actual use
of the answers of WAVe by web services after they manage
a successful derivation. In principle, the sequence of events
produced by WAVe could be instantiated into a concrete
sequence of messages, which will guarantee the achievement
of G, under ideal external conditions. But this is true only
if the policies disclosed by both web services are a faithful
representation of their actual behaviour. This may not be the
case, as for example policies may depend on sensible data, and
web services may be not allowed to disclose full information
to the outside. In that case nothing warrants that the course
of action produced by WAVe will be satisfactory for either
web service. We might then have to resort to further steps.
For example both web services could “formally” agree that a
3See http://lia.deis.unibo.it/research/sciff.
certain course of events in an acceptable option, possibly after
another mutual verification phase. This is subject of ongoing
work. Finally, we are currently investigating the exchange of
policies between web services, for which a suitable interaction
protocol needs to be devised. We are thinking of specifying
such a protocol for exchanging the policies in the same
language WAVe uses to specify policies.</p>
        <p>
          In this work, we do not address the problem of reasoning
about ontologies: rather, we focus on the reasoning process,
given the policies of both the peers involved in the interaction.
Many other approaches instead focus on the former issue:
hence our proposal could be seen as a complementary
functionality, that could further improve the discovery process. For
instance, in [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] an ontology language to define web services is
proposed. In [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], besides proposing a general language for
representing semantic web service specifications using logic, a
discovery scenario is depicted and an architectural solution is
proposed (we draw inspiration for our scenario from the
Discovery Engine example). A notion of mediator is introduced to
overcome differences between different ontologies, and then
a reasoning process is performed over the user inputs and the
hypothetical effects caused by the service execution. To some
extent, our work can be related to [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], where the authors
present a framework for automated web service discovery that
uses the Web Service Modeling Ontology (WSMO) as the
conceptual model for describing web services, requester goals
and related aspects. This conceptual framework distinguishes
two main stages. During the discovery stage, the requester
states only the things that are desired, thus seeks for all the
services that can potentially satisfy a request of such a kind.
During the contracting stage, instead, the requester provides in
input specific information for an already requested service. The
purpose of this second stage is to verify that the input provided
will lead to a desired state that satisfies the requester goal.
In our work, we are concerned mainly with the contracting
stage. While in [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] the authors use F-logic and transaction
logic as the underlying formalisms, we rely on extended logic
programming. In both the approaches, however, hypothetical
reasoning is used for service contracting.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], only the clients goal is considered, while in
our framework the client can specify its policies (its intended
behavioural interface); in this way, the client could be
considered a web service as well. Therefore, our framerwork can be
exploited without major changes to deal with the problem of
interoperability between web services behavioural interfaces
[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          Foster et al. [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] propose a model-based approach to
verify a given service composition can successfully execute a
choreography, in particular with respect to the obligations
imposed on the services by a choreography. The web service
specifications and the choreography are translated to FSP
algebra and checked by model checking techniques. The main
difference with respect to our work is that Foster et al.
check a web service composition against a choreography for
conformance, while we check a set of web services for their
capability to achieve a goal. Another notable difference is in
the adopted formal approaches (abduction in our case, model
checking in theirs).
        </p>
        <p>
          The outcome of the reasoning process performed by WAVe
could be intended as a sort of “contract agreement” between
the client and the discovered service, provided that each peer
is tightly bounded to the policies/knowledge bases he/she has
previously published. For example, the dynamical agreement
about contracts (e-contracting) is addressed in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], where
Situated Courteous Logic is adopted for reasoning about rules
that defines business provisions policies. The used
formalism supports contradicting rules (by imposing a priorization
and mutual exclusion between rules), different ontologies,
and effectors as procedures with side effects. However, their
work is more focussed on establishing the characteristics of
a business deal, while our approach address the problem
of evaluating the feasibility of an interaction. To this end,
we perform hypothetical reasoning on the possible actions
and consequences; moreover, we hypothesised also which
condition must hold, in order to interoperate. Other works
use rules to reason about established contracts: in [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], for
example, Defeasible Deontic Logic of Violation is used to
monitor the execution of a previously agreed contract. We
have addressed such issue in a companion paper [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], where
integrity constraints have been exploited and conciliated with
the deontic concepts.
        </p>
      </sec>
      <sec id="sec-5-4">
        <title>ACKNOWLEDGEMENTS</title>
        <p>This work has been partially supported by the MIUR PRIN
2005 projects Specification and verification of agent
interaction protocols and Vincoli e preferenze come formalismo
unificante per l’analisi di sistemi informatici e la soluzione di
problemi reali, and by the MIUR FIRB project Tecnologie
Orientate alla Conoscenza per Aggregazioni di Imprese in
Internet.
for semantic web services workflow composition and enactment. In
Sheila A. McIlraith, Dimitris Plexousakis, and Frank van Harmelen,
editors, International Semantic Web Conference, volume 3298 of Lecture
Notes in Computer Science, pages 425–440. Springer, 2004.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>[1] http://www.w3.org/Submission/SWSF-SWSL/.</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>[2] http://www.w3.org/Submission/2005/SUBM-SWSF-Applications20050909/.</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Asaf</given-names>
            <surname>Adi</surname>
          </string-name>
          , Suzette Stoutenburg, and Said Tabet, editors.
          <source>Rules and Rule Markup Languages for the Semantic Web</source>
          , First International Conference, RuleML
          <year>2005</year>
          , Galway, Ireland,
          <source>November 10-12</source>
          ,
          <year>2005</year>
          , Proceedings, volume
          <volume>3791</volume>
          of Lecture Notes in Computer Science. Springer Verlag,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Marco</given-names>
            <surname>Alberti</surname>
          </string-name>
          , Federico Chesani, Marco Gavanelli, Evelina Lamma, Paola Mello, and
          <string-name>
            <given-names>Marco</given-names>
            <surname>Montali</surname>
          </string-name>
          .
          <article-title>An abductive framework for a-priori verification of web services</article-title>
          . In Michael Maher, editor,
          <source>Proceedings of the Eighth Symposium on Principles and Practice of Declarative Programming, July 10-12</source>
          ,
          <year>2006</year>
          , Venice, Italy, pages
          <fpage>39</fpage>
          -
          <lpage>50</lpage>
          , New York, USA,
          <year>July 2006</year>
          .
          <article-title>Association for Computing Machinery (ACM), Special Interest Group on Programming Languages (SIGPLAN)</article-title>
          , ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Marco</given-names>
            <surname>Alberti</surname>
          </string-name>
          , Federico Chesani, Marco Gavanelli, Evelina Lamma, Paola Mello, Marco Montali, and
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Torroni</surname>
          </string-name>
          .
          <article-title>Policy-based reasoning for smart web service interaction</article-title>
          .
          <source>In Proceedings of the 1st International Workshop on Applications of Logic Programming in the Semantic Web and Semantic Web Services (ALPSWS</source>
          <year>2006</year>
          ), volume
          <volume>196</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <fpage>87</fpage>
          -
          <lpage>102</lpage>
          , Seattle, WA, USA,
          <year>August 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Marco</given-names>
            <surname>Alberti</surname>
          </string-name>
          , Federico Chesani, Marco Gavanelli, Evelina Lamma, Paola Mello, and
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Torroni</surname>
          </string-name>
          .
          <article-title>The SOCS computational logic approach for the specification and verification of agent societies</article-title>
          .
          <source>In Corrado Priami and Paola Quaglia</source>
          , editors, Global Computing: IST/FET International Workshop, GC 2004 Rovereto, Italy, March 9-
          <issue>12</issue>
          ,
          <source>2004 Revised Selected Papers</source>
          , volume
          <volume>3267</volume>
          <source>of Lecture Notes in Artificial Intelligence</source>
          , pages
          <fpage>324</fpage>
          -
          <lpage>339</lpage>
          . Springer-Verlag,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Marco</given-names>
            <surname>Alberti</surname>
          </string-name>
          , Federico Chesani, Marco Gavanelli, Evelina Lamma, Paola Mello, and
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Torroni</surname>
          </string-name>
          .
          <article-title>Verifiable agent interaction in abductive logic programming: the SCIFF proof-procedure</article-title>
          .
          <source>Technical Report DEIS-LIA-06-001</source>
          , University of Bologna (Italy),
          <year>March 2006</year>
          . LIA Series no.
          <volume>75</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Marco</given-names>
            <surname>Alberti</surname>
          </string-name>
          , Marco Gavanelli, Evelina Lamma, Paola Mello, Giovanni Sartor, and
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Torroni</surname>
          </string-name>
          .
          <article-title>Mapping deontic operators to abductive expectations</article-title>
          .
          <source>Computational and Mathematical Organization Theory</source>
          ,
          <volume>12</volume>
          (
          <issue>2-3</issue>
          ):
          <fpage>205</fpage>
          -
          <lpage>225</lpage>
          ,
          <year>October 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Marco</given-names>
            <surname>Alberti</surname>
          </string-name>
          , Marco Gavanelli, Evelina Lamma, Paola Mello, and
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Torroni</surname>
          </string-name>
          .
          <article-title>The SCIFF abductive proof-procedure</article-title>
          .
          <source>In Proceedings of the 9th National Congress on Artificial Intelligence</source>
          ,
          <source>AI*IA</source>
          <year>2005</year>
          , volume
          <volume>3673</volume>
          <source>of Lecture Notes in Artificial Intelligence</source>
          , pages
          <fpage>135</fpage>
          -
          <lpage>147</lpage>
          . Springer-Verlag,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10] Jose´ Ju´lio Alferes,
          <article-title>Carlos Viegas Dama´sio, and Lu´ıs Moniz Pereira</article-title>
          .
          <article-title>Semantic web logic programming tools</article-title>
          .
          <source>In Franc¸ois Bry</source>
          , Nicola Henze, and Jan Maluszynski, editors,
          <source>PPSWR</source>
          , volume
          <volume>2901</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>16</fpage>
          -
          <lpage>32</lpage>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Tony</surname>
            <given-names>Andrews</given-names>
          </string-name>
          , Francisco Curbera, Hitesh Dholakia, Yaron Goland, Johannes Klein, Frank Leymann, Kevin Liu, Dieter Roller,
          <string-name>
            <given-names>Doug</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Satish</given-names>
            <surname>Thatte</surname>
          </string-name>
          , Ivana Trickovic, and
          <string-name>
            <given-names>Sanjiva</given-names>
            <surname>Weerawarana</surname>
          </string-name>
          .
          <article-title>Business process execution language for web services version 1</article-title>
          .1, May
          <year>2003</year>
          . http://www.ibm.com/developerworks/library/ws-bpel/.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Tim</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>James</given-names>
            <surname>Hendler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Ora</given-names>
            <surname>Lassila</surname>
          </string-name>
          .
          <article-title>The semantic web</article-title>
          .
          <source>Scientific American</source>
          , May
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bhansali</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Grosof</surname>
          </string-name>
          .
          <article-title>Extending the sweetdeal approach for eprocurement using sweetrules and ruleml</article-title>
          .
          <source>In Adi et al. [3].</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Franois</given-names>
            <surname>Bry</surname>
          </string-name>
          and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Eckert</surname>
          </string-name>
          .
          <article-title>Twelve theses on reactive rules for the web</article-title>
          .
          <source>In Proceedings of the Workshop on Reactivity on the Web</source>
          , Munich, Germany,
          <year>March 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Denecker</surname>
          </string-name>
          and D. De Schreye.
          <article-title>SLDNFA: an abductive procedure for abductive logic programs</article-title>
          .
          <source>Journal of Logic Programming</source>
          ,
          <volume>34</volume>
          (
          <issue>2</issue>
          ):
          <fpage>111</fpage>
          -
          <lpage>167</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Howard</surname>
            <given-names>Foster</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Uchitel</surname>
          </string-name>
          , Jeff Magee, and
          <string-name>
            <given-names>Jeff</given-names>
            <surname>Kramer</surname>
          </string-name>
          .
          <article-title>Modelbased analysis of obligations in web service choreography</article-title>
          .
          <source>In Proceedings of the International Conference on Internet and Web Applications and Services (ICIW</source>
          <year>2006</year>
          ), Guadeloupe French Caribbean,
          <year>2006</year>
          . IEEE Computer Society Press.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>T. H.</given-names>
            <surname>Fung</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. A.</given-names>
            <surname>Kowalski</surname>
          </string-name>
          .
          <article-title>The IFF proof procedure for abductive logic programming</article-title>
          .
          <source>Journal of Logic Programming</source>
          ,
          <volume>33</volume>
          (
          <issue>2</issue>
          ):
          <fpage>151</fpage>
          -
          <lpage>165</lpage>
          ,
          <year>November 1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>G.</given-names>
            <surname>Governatori</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. P.</given-names>
            <surname>Hoang</surname>
          </string-name>
          .
          <article-title>A semantic web based architecture for e-contracts in defeasible logic</article-title>
          .
          <source>In Adi et al. [3].</source>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Cabeza</surname>
          </string-name>
          Gras and
          <string-name>
            <given-names>Manuel V.</given-names>
            <surname>Hermenegildo</surname>
          </string-name>
          .
          <article-title>Distributed WWW programming using (Ciao-)Prolog and the PiLLoW library</article-title>
          .
          <source>Theory and Practice of Logic Progr</source>
          .,
          <volume>1</volume>
          (
          <issue>3</issue>
          ):
          <fpage>251</fpage>
          -
          <lpage>282</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Lalana</surname>
            <given-names>Kagal</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Timothy W. Finin</surname>
            , and
            <given-names>Anupam</given-names>
          </string-name>
          <string-name>
            <surname>Joshi</surname>
          </string-name>
          .
          <article-title>A policy based approach to security for the semantic web</article-title>
          . In Dieter Fensel,
          <string-name>
            <given-names>Katia P.</given-names>
            <surname>Sycara</surname>
          </string-name>
          , and John Mylopoulos, editors,
          <source>International Semantic Web Conference</source>
          , volume
          <volume>2870</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>402</fpage>
          -
          <lpage>418</lpage>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Kakas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. A.</given-names>
            <surname>Kowalski</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Francesca</given-names>
            <surname>Toni</surname>
          </string-name>
          .
          <article-title>Abductive Logic Programming</article-title>
          .
          <source>Journal of Logic and Computation</source>
          ,
          <volume>2</volume>
          (
          <issue>6</issue>
          ):
          <fpage>719</fpage>
          -
          <lpage>770</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Kakas</surname>
          </string-name>
          and
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Mancarella</surname>
          </string-name>
          .
          <article-title>On the relation between Truth Maintenance and Abduction</article-title>
          . In T. Fukumura, editor,
          <source>Proceedings of the 1st Pacific Rim International Conference on Artificial Intelligence</source>
          , PRICAI-
          <volume>90</volume>
          , Nagoya, Japan, pages
          <fpage>438</fpage>
          -
          <lpage>443</lpage>
          . Ohmsha Ltd.,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>Michael</given-names>
            <surname>Kifer</surname>
          </string-name>
          , Ruben Lara,
          <string-name>
            <given-names>Axel</given-names>
            <surname>Polleres</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Chang</given-names>
            <surname>Zhao</surname>
          </string-name>
          , Uwe Keller, Holger Lausen, and
          <string-name>
            <given-names>Dieter</given-names>
            <surname>Fensel</surname>
          </string-name>
          .
          <article-title>A logical framework for web service discovery</article-title>
          . In Semantic Web Services:
          <article-title>Preparing to Meet the World of Business Applications</article-title>
          , ISWC Worshop, Hiroshima, Japan,
          <year>November 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>D</surname>
          </string-name>
          . et al. Martin. http://www.daml.org/services/owl-s/1.0/.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25] Working Group on Rule Interchange Format.
          <article-title>Use cases and requirements</article-title>
          . http://www.w3.org/2005/rules/wg/ucr/ draft-20060323.html,
          <year>March 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>The</surname>
            <given-names>SCIFF</given-names>
          </string-name>
          <source>abductive proof procedure</source>
          ,
          <year>2005</year>
          . http://lia.deis. unibo.it/research/sciff/.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>M.</given-names>
            <surname>Singh</surname>
          </string-name>
          .
          <article-title>Agent communication language: rethinking the principles</article-title>
          .
          <source>IEEE Computer</source>
          , pages
          <fpage>40</fpage>
          -
          <lpage>47</lpage>
          ,
          <year>December 1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Andrzej</surname>
            <given-names>Uszok</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jeffrey M. Bradshaw</surname>
            , Renia
            <given-names>Jeff</given-names>
            ers, Austin Tate, and Jeff
          </string-name>
          <string-name>
            <surname>Dalton</surname>
          </string-name>
          .
          <article-title>Applying kaos services to ensure policy compliance</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>