<!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>Ontological Reasoning and Abductive Logic Programming for Service Discovery and Contracting</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Federico Chesani</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Paola Mello</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Montali</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Paolo Torroni</string-name>
          <email>paolo.torronig@unibo.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DEIS - Department of Electronics, Informatics and Systems University of Bologna viale Risorgimento</institution>
          ,
          <addr-line>2 40136 - Bologna</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Service Oriented Architecture paradigm, and its implementation based on Web Services, have been the object of an intense research and standardization activity. One of the most challenging open research issues is the discovery of Web Services on the base of the functionality they o®er. Several proposals, including WSMO and OWL-S, rely on Semantic Web technologies to enrich service descriptions with semantic information about the o®ered functionalities. Current solutions however mainly focus on ontological aspects. In this paper we focus instead on aspects related to web service interaction. We present an application framework that addresses the service discovery problem by accommodating both the ontological and the interaction perspectives. It does so by reasoning with a number of ingredients that specify how web services and users interact: web service semantic descriptions and declarative rules, and user goals, parameters and policies. The aim of our framework is to discover and propose to user services which (1) ontologically ful¯ll the requested functionalities, and (2) allow the user to interact with the services and possibly achieve her goals, without violating her policies.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Service Oriented Architecture (SOA) and Web Services are rapidly emerging as
standard architectures for distributed application development. The adoptions
of well-known network protocols and communication standards have solved
interoperability and heterogeneity issues at the level of hardware and software.
Eventually, the use of o®-the-shelf solutions/services is becoming possible,
although concerns about the adoption of such components have been raised. In
particular, the search of software components on the basis of the
functionality they provide, rather than on some syntactical property, is still an open
research matter. To this end, some authors identify Semantic Web technologies as
a promising way to address this issue [
        <xref ref-type="bibr" rid="ref5 ref9">5, 9</xref>
        ]. The idea is to augment web service
      </p>
    </sec>
    <sec id="sec-2">
      <title>Alice</title>
    </sec>
    <sec id="sec-3">
      <title>Request</title>
      <p>eShop2</p>
    </sec>
    <sec id="sec-4">
      <title>Result</title>
      <p>eShop3
eShop1
eShop2</p>
    </sec>
    <sec id="sec-5">
      <title>Discovery</title>
    </sec>
    <sec id="sec-6">
      <title>Contracting</title>
      <p>eShop1 eShop2
descriptions by semantic information that can be used to search for Semantic
Web Services (SWS).</p>
      <p>In our view, searching for a service means to identify such components that
i) can potentially satisfy the user needs in terms of outputs and e®ects, and
ii) can be invoked by the customer and interact with her without violating her
interaction policies. An example of interaction policy could be a user constraint
that prevents providing a credit card number to a service which is not certi¯ed,
or a service constraint that prevents to accept credit card payments for items
out of stock or with more than 30 % discount. Hence, a user request contains
not only a description (given in semantic terms) of the user desires, but also the
user policies, which we call the \behavioural interface."</p>
      <p>
        We consider the search of a SWS as the process of identifying, among a given
set of services, those components that both satisfy the ontological requirements
(i.e., they provide the requested functionality), and the constraints on interaction
(i.e., they support the requested behaviour). Following [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], we propose a
twofold search process. A ¯rst phase, called discovery, consider a requester's desires,
and using ontology-based reasoning, produces a selection of services that can
potentially satisfy a request of such a kind. A second step, called contracting,
matches the requester's interaction policies with those of every selected service,
and establishes whether an interaction can be e®ectively achieved, and if the
result matches the user goals.
      </p>
      <p>
        In previous work [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] we focused on the contracting step only, exploring the
possibility of using the SCIFF language [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] to specify both the interaction
policies of the requester and of the service. Then, by exploiting the SCIFF proof
procedure, we showed how our approach could be a feasible solution for
reasoning upon interactions. The solution proposed, called SCIFF Reasoning Engine
(SRE), is a framework able to establish if a given SWS and a requester can
fruitfully inter-operate, taking as input the behavioural interfaces of both the
participants, and producing as output a sort of a contract (a plan).
      </p>
      <p>
        Building on [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], in this paper we describe an implemented, application
framework that encompasses both the discovery and the contracting steps, in a uni¯ed
search process. In particular, we accommodate service discovery by
ontologybased reasoning, speci¯cally by matching the user inputs, outputs and e®ects,
with \similar" inputs, outputs and e®ects of potentially suitable services.
Similarity here can be intended as subsumption. Once a set of software components
has been shortlisted from all the available services, in a second step the SRE
evaluates which services can e®ectively (and successfully) interact with the user.
Ontology-based reasoning is again used, also in this second stage, to solve
terminological mismatches in the user and service policy descriptions.
1.1
      </p>
      <sec id="sec-6-1">
        <title>An example scenario</title>
        <p>User Alice forgot to buy her brother a Christmas present and now she is
desperately searching the Internet for an online shops that sells the last crime ¯ction
novel featuring Inspector Montalbano. She is particularly worried because she
needs to ¯nd a shop that delivers in 3 days, and o®ers a gift wrapping service.
She can pay by Mastercard, PayPal, or bank transfer.</p>
        <p>eShop1 is the biggest Internet book seller, and through its semantic web
services it provides every type of books. Its services are advertised with the
generic term \book". Moreover, it has some policies about the delivery: fast
delivery (one working day) is allowed only if payment is performed by means
of bank transfer; otherwise, standard delivery (one week) is the default option.
Gift wrapping is possible, but only with standard delivery.</p>
        <p>eShop2 is a small internet seller, specialized in crime ¯ction books only.
Its service advertisements use again the generic term \book," and it accepts
\credit card" payment. The shop o®ers fast delivery, and gift wrapping without
restrictions.</p>
        <p>eShop3 is a huge, consumer electronics chain, which advertise its internet
service as \selling anything." It accepts any payment method, supports only
fast delivery and gift wrapping.</p>
        <p>We envisage a scenario in which Alice queries our search engine, looking
for a solution for her problem. Our application performs the discovery step,
and the shops eShop1 and eShop2 are selected as possible services providing
what Alice is looking for. However, this is not enough to guarantee that an
interaction is possible. Due to its policies, gift wrapping and fast delivery are
incompatible options for eShop1. Our application, during the contracting phase,
reasons upon the policies of the services and the customer. It tries to generate a
possible interaction plan where all the constraints are respected, and if it fails,
the service is simply discarded. In this example, the only service that has a
chance to ful¯ll Alice's requirements is eShop2, which is returned as a result
from the search process.
2</p>
        <sec id="sec-6-1-1">
          <title>The description of a Semantic Web Service</title>
          <p>Several, di®erent solutions have been proposed in order to describe a Semantic
Web Service, and a vast literature is available on the topic. However, up to now
no solution has been widely accepted, and a proper standard for de¯ning the
semantics of a Web Service is still a matter of research. This is indeed, in our
opinion, one of the most limiting factor for the adoption of SWS standards.</p>
          <p>
            The two major proposals, the Web Service Modeling Ontology (WSMO [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ])
and the Semantic Markup for Web Services (OWL-S [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]) address both the
ontological aspects and the behavioral issues, when describing a SWS. However,
WSMO proposes a rigid structure, and the behavioural aspects are mainly
de¯ned on abstract state machines semantics. OWL-S instead allows a great
°exibility, leaving the users the possibility of extending it following their needs:
behavioural aspects are supported by allowing their de¯nition using at least
two languages (Knowledge Interchange Format, KIF [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ] and Semantic Web Rule
Language, SWRL [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ]), plus the possibility of adding any required language.
WSMO o®er a complete suite of tools for editing SWS descriptions, while
OWLS partially leaves this burden to the single users.
          </p>
          <p>In the current implementation of our application framework, we made a
compromise, by choosing to keep ontological and behavioural aspects separate from
each other. They are represented by two di®erent sets of information and stored
in two di®erent ¯les. Ontological aspects are represented by means of an OWL-S
1.1 pro¯le, while behavioural properties are de¯ned using the SRE language.
This allows us to keep our architecture open to other SWS description solutions,
without giving up the powerful SRE formalism for representing the interaction
issues.
2.1</p>
        </sec>
      </sec>
      <sec id="sec-6-2">
        <title>Representing Interaction Issues: the SRE Approach</title>
        <p>
          The SCIFF Reasoning Engine (SRE, [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]) describes behavioural aspects of a
Semantic Web Service in terms of logical triplets in the form: hs; ws; Swsi; where
s identi¯es a service, ws is the name of a web service that provides s, and
Sws ´ (KBws; Pws) is the web service behavioural speci¯cation that ws
associates to s. In particular, for a given provider ws providing s, a set of policies
(rules) Pws describes ws's behaviour with respect to s, and a knowledge base
KBws, in the form of a logic program, contains information that ws wants to
disclose to potential customers. Client's queries are also de¯ned in terms of the
service that the client (c) needs, and a behavioural description of her own
interaction preferences Sc ´ (KBc; Pc).
        </p>
        <p>Policies Pws describe a web service's observable behaviour in terms of events
(e.g., messages). SRE considers two types of events: those that one can directly
control (e.g., if we consider the policies of a web service ws, a message generated
by ws itself) and those that one cannot (e.g., messages that ws receives, or does
not want to receive). Atoms denoted by H denote \controllable" events, those
denoted by E and EN denote \passive" events, also named expectations. Since
SRE reasons about possible future courses of events, both controllable events
and expectations represent hypotheses on possible events. We restrict ourselves
to the case of events being messages exchanged between the two parties in play.
The notation is:
{ H(ws; ws0; M; T ) denotes a message with sender ws, recipient ws0, and
content M , which ws expects to be sending to ws0 at a time T ;
{ E(ws0; ws; M; T ) denotes a message with sender ws0, recipient ws, and
content M , which ws expects ws0 to be sending at a time T ;
{ EN(ws0; ws; M; T ) denotes a message with sender ws0, recipient ws, and
content M , which ws expects ws0 not to be sending at a time T .</p>
        <p>In other words, H denotes messages that the sender expects to be sending,
and E/EN denote messages that the recipient expects (not) to be receiving. For
example, if eShop1's policies contain H(alice; eShop; hello; 10pm), the
interpretation is: \alice expects to be saying hello to me at 10pm," or, more simply,
since alice is in fact responsible for producing such an event, \alice says hello
to me at 10pm."</p>
        <p>Note that message content, sender, recipient, and time can also be partially
or totally left (un)speci¯ed. For example, the notation allows us to express that
service ws expects a message from some other web service, but does not know the
message content, sender, nor time yet. Moreover, it is possible to pose constraints
on such elements, for example it is possible to say that a message must match
with a certain pattern, or that its time must fall within a certain interval.</p>
        <p>
          More formally, web service speci¯cations in SRE are relations among
expected events, expressed in the SCIFF [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] Abductive Logic Programming (ALP)
language.1 A program in ALP is a triplet hKB; A; ICi, where KB is a logic
program, A (sometimes left implicit) is a set of literals named abducibles, and IC
is a set of integrity constraints. In the domain of web services, we will use ALP
as a reasoning paradigm that combines backward, goal-oriented reasoning with
forward, reactive reasoning [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]: two aspects that frequently, in the context of
web services, are treated separately from each other, but which share important
links. The ALP reasoning process will consider as knowledge base the KBws
associated to the web service. The set of abducibles A includes all possible E/EN
expectations, H events, and predicates left unde¯ned by KBws, while ICws will
correspond to Pws, containing ws's policies.
        </p>
        <p>Each integrity constraint in Pws is a rule in the form Body ! Head. The
Body of an IC is a conjunction of events, literals and CLP constraints; the Head
is either a disjunction of conjunctions of events, literals and CLP constraints, or
false. The operational reading of ICs is similar to that of forward rules: whenever
the body becomes true, the head is also made true.</p>
        <p>For example, eShop1's policy about gift wrapping being available only with
standard delivery can be expressed as follow:</p>
        <p>H(Customer; eShop1; request(Book id); Tr)
H(Customer; eShop1; select option(gif t wrap); To)
(eShop1)
!E(Customer; eShop1; select delivery(standard); Td) ^ Td &lt; To</p>
        <p>
          ^ H(eShop1; Customer; deliver(Book id; delivery(standard)); Ta) ^ Ta &gt; To:
Policy eShop1 has the following meaning: if a Customer has requested an item
with id Book id, and the gif t wrap option, then eShop1 expects (i.e., requires)
that the Customer has beforehand selected standard delivery, and it expects
1 For an introduction to ALP, see [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
to tell Customer that he will send her the book. Note the two events in the
head: the ¯rst one is an expectation about an external event, representing a
requirement, while the second one is an expectation about a controllable event,
representing the speci¯cation of a behaviour. The body of this speci¯c constraint
instead contains expectations about events controllable by other services, which
in a way amount to \perceptions" of occurred events.
        </p>
        <p>SRE reasons by considering a goal, expressed as a conjunction of events
and constraints (e.g., \alice expects (wants) to buy a book, and it wants it to
be wrapped and delivered within 3 days"), and by ¯ring integrity constraints
whose body is veri¯ed by matching events.
3</p>
        <sec id="sec-6-2-1">
          <title>Search for Semantic Web Services</title>
          <p>
            As in [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ], we distinguish between the discovery step and the contracting step.
During the discovery step, the user request for a service is compared with each
SWS description, and possible services are selected. In this phase the main
problem is that the terms/concepts used in the request could di®er from those used
in the service description. At the end of the discovery phase, a set of services
that ful¯ll the user requirements is provided as result. Such a set will be the
input for the next phase.
          </p>
          <p>The contracting phase then focuses its attention on the interaction policies,
i.e., on the set of rules that each partner has declared as representing its
behavioural interface. Here the problem consists of deciding whether an interaction
can e®ectively happen, with the further constraint that such interaction should
also achieve the user goals. Besides the interaction issue, again an ontological
problem must be faced: user and service policies could be de¯ned using di®erent
terms (referring to di®erent ontologies or to related but di®erent concepts). Our
framework uses ontological reasoners to cope with this problem.
3.1</p>
        </sec>
      </sec>
      <sec id="sec-6-3">
        <title>The Discovery Phase</title>
        <p>
          In our framework the discovery phase has been implemented following the
algorithm proposed by Paolucci et al. in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. In that work, the authors conceived
the discovery issue as the problem of selecting those services whose input and
output parameters \match" the input and output parameters provided in the
user request. Hence, the user request is confronted with every service description
available.
        </p>
        <p>More speci¯cally, request and a service outputs match if for each output
parameter of the request there is a matching output parameter in the service
description. Inputs match if for each service input there is a matching request
input. Each output parameter in the request is checked against all the output
parameters of the service; similarly, each input parameter of the service is checked
against all the input parameters in the user request.</p>
        <p>Paolucci et al. propose to analyze user request and service description
parameters pairwise, and to classify them into four categories according to their
matching level (for example, exact match is stronger than subsumption). The
levels are: exact, plugin, subsume and fail.</p>
        <p>
          Our implementation slightly di®ers from the algorithm described in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ],
due to some practical considerations we made on the search process. In fact,
while the original algorithm has been developed to support a scenario where a
service queries the search engine looking for a service with certain characteristics,
our application envisages an initial situation where a human user queries the
search engine looking for a service. So we decided to relax some constraints:
in particular, if a service provides more outputs than the user required, such a
service is selected anyway. Moreover, if a service requires more input than the
user speci¯ed in her request, again the service is selected nonetheless. We believe
in fact that a user might be interested to a service that requires more input that
she speci¯ed in her request: we want to give the user the opportunity of deciding
if she is willing to provide more inputs. Similar motivation for the outputs: we
want to leave it to the user to decide if a service that provide more outputs than
requested, is still of interest for her.
3.2
        </p>
      </sec>
      <sec id="sec-6-4">
        <title>The Contracting Phase</title>
        <p>Our application framework exploits the SRE framework in the contracting phase.
Roughly speaking, the SRE engine tries to establish if there exists a possible
sequence of events (exchanged messages) that respect the constraints of both
the service and the user. If such interaction is possible, SRE comes up with a
sort of a plan indicating the messages that should be exchanged. Note that the
reasoning process is driven by the user goals: not all the possible interactions
are of interest, but only those that lead to satisfying the user's needs.</p>
        <p>
          We extend the SRE architecture presented in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. First, we assume that each
service description, given in terms of SCIFF rules, contains also a reference to
one (or more) ontologies. This is required to support the alignment of the terms
adopted by di®erent behavioural policies.
        </p>
        <p>Second, a simple (and not complete) alignment process is carried out over the
terms used in the rules for describing the interaction policies. To this end, the
knowledge base of the service description is augmented with a set of predicates
is a/2, and the underlying uni¯cation mechanism of the SCIFF proof procedure
has been slightly modi¯ed to accommodate ontological subsumption relations.
4</p>
        <sec id="sec-6-4-1">
          <title>Framework Architecture</title>
          <p>The framework has been organized as a set of web services, each of them
providing one functionality. We aimed to realize a modular architecture, with the
intention of using the framework as a proof of concept of our solutions, and in
particular of the SRE approach. Our framework provides two facilities:
registering and querying. The ¯rst if provided by a component used by service providers,
which can register a service description given as the pair OWL-S pro¯le / SRE
pro¯le. The second facility is provided by a component which enables the users</p>
          <p>Service Description
OWL-S
Profile</p>
          <p>SRE</p>
          <p>Profile</p>
          <p>User Request</p>
          <p>IO SRE
Requirements Profile</p>
          <p>Matching
Semantic Web Services
e
c
i
v
r
e
S
itr
e
s
g
e
R
e
c
i
v
r
e
S
h
c
r
a
e
S</p>
          <p>Service
Register OWL-S Profile</p>
          <p>SRE Profile
RDBMS</p>
          <p>File</p>
          <p>System
Syntax
Validator
Service
Seeker</p>
          <p>Service
Matcher
SCIFF
Reasoning
Engine</p>
          <p>MatchMaker
(Ontology based)
to submit their request, and which returns as an output a list of SWS that ful¯ll
the user requirements.</p>
          <p>The various web services composing our system are shown in Figure 2. Any
interested Web Service can register itself at our application, by providing an
OWL-S description together with a SRE description of the provided functionality
and its behavioural policies. After a syntactic validation performed by the
Syntax Validation module, the pair OWL-S description / SRE description are sent
to the Service Register component who manages the storing procedures. In
particular, it stores OWL-S pro¯les by means of a Relational Database, while SRE
pro¯les are directly stored in the ¯le system. OWL-S pro¯les are pre-processed,
and a summary of the pro¯le is extracted for each SWS: in particular,
information about the referred ontology and the terms used for the inputs and the
outputs description are explicitly stored in the database. This choice allows to
simplify the matching algorithm described in Section 3.1 by means of ad-hoc,
dynamically created SQL queries on the DBMS. If the storing procedure
terminates successfully, an acknowledge is returned back to the service that required
the registration of its pro¯les.</p>
          <p>
            A user starts the query process by providing a request, composed of a
description of the functionality she is looking for, together with her behavioural
policies. The description of the desired service is given in terms of inputs and
outputs: however we assume such lists as a sort of \indication" of the needs of
the user, and a certain °exibility is adopted, as explained in Section 3.1. After
an initial syntactic validation step, is passed to the Service Seeker component,
who manages and coordinates the search process orchestrating the other
components. The input/outputl list is passed to the Service Matcher component that
selects, among the registered services, only those ones that could satisfy the user
request. To this end, the Service Matcher implements the algorithm explained
in Section 3.1. The ontology subsumption relation is evaluated by the
MatchMaker component, a simple wrapper for the Pellet reasoner [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ]. This choice was
because Pellet is open source, and it is written in Java: the same language used
to implement most of our framework's components.
          </p>
          <p>The list of services selected by the Service Matcher is returned back to the
Service Seeker, that in turn gives it to the SCIFF Reasoning Engine module.
Such module reasons about the possibility and the existence of an interaction
that could e®ectively satisfy the user needs, as explained in Section 3.2. Its
outcomes consists of a restricted list of services together with, for each service, a
possible interaction plan that i) justify why that service has been selected, and
2) shows how the user can successfully interact with the service. To overcome
terminological issues, also the SCIFF Reasoning Engine module uses the
MatchMaker and its integrated Pellet reasoner. Finally, the list of selected services is
returned back to the user by the Service Seeker module.
5</p>
        </sec>
        <sec id="sec-6-4-2">
          <title>Discussion and Conclusion</title>
          <p>
            Many authors tackled the service matching problem, considering both the
ontological and the interaction perspective. Among them, Kifer et al. propose a
comprehensive solution to the discovery and contracting problem in [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ], by
tackling both the aspects of discovery and contracting, but only considering user
goals. In our framework instead the user can specify their policies (their
intended behavioural interface) by means of declarative rules. The use of SRE,
and in particular of the underlying SCIFF language and proof procedure, allows
a great expressivity when de¯ning the policies, with the typical advantages of
declarative approaches and of a solid underlying a computational counterpart.
In [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ], Ragone et al. use the idea of Concept Covering and Concept Abduction
to overcome some of the limits of previous matching approaches, and to address
also the composition problem. In this work we focus on discovering a SWS able
to satisfy the user requests, and we concentrate our e®orts instead on reasoning
about the interaction aspects: in this perspective, we understand a SWS as a
complex agent, for which the interactions aspects play an important role.
          </p>
          <p>The architecture introduced in this paper is a ¯rst prototype, and from the
software development viewpoint it is still in an alpha stage. Moreover, it
suffers from many limitations we introduced to support °exibility and extensibility.
E.g., we currently store service pro¯les using a relational DBMS. This enables a
certain °exibility, but does not permit to take advantage of ontology-aware
storing systems. We assumed also that all the service pro¯les and the user requests
refer to the same set of ontologies, and that no alignment among ontology terms
is required.</p>
          <p>Nevertheless, the results of our preliminary test, conducted using OWL-S
pro¯les available at http://projects.semwebcentral.org/, are encouraging.
They show that our proposal for the service discovery and contracting
problem is a viable solution, with the advantages of o®ering a powerful yet simple,
declarative language for expressing service policies.</p>
          <p>
            In the future, we intend to run a more comprehensive comparison with other
solutions, by considering both expressive power and computational performance.
We also plan to extend our application by providing support to other service
description languages, such as WSMO, SAWSDL and WSMO-Lite. Another
research direction we intend to pursue regards the integration between rules and
ontologies.This is perceived to be an important issue by the whole Semantic Web
community. Some initial work in this direction is presented in [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]. Finally, we are
interested in encoding SRE rules using emerging standards for rule interchange
such as the Rule Interchange Format (RIF) and its Framework for Logic Dialects
(RIF-FLD).
          </p>
        </sec>
        <sec id="sec-6-4-3">
          <title>Acknowledgements</title>
          <p>This research has been partially supported by the Italian MIUR PRIN 2007
project No 20077WWCR8, \Le Forme di Correlazione tra Italian Style, Flussi
di Turismo e Trend di Consumo del Made in Italy", and by the Italian FIRB
project TOCAI.IT. The prototype framework has been partially developed by
F. Succi, M. Cavina, L. Acerbo and D. Pierangeli during their MEng project.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Alberti</surname>
          </string-name>
          et al.
          <article-title>Exploiting semantic technology in computational logic-based service contracting</article-title>
          . Submitted to SWAP'
          <volume>08</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Alberti</surname>
          </string-name>
          et al.
          <article-title>Web service contracting: Speci¯cation and reasoning with SCIFF</article-title>
          .
          <source>In Proc. ESWC</source>
          <year>2007</year>
          :
          <volume>68</volume>
          {
          <fpage>83</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>M.</given-names>
            <surname>Alberti</surname>
          </string-name>
          et al.
          <article-title>Veri¯able agent interaction in abductive logic programming: the SCIFF framework</article-title>
          .
          <source>ACM TOCL</source>
          ,
          <volume>9</volume>
          (
          <issue>4</issue>
          ), Article 29,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Kakas</surname>
          </string-name>
          et al.
          <article-title>Abductive Logic Programming</article-title>
          .
          <source>Journal of Logic and Computation</source>
          ,
          <volume>2</volume>
          (
          <issue>6</issue>
          ):
          <volume>719</volume>
          {
          <fpage>770</fpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>M.</given-names>
            <surname>Kifer</surname>
          </string-name>
          et al.
          <article-title>A logical framework for web service discovery</article-title>
          .
          <source>In Proc. Semantic</source>
          Web Services:
          <article-title>Preparing to Meet the World of Business Applications</article-title>
          ,
          <string-name>
            <surname>ISWC</surname>
          </string-name>
          <year>2004</year>
          Worshop.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>S. U. Knowledge</given-names>
            <surname>Systems</surname>
          </string-name>
          .
          <article-title>Knowledge interchange format</article-title>
          . http://ksl.stanford. edu/knowledge-sharing/kif/.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>R. A.</given-names>
            <surname>Kowalski</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Sadri</surname>
          </string-name>
          .
          <article-title>From logic programming towards multi-agent systems</article-title>
          .
          <source>AMAI</source>
          ,
          <volume>25</volume>
          (
          <issue>3</issue>
          /4):
          <volume>391</volume>
          {
          <fpage>419</fpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Martin</surname>
          </string-name>
          et al. http://www.daml.org/services/owl-s/.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>S. A.</surname>
          </string-name>
          <article-title>McIlraith et al</article-title>
          .
          <article-title>Semantic web services</article-title>
          .
          <source>IEEE Int. Sys.</source>
          ,
          <volume>16</volume>
          (
          <issue>2</issue>
          ):
          <volume>46</volume>
          {
          <fpage>53</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>M. Paolucci</surname>
          </string-name>
          et al.
          <article-title>Semantic matching of web services capabilities</article-title>
          .
          <source>In Proc. ISWC</source>
          <year>2002</year>
          :
          <volume>333</volume>
          {
          <fpage>347</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>11. Pellet reasoner. http://pellet.owldl.com/.</mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Ragone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. D.</given-names>
            <surname>Noia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. D.</given-names>
            <surname>Sciascio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Donini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Colucci</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Colasuonno</surname>
          </string-name>
          .
          <article-title>Fully automated web services discovery and composition through concept covering and concept abduction</article-title>
          .
          <source>Int. J. Web Service Res.</source>
          ,
          <volume>4</volume>
          (
          <issue>3</issue>
          ):
          <volume>85</volume>
          {
          <fpage>112</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>D.</surname>
          </string-name>
          Roman et al.
          <article-title>Web service modeling ontology</article-title>
          .
          <source>Applied Ontology</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <volume>77</volume>
          {
          <fpage>106</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. W3C.
          <article-title>Semantic web rule language</article-title>
          . http://www.w3.org/Submission/SWRL/, May
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>