=Paper= {{Paper |id=Vol-316/paper-1 |storemode=property |title=Two-phase Semantic Web Service Discovery Method for Finding Intersection Matches using Logic Programming |pdfUrl=https://ceur-ws.org/Vol-316/Paper-1.pdf |volume=Vol-316 |authors=Laszlo Kovacs,Andras Micsik and Peter Pallinger |dblpUrl=https://dblp.org/rec/conf/ecows/KovacsMP06 }} ==Two-phase Semantic Web Service Discovery Method for Finding Intersection Matches using Logic Programming== https://ceur-ws.org/Vol-316/Paper-1.pdf
Two-phase Semantic Web Service Discovery Method for Finding Intersection
                   Matches using Logic Programming

                              László Kovács, András Micsik, Péter Pallinger
                                               MTA SZTAKI
                              Computer and Automation Research Institute
                                  of the Hungarian Academy of Sciences
                                    Department of Distributed Systems
                               {laszlo.kovacs, micsik, pallinger}@sztaki.hu


                      Abstract                             various tools and editors support the creation of
                                                           semantic descriptions for existing Web Services. The
   Discovering Web Services based on logical               resulting ontologies, goals and Semantic Web Services
matching of capabilities is a new requirement for          are made accessible in a distributed registry. WSML
Semantic Web Services which cannot be solved with          [14] was chosen as the language for describing these
traditional information retrieval (IR) techniques.         semantic entities. The runtime phase involves
Building fast and precise logical discovery engines is     discovery, selection and execution of the semantic web
an ongoing challenge of the Semantic Web community.        services. The runtime environment also collects quality
This paper presents the discovery engine implemented       of service data for semantic web services which are fed
for the INFRAWEBS project which combines a                 back to the phase of discovery and selection.
traditional IR-based pre-filtering step and a logic-
based matching implemented in Prolog. The logic-           1.2. Discovery
based step of discovery uses a novel technique based
on Prolog-style unification of terms. This approach            The discovery engine in our scenario receives a
performs well in finding matches of intersection type,     WSML goal as input and it has to provide a list of
and it also provides possibilities to compare, rank and    matching Semantic Web Services possibly coupled
explain these matches.                                     with additional information that supports ranking and
                                                           selection.
1. Introduction                                                Discovery implementation has three steps: a pre-
                                                           filtering step, a step for logical matching and a
   Using Semantic Web Services is often broken into        finalizing step to prepare the result.
the main steps of discovery, selection and execution.          The aim of the pre-filtering step is to narrow the list
Discovering Web Services based on logical matching         of candidates using traditional text-processing
of capabilities is a new requirement for Semantic Web      (keyword matching) algorithms.
Services which cannot be solved with traditional               The logical matching is performed on the
information retrieval (IR) techniques. Building fast and   precondition, assumptions, postcondition and effects of
precise logical discovery engines is an ongoing            the goal and service.
challenge of the Semantic Web community.                       In the final step the list of matching services are
   In this paper we present the discovery engine           enhanced with QoS data based on past execution
developed in the INFRAWEBS project of FP6. The             experience. QoS data is collected by another module of
INFRAWEBS project develops an ICT framework,               the framework, and can be used for service selection.
which enables software and service providers to                The rest of the paper describes the discovery
generate and establish open and extensible                 component implemented for the INFRAWEBS project
development platforms for Web Service applications.        and compares it with related work.
The INFRAWEBS project divides the life-cycle of
Semantic Web Services in two different phases: Design
Time and Runtime. During the Design Time phase
2. Keyword-based discovery                                  3. Logical matching
    Each semantic web service and goal capability              The WSMO deliverable on discovery [11] defines
definition may be seen as a structured text document.       semantic matching as:
This gives us the possibility for a preliminary selection               W , G , O |= ∃x ( g ( x ) ∧ ws ( x ))
of Web Services using classical keyword-based
discovery, but at the level of ontology concepts.           where W is the definition of the web service, G is the
    The WSMO deliverable on discovery [11] suggests         definition of the goal, O is a set of ontologies to which
the keyword-based approach to be used in conjunction        both descriptions refer, g(x) and ws(x) are the first-
with the keywords given by capability editors and           order formulae describing the effects of the goal and
listed as non-functional properties (metadata about web     web service respectively. In this case only the desired
services). However, the correctness and quality of such     and offered outcomes are matched, and the meaning of
natural language descriptions are hard to ensure and        the match is: there exists an outcome offered by the
control. Empty or faulty descriptions make services         service which is requested by the user. This definition
inaccessible, even when their capabilities are defined      can be further elaborated into various types of matches:
correctly. Multilinguality of metadata is another             • Exact match: the possible outcomes of the service
problem of this solution.                                       and the goal are equivalent; the service does
    Our approach is different from the WSMO idea,               exactly what the user desires.
because here the axioms are indexed instead of the
non-functional properties. The proper formulation of          • Subsumption match: each possible outcome of the
the axioms is needed for the correct use of Semantic            service is accepted by the goal, i.e. all service
Web Services, therefore the quality of the index data is        offers are acceptable by the user, though there
implicitly ensured.                                             might be desires not covered by the service.
    It is obvious that the result of keyword-based
                                                              • Plugin match: each possible outcome requested
discovery may contain semantically non-matches (e.g.
                                                                by the goal can be produced by the service, i.e. all
the capability for selling tickets everywhere except to
                                                                user requests can be satisfied by the service,
Budapest). The key criterion is not to filter out any
                                                                although the service may provide additional, non-
good semantic match in this phase. In [9] we show that
                                                                matching outcomes as well.
by simple conditions on the ontology structure this can
be guaranteed. For example, in case of a single               • Intersection match: there is at least one service
homogeneous set of ontologies, the description of each          outcome accepted by the user (goal).
relevant capability requires the use of certain concepts;
therefore the goal and service capabilities must both       This section details the practical problems of semantic
contain these concepts.                                     matching. Theoretically both Description Logic and
    The advantage is the very good response time            Logic Programming (the most popular and available
compared to logic reasoning, while the disadvantage is      variations of logic in this area) are capable to find all
that logically incorrect results are also collected.        the types of matches listed above. However, the
Therefore, this operation is ideal for a so-called pre-     assumption based on our real-life scenarios is that the
filtering, to reduce the number of web services for         majority of matches will be of type intersection.
which the time-consuming logical matching has to be            A method for finding intersection matches using
calculated.                                                 Description Logic is described in [18], but its
    The Organisational Memory (OM) component of             application in case of long and complex capability
the INFRAWEBS framework is specialized on textual           descriptions is problematic. For example, it requires
queries. Its main role is to index all available textual    that unrelated concepts are defined as disjoint pair
documents with respect to web services, including           wise. Overall, the matching process needs complex DL
WSDL and WSML. With its indexes OM helps the                modelling which is hard to maintain. Using
creators of Semantic Web Services to find relevant or       Description Logic it is decidable whether there is a
similar information for the semantic modelling of web       common solution for the goal and the service, but it
services. In the INFRAWEBS framework the                    cannot tell what the solution is. More details on our
functionality of OM is used in the pre-filtering step,      experiments with using Description Logic for service
but another version is implemented using Apache             matching are published in [10].
Lucene (Apache’s text search engine library) as well.          Logic Programming can tell what the common
                                                            solution is if it is able to find it. Let's take two very
                                                            simple example conditions:
  Goal:                                                      based modelling approach [11], it is clear that there can
   Ticket from Wien to Graz                                  be tickets fulfilling all conditions. But in the world of
   Ticket date 06.06.2006.                                   logic, there is no implication in either direction
                                                             between the goal and web service. The goal is
  Webservice:                                                specialized in details of desired service, while the web
   Ticket from X to Y                                        service is specialised in details of service delivery.
      where X and Y are in Austria                              A further problem is that both goal and service
   Ticket issued by Austrian Air                             descriptions may vary in the level of detail. For
                                                             example, sometimes the destination or the date is
This example roughly corresponds to the WSMO                 omitted, sometimes more conditions are given, for
Virtual Travel Agency use case [17], and also agrees         example to have a business class ticket.
with the INFRAWEBS project use cases [6].
   For humans this seems a perfect match. If we model
the outcome with a set of tickets according to the set-


             Goal                                                          Web service
                                               Matching, X,Y unified
                                               with Wien, Graz
             Ticket from Wien to Graz                                      Ticket from X to Y
                                                       True for X=Wien
                                                                           X is in Austria
                                                       True for Y=Graz
                                                                           Y is in Austria
                                                    No contradiction
                                                                          Ticket issued by Austrian Air
                                                   No contradiction
             Ticket date 06/06/2006

                        Figure 1: Schematic example of matching with unification


3.1. Semantic matching using Logic                           clause, and (C11 and C12 and … C1n) a clause set. A
Programming                                                  DNF is true if at least one clause set is true. A DNF
                                                             clause set is true if all its clauses are true. This means
   Our solution applies the unification facility of          that a clause set provides a complete solution if all its
Prolog engines. If we find matching terms within the         clauses are true.
goal and the web service, we can use this information           The pre-processing steps needed to create the
to decide on the matching. A schematic explanation of        infrastructure for matching:
unification can be found in Figure 1. The goal in the           • Ontologies are converted to Prolog. Special
figure describes a request for a ticket from Wien to              predicates are used to represent subconcept,
Graz for a given date, while the service advertises               attribute and attribute type relationships within
Austrian Air flight tickets within Austria. The ticket            concepts.
departure and destination facts are unified in the goal
and the web service, with the consequence that X                  o Web services are converted to DNF with the
becomes Wien and Y becomes Graz. After that,                        internal steps of:
whether X and Y are in Austria can be decided. The                o Replacing logical constructs such as
last two facts have no correspondence on the other                  implication or equivalence with an equivalent
side, therefore they cannot generate any contradiction,             form using only conjunction, disjunction and
and they can be silently ignored.                                   negation,
   In order to reach a comparable list of terms some
kind of normalized form is needed, of which the                   o Conversion into Negation Normal Form
Disjunctive Normal Form (DNF) was the most                          (NNF),
suitable, as it represents the set of simple capabilities
                                                                  o Elimination of forall and exists constructs,
(desires or effects). The DNF consists of clause sets in
                                                                    skolemization,
the form of (C11 and C12 and … ) or… (Cm1 and Cm2
and …), where Cij are atomic terms. We call Cij a
     o Moving disjunctions to the outermost level to       The pseudo-code shows a simplified version of this
       reach DNF.                                          matching algorithm:
  • DNF clause sets are converted to Prolog.               % both inputs are lists of clauses
    Membership molecules of WSML are converted             match(Goal, Webservice) :-
    to type/2 predicates and hasValue molecules are         % perform possible unifications
    represented with attr/3 predicates.                     unify(Goal, Webservice, UnifiedClauses),
                                                            % classify each clause/term in goal as
An example of generated Prolog clauses is given for a       % matched/failed/ignored
service providing flights from Innsbruck to Wien:           checkClauses(Goal, UnifiedClauses,
                                                                 MatchedInGoal, IgnoredInGoal,
type(V_FlightPrefs,                                              FailedInGoal),
flightBookingPreferences),                                  % classify each clause in service as
attr(V_FlightPrefs, start, V_Start),                        % matched/failed/ignored
=(V_Start, innsbruckAirport),                               checkClauses(Webservice, UnifiedClauses,
attr(V_FlightPrefs, end, V_End)                                  MatchedInService, IgnoredInService,
=(V_End, wienAirport),                                           FailedInService),
attr(V_FlightPrefs, class, V_Class),                        % decide on matching
type(V_Buyer, buyer),                                       isMatching(MatchedInGoal, IgnoredInGoal,
attr(V_Buyer, contactInformation,                                      FailedInGoal),
V_BuyerContact),                                            isMatching(MatchedInService,
attr(V_BuyerContact, emailaddress,                               IgnoredInService, FailedInService).
V_BuyerEmail),
type(V_BuyerEmail, string)                                 unify([G|Goal],Webservice,M2) :-
                                                             (if member(G, Webservice) then
   When the system is initialized, the following steps                       M2=[G|M1] else M2=M1),
are needed for discovery with a given goal:                  unify(Goal,Webservice,M1).

  • The goal is converted first to DNF and then to         unify([],_,[]).
    Prolog the same way as web services, the result is
                                                           checkClauses([Clause|ClauseSet],
    a Prolog list of clause sets for each condition in
                                                                    UnifiedClauses,
    the goal capability,                                            Matched2, Ignored2, Failed2) :-
  • The matching algorithm is run: an attempt is            check(Clause, UnifiedClauses, Status),
                                                            (if Status=m then
    made to match each web service with the goal,
                                                                Matched2=[Clause|Matched2] else
  • The result is a list of matching services which is          Matched2=Matched1),
    ranked before it is sent to the user.                   (if Status=i then
                                                                Ignored2=[Clause|Ignored2] else
   As part of the matching algorithm, in order to match         Ignored2=Ignored1),
the postconditions of the web service and the goal we       (if Status=f then
need to find a matching between the DNF clause sets             Failed2=[Clause|Failed2] else
                                                                Failed2=Failed1),
representing postconditions. The steps to be performed
                                                            checkClauses(ClauseSet, UnifiedClauses,
for each pair of clause sets (one from the goal and one              Matched1, Ignored1, Failed1).
from the web service) are:
                                                           checkClauses([],_,[],[],[]).
  • Unification of clauses in the clause sets: two
    clauses are unified if they have the same                  The detailed explanation of the algorithm is given
    signature, then corresponding variables in the two     below. First, all possible unifications are made by the
    clauses are unified,                                   unify predicate. Second, the algorithm has to examine
  • Labelling each clause: matched, failed or ignored,     all clauses in the clause set with the effects of
                                                           unifications made. If the clause yields true value after
  • Decision of match or failure,                          the unification, it is labelled as matched. If the clause is
  • Generation of matching result (with lists of failed,   not true, but all its variables are bound, it is labelled as
    ignored and matched facts attached).                   failed. False clauses with free variables mean that the
                                                           condition they represent is not specified in the other
                                                           clause set, therefore they are labelled as ignored.
                                                               Finally, the algorithm has to decide whether the
                                                           goal and the web service match each other. If there is a
failed clause, it means a disagreement of the goal and       matched in the goal, and therefore the service gets a
service, so there is no match. If there are only matched     higher position in the ranked result list.
and ignored clauses, then a little heuristics is needed to       The presented algorithm can thus handle user
decide about the match. As a primary rough heuristics        preferences and provide a ranking based on it, if there
we say there is a match if the number of matched             is a way to differentiate between clauses modelling
clauses is greater than the number of ignored clauses.       core postcondition and clauses modelling user
    In fact this is a problem of WSML capabilities: it is    preferences in the goal. Currently, we see the only
very hard to tell which variables represent essential,       solution to use axioms completely separated from the
basic service issues and which variables are just to help    goal to express user preferences.
describe conditions. Figure 1 shows two facts at the             For matching preconditions and assumptions we can
bottom which can be safely ignored. It can also happen       use a simpler matching mechanism as expressions have
that the service and the goal are totally different except   to be fully enforced there: a clause is either matched or
they share the conditions of payment or confirmation         failed. Facts from the goal are inserted into the
(for example). In this case the matching result will not     knowledge base, and the clause sets (in DNF) of the
contain failed facts, just a lot of ignored clauses (the     service precondition and assumption are checked one-
essential service requested) and a lot of matched            by-one. In this way not only the failure is detected but
clauses (the not so important buying conditions). If         also the failing clauses can be identified and presented
there are no failed facts, the decision of matching          to the user.
cannot be completely sure. Conventions are suggested
to by-pass this shortcoming. One such agreement can          3.2. Implementation and Performance
be to define a basic service outcome or service class in
each postcondition or effect.                                   The matching algorithm was implemented in
    The list of matching services should be ranked to        Prolog, and was tested with SWI-Prolog. The
provide guidance for the user in selection. The usual        discovery engine is written in Java, which initializes
solution is to rank the list by some kind of quality         the Prolog implementation, and feeds the WSML
aspect or by the categories of exact, subsume, plugin        descriptions for ontologies and web services into it.
and intersection match. The algorithm introduced here        Then, for each discovery request only the goal is
provides the new possibility of ranking based on the         converted into Prolog and the matching algorithm is
number of ignored clauses. Clauses can be ignored on         run.
both the service and the goal side. Clauses ignored on          Further software components used in the
the goal side means certain conditions are not defined       implementation are wsmo4j for parsing WSML files
in the service (e.g. departure date, comfort seats), so a    and Interprolog for making Prolog queries from Java.
lower number of ignored facts mean more precise                 The matching algorithm has the following costs for
fulfilment of user desires. Clauses ignored on the           each step (where goal has L clauses and service has M
service side means something additional which is not         clauses):
specified in the goal (e.g. more travel information,
company data, etc.).                                           • Unification of clauses: at most L*M operations,
    The judgement of these is highly subjective, but a         • Checking each clause: L+M operations,
lower number of ignored facts may also mean a more
accurate match here. In our implementation we rank by          • Decision of match or failure: constant number of
the sum of ignored facts in both service and goal.               operations.
Another possible approach is to rank first by the               So the matching of one goal clause set with one
number of ignored facts in the goal, and then by the         service clause set takes approximately (L+1)*(M+1)
number of ignored facts in the service.                      operations. If we take the natural assumption that the
    Modelling user preferences and added value in            number of clauses has an upper limit m in the system
discovery is an emerging new problem in this area. The       (an upper limit for L and M), and the maximal number
presented matching algorithm can handle the added            of clause sets representing a service or a goal has an
value in requests and offers as demonstrated in the          upper limit c, we get the estimation that the order of
following example. The goal postcondition declares           complexity of the discovery algorithm is linear with
that the flight is business class. If the service says       respect to the number of services in the system.
nothing about the class, then this requirement is               The performance tests were based on the project use
ignored by the matching algorithm. If the service offers     case; a frequent flyer system offering bonus flights,
only economy class, then the matching fails. If the          hotel stays and car rentals. The test environment
service declares that it can provide both economy and        contained 18 ontologies, 25 different web services and
business class tickets, then the corresponding fact is
10 different goals. In order to get more services for the      The test bed is available as an online service of
tests, multiple copies were generated from each             SZTAKI, it can be reached from the demonstrations
service.                                                    page of the INFRAWEBS project website:
   The Prolog matcher on a 1.6 GHz P4 desktop PC            http://www.infrawebs.eu.
provided the following response times:
     250 services:     1.82s    (.00728s/ws)                Related work
     1000 services:    7.47s    (.00747s/ws)
     4000 services:    32.94s   (.00823s/ws)                    The early experiments to implement matching
     8000 services:    65.63s   (.00820s/ws)                algorithms with Logic Programming are mostly done
                                                            using Flora-2, a reasoner supporting F-logic
    In the first experiment the number of services was      [19][20][21]. The syntax of the Flora-2 language is
25, and the per service discovery time (the total time      very close to WSML, which alleviates language
needed for discovery measured in the Java VM divided        conversion.
by the number of services checked for matching)                 In [19] and [20] the matching is based on the
varied between 12 and 103 milliseconds, depending on        discovery model in Transaction Logic [11]. After
the complexity of the goal capability. In our next          precondition matching, the service postcondition is
experiment the number of web services was increased         assumed to be true (inserted into the knowledge base),
to 250 in the same environment. The per service             and the fulfilment of goal postcondition is checked.
discovery time in the second experiment varied              Finally, the inserted facts are retracted from the
between 12 and 129 milliseconds.                            knowledge base, and the matching of next service can
    Overall, the response time perceived by the user is     be started. The matching is done in the traditional way,
between 3 and 25 seconds. This is acceptable for the        checking the truth value of the goal postcondition. This
project as the pre-filtering step is assumed to reduce      leads us to the matching problem detailed in section 3,
the number of services in this second step of discovery     namely, the postcondition of a matching service does
to the magnitude of 2-300 services.                         not imply the goal postcondition. This solution works
    The following conclusions can be drawn from the         if goals are prepared by parameterizing goal templates,
response times:                                             but it does not support custom goals and the discovery
  • The native Prolog implementation needs only a           functionality needed for service composition.
    couple of milliseconds to match a web service               There are several proof-of-concept experiments for
    and a goal. This is scalable until the magnitude of     SWS discovery using WSMO, but relatively few
    1000 services (result within 5 seconds), which is       complete implementations. Della Valle et al. have
    satisfying if we consider the pre-filtering step as     created a complete discovery solution based on
    well.                                                   mediators [21]. It is used in Glue, a lightweight
                                                            implementation of their suggested execution
  • There is a bottleneck in the communication              framework for Semantic Web Services. Glue uses pre-
    between Java and Prolog. We will experiment             defined goals (goal templates), which can be
    with other possible communication methods.              parameterized by the user for her actual request. A
                                                            wgMediator [14] is used to find matching web services
  • Little effort was spent on code optimization, and       for a specific goal. Therefore, the (simplified) steps of
    we think the speed of discovery can still be            discovery are:
    increased.
                                                              • Parameterize a pre-defined goal,
   Currently there is little information available about
                                                              • Find the wgMediator for that pre-defined goal,
the performance of other discovery implementations.
We think the proposed and implemented solution is             • The wgMediator returns matching services for the
comparable in effectiveness and correctness to the few          goal.
other approaches. The solution can be used generally,       The advantages of this approach are:
and it is also able to provide some explanation of the
match or failure, which can be presented to the user.         • Efficient solution which is also easy to
   In order to provide an interface for testing and             implement,
experimenting, a web-based test bed has been                  • Straightforward support for mediation between
implemented for the discovery component. This test              heterogeneous ontologies using ooMediators and
bed includes not only the software but example data as          ggMediators.
well.
The disadvantages of this approach are:                     INFRAWEBS project: logic-based matching is
                                                            expensive, and it is needless to run the expensive
  • Goals can only be created based on pre-defined          algorithms on services which have no chance to match
    goals. If the user’s desire does not match any of       with the goal. The concepts are classified into concept
    the pre-defined goals, she has no choice to find        groups, and services and goals are associated with
    matching services,                                      concept groups based on concepts mentioned in the
  • The maintenance of pre-defined goals needs              capability. Keys are calculated for both services and
    continuous effort from the operators of the             goals which summarize the concept groups used in the
    discovery engine. If composite goals are                capability descriptions.
    supported, the number of pre-defined composite             According to the authors the necessary condition for
    goals to be created and maintained may reach a          a service to match with a goal is that its description at
    huge number.                                            least must contain all concepts related to those
OWL-S is probably the most known approach                   specified in the goal. We saw in the previous sections
currently for Semantic Web Services. In OWL-S a             that this assumption for matching is not necessarily
service can be specified with inputs and outputs, but       true. For example, a goal may contain date constraints
also with pre- and postconditions. The typical              while services usually say nothing about dates. The
discovery solutions using OWL-S [22][23] match the          creators of the system admit that for partial
user’s input with the service input and the service         matchmaking some concepts has to be discarded from
output with the user’s desired outcome. This means          the goal in the filtering phase, and GUI tools would
that all concepts required by the service as input need     help users in doing this. As a comparison of this
to match with a concept provided as user input, and all     approach and INFRAWEBS discovery we outline the
concepts required by the user as output match with a        following:
concept in the service output. The schematic process of       • Both projects use a filtering phase before the
such discovery contains the following steps:                    logic-based matching, but the filtering rules used
  • Locate services with matching input and output              in INFRAWEBS are less restrictive.
    o For each input concept of the service, find a           • QoS data is used to define criteria for matching in
      matching input concept provided by the user               this work, while INFRAWEBS uses QoS data for
    o For each output concept required by the user,             ranking the list of matching services.
      find a matching output concept of the service
The advantages of this approach are:
                                                            Conclusion
  • Simple matching algorithm, required reasoning is           In this paper we have presented the implementation
    minimal                                                 of the Discovery Component of the SWS environment
  • Fast implementations are possible using indexed         created by the INFRAWEBS project.
    search                                                     The matching algorithm selected for discovery
                                                            combines a traditional IR-based pre-filtering step and a
    The disadvantage of this approach is that matching      logic-based matching implemented in Prolog. The
is based solely on inputs and outputs, and the effects of   logic-based step of discovery uses a novel technique
service execution are ignored, so there is no guarantee     based on Prolog-style unification of terms. This
that the matching service has the desired effect. (As an    approach is able to find intersection and other types of
example: a service with an input of type document and       service matches, and also provides possibilities to
an output of type document might perform rather             compare, rank and explain service matches (or non-
different tasks on the document.)                           matches). The performance of the solution is
    In [24] a peer-to-peer environment is described for     satisfactory within the project scenario. In the lack of
WSMO-based semantic discovery. The system                   performance details of other solutions it is hard to
(supported by the DIP project) contains several             compare the presented implementation with other
novelties, such as decentralized discovery and QoS-         discovery engines.
based matching. Here we concentrate on the method of           A test bed is available online for the demonstration
discovery. The paper provides minimal information           of the approach. It can be reached from the
about the logic-based matching applied in the system.       demonstrations page of the INFRAWEBS project
Logic-based matching is preceded by a filtering step,       website.
when irrelevant services are filtered out, and the logic-
based matching is only applied on a small set of
services. The rationale is similar to that of the
Acknowledgement The presented work was supported                 [15] Web Service Modeling Ontology Primer. W3C Member
by the INFRAWEBS project funded by the European                  Submission 3 June 2005,
Commission.                                                      http://www.w3.org/Submission/WSMO-primer/
                                                                 [16] WSMX Deliverable D10 v0.2, Semantic Web Service
                                                                 Discovery. WSMX Working Draft October 3, 2005
References                                                       [17] D3.3 v0.1 WSMO Use Case "Virtual Travel Agency".
                                                                 WSMO Working Draft 19 November 2004,
[1] Alejandro López, Jesús Gorroñogoitia. Deliverable            http://www.wsmo.org/2004/d3/d3.3/v0.1/
D11.1.2 INFRAWEBS Software Development Process.                  [18] Lei Li and Ian Horrocks. A software framework for
[2] Alejandro López, Jesús Gorroñogoitia. DS2 Activity           matchmaking based on semantic web technology. In
definition. INFRAWEBS Document.                                  Proceedings of the 12th International Conference on the
[3] Alejandro López. DD2 Component interface description.        World Wide Web, Budapest, Hungary, May 2003.
INFRAWEBS Document.                                              [19] Michael Kifer, Ruben Lara, Axel Polleres, Chang Zhao,
[4] Chris Preist. A conceptual architecture for semantic web     Uwe Keller, Holger Lausen and Dieter Fensel. A Logical
services. In Proceedings of the International Semantic Web       Framework for Web Service Discovery. Proceedings of the
Conference 2004 (ISWC 2004), November 2004.                      ISWC 2004 Workshop on Semantic Web Services: Preparing
[5] Web Services Glossary. W3C Working Group Note 11             to Meet the World of Business Applications, Hiroshima,
February 2004. http://www.w3.org/TR/2004/NOTE-ws-                Japan, November 8, 2004. CEUR Workshop Proceedings,
gloss-20040211/                                                  ISSN 1613-0073, Vol-119.
[6] O. López, E. Riceputi, A. López, C. Pezuela, Y.              [20] WSML Deliverable D5.1 v0.1 Inferencing Support for
Gorroñogoitia. INFRAWEBS Deliverable 10.1-2-3-4.1                Semantic Web Services: Proof Obligations. WSML Working
Requirement Profile 1 & Knowledge Objects. 2005 Nov 10.          Draft – August 2, 2004
[7] Ettore Riceputi. Deliverable D10.5-6-7.2 Requirement         [21] Emanuele Della Valle, Dario Cerizza, Irene Celino. The
Profile 2 & Knowledge Objects                                    mediators centric approach to Automatic Web Service
[8] J. Scicluna, T. Haselwanter, A. Polleres. INFRAWEBS          Discovery of Glue. First International Workshop on
Deliverable D7.1-2.1 Reduced Rule Base, QoS Metrics,             Mediation in Semantic Web Services: MEDIATE 2005,
Running SWS-E and QoSBroker. 2005 Aug 15                         Amsterdam, Netherlands, December 12 2005
[9] Cs. Fülöp, L. Kovács, A. Micsik, Z. Tóth, G. Agre, A.        [22] Massimo Paolucci, Takahiro Kawamura, Terry R.
Polleres. INFRAWEBS Deliverable D6.1-2.1: Specification          Payne, Katia Sycara. Semantic Matching of Web Services
& Realisation User-Interface Agent, Discovery Agent. Nov         Capabilities. International Semantic Web Conference 2002.
2005.                                                            In: Lecture Notes in Computer Science, Volume 2342, Jan
[10] A. Micsik, L. Kovács, Z. Tóth, P. Pallinger, J. Scicluna.   2002, Page 333
INFRAWEBS Deliverable D6.2.2 – Specification &                   [23] Michael C. Jaeger, Gregor Rojec-Goldmann, Gero
Realisation of the Discovery Component. Aug 2006.                Mühl, Christoph Liebetruth, Kurt Geihs. Ranked Matching
[11] D5.1v0.1 WSMO Web Service Discovery. WSML                   for Service Descriptions using OWL-S. In Kommunikation
Working Draft 12 11 2004,                                        in verteilten Systemen (KiVS 2005), Informatik Aktuell,
http://www.wsmo.org/2004/d5/d5.1/v0.1/20041112/                  Kaiserslautern, Germany, February 2005. Springer.
[12] Ruben Lara: KnowledgeWeb Deliverable 2.4.2                  [24] Le-Hung Vu, Manfred Hauswirth, Fabio Porto, Karl
Semantics for Web Service Discovery and Composition.             Aberer. A Search Engine for QoS-enabled Discovery of
[13] A.J. Bonner and M. Kifer. A logic for programming           Semantic Web Services. International Journal of Business
database transactions. In J. Chomicki and G. Saake, editors,     Process Integration and Management, 2006, to be published.
Logics for Databases and Information Systems, chapter 5,
pages 117-166. Kluwer Academic Publishers, March 1998.
[14] D16.1v0.3 The Web Service Modeling Language
WSML. WSML Working Draft 5 October 2005,
http://www.wsmo.org/TR/d16/d16.1/