<!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>Look Ma, No Hands: Supporting the semantic discovery of services without ontologies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>George A. Vouros</string-name>
          <email>georgev@aegean.gr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fragkiskos Dimitrokallis</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Konstantinos Kotis</string-name>
          <email>kotis@aegean.gr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AI-Lab, University of the Aegean</institution>
          ,
          <addr-line>Karlovassi, Samos</addr-line>
          ,
          <country country="GR">Greece</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The work reported in this article aims to the discovery of WSDL specifications that are assessed to match to specific data requirements1: Going beyond the syntactic level, we aim at exploiting the human-intended semantics of WSDL specifications At the core of the proposed method lies the Latent Semantic Indexing (LSI) method, which automatically maps data requirements specified in a query to part elements of WSDL input and output messages. We study extensively the performance of the proposed method for different types of experiments' configurations. Experiments have been performed over an extended number of services for various domains, with very encouraging results.</p>
      </abstract>
      <kwd-group>
        <kwd>Latent Semantic Analysis</kwd>
        <kwd>Semantic discovery of services</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        The infrastructure for Web services is based mostly on standards such as UDDI [
        <xref ref-type="bibr" rid="ref16 ref4">4,
16</xref>
        ], SOAP [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and WSDL [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. WSDL (Web Service Description Language) is an
XML-based language for the specification of web services. WSDL is mainly focusing
on operational and syntactic details regarding the implementation and execution of
Web services. The lack of explicit semantics in WSDL makes services’ specifications
insufficient to satisfy the requirements for effective Web service ‘manipulation’ (e.g.
discovery, composition, invocation etc.) tasks, forcing the relevant mechanisms to be
based on keyword matches. While we may relate different types of semantics to the
web services (protocol semantics, execution semantics, non-functional semantics, e.g.
security, QoS, and others), we can distinguish two widely recognized types: (a) Data
semantics (introducing the semantic signature of services i.e. semantics of
input/output messages of service operations), (b) Functional Semantics (function of
operations and of the service itself). This paper focuses on data semantics, which is
generally accepted to be one of the most critical aspects regarding services’ semantic
description.
      </p>
      <p>
        The key technology to the “semantic discovery” (and thus to the “semantic
matchmaking”) of Web services is ontologies. The key idea here is that the use of
1 This work is supported partially by the European Commission project Grid4All under grant
number FP6, project IST-Grid4All-2006-034567
ontologies for the specification of web services shall support agents to exploit the
semantics of services via logic-based inference mechanisms, gaining flexibility to the
service manipulation tasks. Three main approaches have been proposed for bringing
semantics to web services: OWL-S [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], WSDL-S [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and WSMO [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. However, given
a) the use of WSDL for the specification of existent services, as well as the use of
UDDI registries, b) the lack of commonly agreed domain ontologies, c) the lack of
ontologies for specific domains, and d) the high cost of semantically annotating
WSDL specifications by engineers, we have been motivated towards the approach
proposed in this paper.
      </p>
      <p>Focusing on data semantics, the aim of this paper is to support the semantic
matchmaking of WSDL specifications, by exploiting the human-intended semantics
of specifications, without the use of ontologies. Towards this target, our approach
exploits the human-intended semantics of WSDL input/output messages and parts
captured mainly via commentary and descriptive textual information. Such textual
information regarding WSDL elements may be “fetched” from the service code, or
they may be given by the service providers during service advertisement. This
information is being exploited for the computation of the position that WSDL
specifications can obtain in a semantic space, where the data semantics of WSDL
specifications are expressed by means of a number of latent features. Given a query
(this is considered to be a specification for the requested service’s data semantics) the
objective of the proposed method is to represent this query using the computed latent
features and find the registered WSDL specifications that are close enough – and thus
similar – to the query, in the semantic space. Doing so, one may consider that these
latent features are the concepts of an ontology, which serve as intermediates for the
matching of WSDL specifications.</p>
      <p>At this point we need to emphasize that although latent features are being used for
expressing the data semantics of requested and advertised services, the lack of
ontologies prohibit logic-based inferences, leading to the inability of the method to
explicitly identify inferred subsumption relations between services’ specifications.</p>
      <p>The rest of the paper is structured in the following way: Section 2 provides the
related work, Section 3 provides a description of the problem and the background
technology, and outlines the matchmaking method. Section 4 presents the
experiments conducted towards evaluating the proposed method and finally, section 5
concludes the paper.</p>
    </sec>
    <sec id="sec-2">
      <title>2 Related Work</title>
      <p>Although several approaches introduce the semantic matchmaking of web services
(e.g. [6, 7, 8, 9, 10 and 12]), most of them require the use of a shared and well-agreed
ontology: Although this constraint may be relaxed by exploiting ontology mapping
techniques, these techniques need to be further enhanced towards their generic
deployment. Furthermore, the difficulties mentioned in Section 1 regarding the
semantic description of web services need to be tackled.</p>
      <p>In this section we emphasize on the approaches that are closely related to the
proposed approach, i.e. to approaches that exploit the content of WSDL
specifications, and/or exploit textual information related to these specifications.</p>
      <p>
        The OWLS-MX matchmaker [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] performs hybrid semantic matching that
complements logic based reasoning with syntactic IR based similarity metrics for
services specified in OWL-S. OWLS-MX aims to exploit the implicit semantics of
any part of OWL-S service description by representing it as a weighted
categoryindex term vector. Index terms are stemmed lexical items from a shared minimal
vocabulary. Concerning the similarity metrics, authors study four different
tokenbased string metrics: the cosine, the loss of information, the extended Jacquard and
the Jensen-Shannon information divergence. In contrast to OWLS-MX we go one
step “back”: we deal with WSDL specifications of services signatures, rather than
with their semantic counterparts in OWL-S, aiming to support the content-based
discovery of such specifications to a full extend, rather than in combination to
logicbased approaches. This is a rather hard problem given the scarceness of the
information, the dependency of specifications on the developers’ whim, and the small
size of the textual descriptions/comments. In addition, we aim at retrieving
specifications that match exactly to a query (rather than retrieving specifications that
are merely “neighbors” to the query).
      </p>
      <p>
        Dealing also with WSDL specifications, aiming to address the challenges involved
in searching for web services, authors in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] present Woogle, a web-service search
engine. In addition to simple keyword searches, Woogle supports similarity search for
web services. The key ingredient of the approach is a refinement of the agglomerative
clustering of parameters’ terms in the collection of web services into semantically
meaningful concepts. By comparing the resulting concepts, this work reports good
similarity measures. In contrast to this approach, rather than exploiting parameters’
terms co-occurrences, we aim at exploiting the human-intended meaning of WSDL
input/output messages’ part elements, “describing” them using a number of latent
features, and positioning them in a latent space. This approach, in combination to the
exploitation of services’ textual comments/descriptions, as our experiments show,
proves to be very precise.
      </p>
      <p>
        Another web-service search engine (combining folksonomies and Semantic Web
Services technologies) [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] presents a method for semantic indexing and approximate
retrieval of Web services. It relies on graph-based indexing in which connected
services can be approximately composed, while graph distance represents service
relevance. A query interface translates a user’s query into a virtual semantic Web
service, which in turn is matched against indexed services. The approach is based on
the association of classes (ontology conceptualizations or folksonomy tags) with
WSDL service specifications: Thus it can be considered only as complimentary to our
approach.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], close enough to the approach proposed in this paper, authors discuss a set
of WSDL similarity-assessment methods that can be used in conjunction with the
current UDDI API to support the service-discovery process. This method utilizes the
textual descriptions of the services, the identifiers of WSDL descriptions and the
structures of their operations, messages and types to assess the similarity of two
WSDL specifications. Given only a textual description of the desired service (as a
whole), this approach uses an information-retrieval method to identify and order the
most similar service description files. This step assesses the similarity of the query
(requested-service description) - extended to include semantically similar words
according to WordNet [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] - with the available services. A (potentially partial)
specification of the desired service behavior may further refine discovery by a
structure-matching computation step, exploiting mainly the lexical similarity of the
identifiers. Rather than relying on the lexical appearance of the identifiers, we aim
towards expressing their “meaning” by means of latent features, independently of any
external resource: Then, matches between service signatures are determined based on
semantic matches of WSDL input/output messages and parameters.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3 Service Discovery with Latent Semantics</title>
      <sec id="sec-3-1">
        <title>3.1 Problem specification</title>
        <p>This paper deals with the following problem:</p>
        <p>“Given, (a) a repository R of WSDL specifications and (b) a specification of a
query Q that specifies the signature of the requested service, provide those services in
R that match with Q”.</p>
        <p>As already pointed, we deal only with services’ signatures specified in WSDL (i.e.
with data semantics). More specifically:
- The signature of a service s specifies a set of input/output messages. These
are denoted &lt;s,X,i&gt;, where s is the service id, X is the type of the message,
input or output, and i is the id of the specific message.
- Each message &lt;s,X,i&gt; is associated with textual annotations: &lt;s,i,Y,text&gt;,
where s and i are as above, Y is the type of annotation provided, description or
comment, and text is the actual annotation text (possibly null). Each message
may be associated with more than one annotation.
- Each message &lt;s,X,i&gt; has one or more parameters (or parts):
&lt;s,X,i,name,data_type&gt;, where s,X,i are as above, name is the name of the
parameter, and data_type specifies a (atomic or complex) data type.
- Each parameter is associated with textual annotations: &lt;s,i,name,Y,text&gt;,
where s, i, name, Y and text are as specified above. Each parameter may be
associated with more than one annotation.</p>
        <p>The way WSDL specifications are associated with annotations is thoroughly
explained in the following paragraphs.</p>
        <p>Each WSDL specification in the registry includes a specification of the
corresponding service signature, as specified above. A query Q is also a specification
of the requested service signature using the above constructs.</p>
        <p>The aim of the discovery mechanism is to find the service s in the registry that
matches the query Q. Formally, a service s matches a query Q , iff
∀ &lt; s, input, i &gt; ∃ &lt; Q, input, j &gt;: match(&lt; s, input, i &gt;, &lt; Q, input, j &gt;)
∧
∀ &lt; Q, output, i &gt; ∃ &lt; s, output, j &gt;: match(&lt; Q, output, i &gt;, &lt; s, output, j &gt;)
(1)</p>
        <p>Given the above formula, for every input parameter of the advertised service there
must be a matching input parameter of the required service. Also, for each output
parameter of the required service there must be a matching output parameter of the
advertised service. We have to notice that alternative definitions, maybe allowing
greater matching flexibility, may be provided.</p>
        <p>The function match determines whether the corresponding parameters match, and
provides their similarity degree. In the proposed approach the match function is being
computed by means of the Latent Semantic Indexing method.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 Background information: Latent Semantic Indexing</title>
        <p>
          The Latent Semantic Indexing (LSI) is a vector space technique originally proposed
for information retrieval and indexing [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. It assumes that there is an underlying
latent semantic space that it estimates by means of statistical techniques using an
association N×M matrix of terms-documents. Latent Semantic Analysis (LSA)
computes the arrangement of a k-dimensional semantic space to reflect the major
associative patterns in the data. This is done by deriving a set of k uncorrelated
indexing factors (latent features). As already pointed out in the introduction, these
factors may be thought of as artificial concepts whose lexicalization is not important.
        </p>
        <p>Given these factors, each term and document is represented by a vector of values,
indicating its strength of association with each of these underlying concepts. In other
words, the meaning of each term and document is expressed by k factor values, or
equivalently, by the location of a vector in the k-space defined by the factors. Then, a
document is the (weighted) sum of its component term vectors. The similarity
between two documents is computed by means of the dot product between the
corresponding representation vectors.</p>
        <p>Concerning our problem, each document corresponds to each input/output message
or a message part, and each term is a distinct word in any of these “documents” (as it
will be explained, these pseudo-documents are being constructed by means of
annotations and message/part names).</p>
        <p>For the computation of the k factors LSI employs a two-mode factor analysis by
decomposing the original association matrix into three other matrices of a very similar
form. This is done by a process called “Singular Value Decomposition (SVD)”. This
results in a breakdown of the original term-document relationships into linearly
independent factors. Some of these factors are not significant and are ignored. The
resulting k factors specify the dimensionality of the semantic space. By virtue of
dimension reduction from the N terms space to the k factors space, where k &lt; N, terms
that did not actually appear in a document may still end up close to the document, if
this is consistent with the major patterns of association in the data.</p>
        <p>When one searches an LSI-indexed database of documents, it provides a query (i.e.
a pseudo-document), which is a list of terms. The similarity between the query and
any document is computed by means of the dot product between the corresponding
representation vectors. Doing so, LSI returns a ranked list of documents, according to
their similarity to the query.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3 The Matchmaking Method</title>
        <p>The proposed matchmaking method assumes as input a specification of the desired
web service (i.e. the query Q) and a repository R of registered services’ WSDL
specifications. All these services are “accompanied” by annotation files that associate
descriptive and commentary information to services’ specifications. After applying
the matchmaking method to the advertised web services, the output is a ranked list of
services according to their semantic similarity to the query. Although in our
experiments (for implementation convenience, only) queries are being specified in
WSDL, the proposed approach does not necessarily require the use of WSDL for the
syntax of the query: Given that the queries are transformed in “bags of words” (as
required by LSI), the proposed approach can also be used with keyword-based or
template-driven querying forms as in Web-services search engines (e.g. Opossum in
http://dori.technion.ac.il/, SeekDa in http://seekda.com/).</p>
        <p>The proposed matchmaking method combines multiple sources of evidence to
determine similarity between the signatures of two web services. In particular it
considers the similarity between input and output messages, and between their
parameters (i.e. input parts and output parts, respectively).</p>
        <p>More precisely our approach is divided into the following stages: a) the matching
of input messages, b) the matching of output messages, c) the matching of input parts
and d) the matching of output parts. The algorithm determines the matching of each of
these elements individually. The results are linearly combined to a single similarity
measure between WSDL specifications (Figure 2).</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.3.1 Annotation Files</title>
        <p>The external annotation files (EAF) provide “slots” for the textual annotation of
WSDL elements: “Comments” and “description” slots for the service itself, for each
service’s interface, operation and input/output messages, and for each of the
corresponding parameters. It also provides support for specifying mappings between
WSDL elements and ontologies. The EAF is an XML file aligned with the WSDL
specification via XPATH expressions. Currently, comments and descriptions are
considered to aggregate any type of textual information.</p>
        <p>
          Although we plan to incorporate SAWSDL [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] into our framework, we do not
commit to the use of SAWSDL at this stage, emphasizing mostly on the use of textual
descriptions/comments for WSDL elements.
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>3.3.2 Input/Output Messages’ similarity</title>
        <p>Let us consider a message &lt;s,X,i&gt;, where s is the service id, X is the type of the
message (input or output) and i is the id of the specific message; as well as its
associated textual annotations &lt;s,i,Y,text&gt;, where Y is the type of annotation provided
(description or comment). We construct a bag of words including all words
comprising the message name and all words in the texts that annotate this specific
message: This constitutes the pseudo-document corresponding to the message. Each
word may be considered as a single term, or as a set of words (in case it is being
constructed by concatenating a number of simple terms, e.g. getinputdate_of_arrival):
We deal with both cases in our experiments. To improve the precision of our method
we eliminate words with little substantive meaning, i.e. stop-words, and we consider
only words that appear more than a certain number of times in the specific bag.</p>
        <p>We compute the semantic similarity between each input (output) message of the
query Q and the input (respectively, output) messages of all the web services in the
registry by means of the LSI method: The method computes the semantic space by
building the association matrix, associating words occurring in the web services’
inputs (or outputs) and in their annotations, with the input (respectively, output)
messages’ pseudo-documents.</p>
        <p>Similarly, each query to LSI is being constructed by means of the words in the
corresponding messages of the query specification Q: In other words, for each
message in Q, the proposed method constructs a separate LSI query. For each
input/output message of the query Q, LSI returns a matrix of registered services’
messages, together with a matching degree: Since each input/output message of Q can
match only with an input/output message of each s in the registry, the proposed
method keeps the highest ranked message per service s (i.e. the most similar one). For
each registered service s whose input/output messages match with the messages of Q,
a ranking (matching) degree ds is computed by averaging the similarities of all input
and output messages.</p>
      </sec>
      <sec id="sec-3-6">
        <title>3.3.3 Input/Output part semantic similarity</title>
        <p>Let us consider a parameter (message part) &lt;s,X,i,name,data_type&gt;, of a message i of
a service s, where name is the name of the parameter, and data_type specifies its data
type. This parameter is associated with textual annotations of the form
&lt;s,i,name,Y,text&gt;, where Y denotes the type of annotation and text the annotation text.
In this case, we construct a bag of words including all words in name and all words in
each text annotating this specific parameter: This constitutes the pseudo-document
corresponding to this parameter. As in messages, each word may be considered as a
single term, or as a set of words (in case it is being constructed by concatenating a
number of simple terms): We deal with both cases in our experiments. The
preprocessing stage of eliminating stop-words, and words that do not occur many times
in the specific bag, applies here as well.</p>
        <p>We compute the semantic similarity between each input (output) parameter of the
query Q and the input (respectively, output) parameters of all the web services in the
registry by means of the LSI method: The method computes the semantic space by
building the association matrix, associating words that occur in the web services’
input (output) parameters and in their annotations, with the pseudo-documents
corresponding to the parameters. Similarly, each query to LSI is being constructed by
means of the words corresponding to an input/output parameter of the query Q.</p>
        <p>For each input/output parameter of the query Q, LSI returns a matrix of registered
services’ parameters, together with a matching degree: Since each input/output
parameter of Q can match only with an input/output parameter of each s in the
registry, the proposed method keeps the highest ranked parameter per service s. For
each registered service s whose input/output parameters match with the messages of
Q, a ranking degree ds is computed by averaging the matching degree of all input and
output parameters.</p>
        <p>Since the method of ranking registered services using input/output messages, as
well as the method of using input/output parameters, is the same, let us exemplify the
computations with a simple example concerning input parameters. Suppose we have
the following advertised services: i) service s1 with three input parts: a, b, c, ii) service
s2 with one input part: d, and iii) service s3 with two input parts: e, f. The service
request Q has two input parts: x, y. The method uses LSI to compute the similarity
between the input part x of Q and all input parts of the advertised services, i.e. a, b, c,
d, e and f. The results are shown in table (a) of Figure 3. The method keeps for each
service only the input part that has the maximum degree of match. The result after this
step is shown in table (b) of Figure 3. Then, LSI computes the similarity between the
other input part y and all the input parts of the advertised services. The results are
shown in table (c) of Figure 3. Again, the method keeps for each service only the
input part that has the maximum degree of match. The result after this step is shown
in table (d) of Figure 3. Finally, these two tables (b) and (d) are summed and the result
is divided by the number of input parts of the request, as shown in table (e). This final
matrix associates each advertised service with a similarity to the query Q, based on
the computation of their input parts’ similarities.</p>
      </sec>
      <sec id="sec-3-7">
        <title>3.3.4 Input/Output messages’ similarity by means of input/output parts similarity</title>
        <p>In addition to the above described approach, we have been experimenting with an
alternative method for the computation of input/output messages’ similarities, so as to
enrich the information consulted for the matching of messages: We construct the bag
of words for each input/output message not only using the message names with their
textual annotations, but adding also the associated input/output parts with their
annotations. In particular, we identify the input/output messages of a web service
operation together with the corresponding input/output parts of it. Then, the method
computes the matching similarity of the advertised services with the query in the same
way as we have described in the previous paragraphs.</p>
      </sec>
      <sec id="sec-3-8">
        <title>3.3.5 Combining individual similarities</title>
        <p>The result of the matching algorithm is a list of registered services matching to the
query Q, with their rankings. These ranking degrees result from averaging the degrees
computed by each of the individual stages described: a) the matching of input
messages, b) the matching of output messages, c) the matching of input parts and d)
the matching of output parts.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4 Experiments</title>
      <p>
        To evaluate our approach, we have used service specifications from the OWL-S
Service Retrieval Test Collection (OWLS-TC) version 2 [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] as well as an additional
set of nine (9) Web services for Network Simulation (NS). From the OWLS-TC
collection, we have translated a set of 70 services to WSDL, due to problems faced
with the OWL-S-to-WSDL translation tool and due to services’ description duplicates
concerning the WSDL part elements. We have been experimented with 7 OWLS-TC
domains and the additional NS domain. Table 1 summarizes information concerning
the characteristics of the services in our repository R, i.e. the different domains of the
services (column 1), the number of services for each domain (column 2), and the total
number of WSDL input/output messages (column 3) and WSDL input/output distinct
parts (column 4) for each domain.
      </p>
      <p>Concerning the WSDL specifications for domains 2 to 6, message part names are
mainly composed by a single-word term capitalized and an underscore character as a
prefix (e.g. _COUNTRY). For the domain 7, the messages part names are composed
by multi-word terms, either separated with an underscore or with no separator, or
using a combination of these (e.g.
GetPatientMedicalRecords_AuthorizedMedicalRecords). We handle individual,
distinct terms of multi-word terms separately, only in cases these are separated by an
underscore separator, which is one of the most generic case considered.</p>
      <p>WSDL specifications have been manually annotated by human annotators that have
adequate knowledge of the related domains and services. They have been advised to
carefully choose the annotations in order to indicate as close as possible the intended
meaning of the input/output messages and of their parameters. Where possible,
annotators have been advised to get feedback from xsd-schema complex types
included in the WSDL specifications. Services in the “Network Simulation” domain
have been annotated by their developers. More specifically, we can identify 3
different annotation cases that have been applied in the corpus:</p>
      <p>Annotations that are formed by “free text including terms from xsd-schema
types and from the WSDL message part name”.</p>
      <p>Annotations that are formed by “free text including terms only from the
WSDL message part name”.</p>
      <p>Annotations that are formed by “a single term”. In this case, annotators
choose a single term without considering xsd-schema types or message’s part
names. For instance, for the “wsdl:part name="Capital_City"”, the annotator
has chosen the single-term-description “&lt;description&gt; Capital
&lt;/description&gt;”, which “captures” the intended meaning of the entity
“Capital City”.</p>
      <p>The result of this process is a set of annotations with terms belonging in one of the
following three categories: a) terms from xsd-schema types, b) terms from WSDL
message part names, or c) terms chosen by human annotators.
The use of free text with terms from the xsd-schema types and/or the WSDL message
part names, means that the annotator is allowed to form a natural language sentence
using these terms: E.g. “&lt;description&gt; The service requests accommodation using
country information &lt;/description&gt;”. Although the use of free text may distract the
matching method (due to the incorporation of noisy terms), the freedom that the
approach gives to the annotator is important and realistic. In this example of
annotation, the annotator has combined terms (e.g. “country”) from messages’ part
names (category b). As another example, in the comment “&lt;comment&gt; The country
name is a string. A country is described with its capital, its currency, and its
government &lt;/comment&gt;” the annotator has used terms (terms “capital”, “currency”,
“government”) from the xsd-schema type that corresponds to the specific message
part name (category a). Table 2 summarizes information concerning annotations per
domain. It must be noticed that all annotations contain 5 to 7 “significant” terms; i.e.
non stop-words that may drive the computation of elements’ intended mappings.
Given a query Q, we consider that the repository R includes one matching service. For
evaluation purposes we measured the precision (p) of the method (i.e. the percentage
of times that the method returns the correct service at the top of the ranked list), as
well as the Top-k precision (pk) of the method (i.e. the percentage of times that the
correct service is among the top k in the ranked list). Specifically, we have measured
p5 and p10.</p>
      <p>The evaluation of the approach has been extensively conducted with a large
number of variations of the queries, so as to test the robustness of the proposed
approach, even in cases where annotations are misleading, or missing. According to
these variations, the words that are being used for the construction of the queries for
the input/output messages and parts vary significantly.</p>
      <p>Specifically, words concerning the query Q may be fetched from:
- WSDL input/output message and part names without splitting them into
single words (this is considered to be the default case and it is not denoted in
the experiments).
- Splitting all words in the bag (this case is denoted by “split”)
- WSDL input/output messages’ annotations (this case is denoted by “in/out”)
- WSDL input/output parts’ annotations (this case is denoted by “inP/outP”)
- WSDL input/output messages’ annotations in conjunction with information
from the corresponding input/output parts (this case is denoted by
“inWP/outWP”)</p>
      <p>Combinations of the above cases give the different configurations of the method.
For instance, the cases where the method considers only the matching of input/output
parts, constructing queries using WSDL input and output parts’ annotations together
with part names are denoted as LSA-inP-outP. As another example, the cases where
the method considers (a) the matching of input/output messages, constructing queries
using words from the WSDL input and output messages’ annotations in combination
with words from input and output parts’ annotations (i.e. the last case above), in
combination with (b) the matching of messages parameters, constructing queries
using WSDL input and output parts’ annotations, together with (c) splitting all words,
is denoted as LSA-inWP-outWP-inP-outP-split. Conclusively, as shown in the
Figures 4, 5, 6, we have run experiments with eight (8) configurations of the proposed
method.</p>
      <p>For each case, we have considered alternatives for the filtering of words, based on
the times (t) of words’ appearance in the bag. Due to the very low numbers of words’
appearances we distinguished two cases: (a) Filtering out words that appear exactly
one time (t&gt;1) and (b) including all words (t&gt;=1).</p>
      <p>First, we evaluated the proposed approach by placing each of the 79 WSDL
specifications included in the repository R as a query. This may be considered to be
the best case for our method since each query matches exactly with an advertised
service (Figure 4). In addition, we evaluated the method using each of the 79 services
in R as a query, but without considering their textual annotations. The results of these
cases are also presented in Figure 4. As shown, annotations play a significant role
towards increasing the precision of our method: This is particularly true for cases with
t&gt;1. However, when all words are included in the bag of words (t&gt;=1), even if
generally the results are better when considering annotations (even better from the
cases where t&gt;1), some configurations fail to achieve better results from the
corresponding cases with no annotations: This is due to the incorporation of “noisy”
words.</p>
      <p>To test the robustness of the proposed method in the presence of noisy words and
in cases where queries do not contain many “useful” terms, we have been
experimenting with a variety of cases for the queries. Thus, we have conducted
experiments by adding extra new words (let us call them noise-words) in the bag of
words of Q. Noise-words are randomly chosen from the textual annotations of
services included in the experimental corpus, given that these services belong to the
same domain with the domain of the query service. We have been experimenting with
one, three, and five noise-words per query. Figure 5 shows the results of these
experiments, together with two more graphs presenting results of the proposed
method when WSDL messages and part names are not included in the queries (and
without adding noise-words). In addition to the above, we have conducted further
experiments with noise-words: This time noise-words replace (one, three, or five)
words included in the query. Noise-words are new words and being chosen as in the
previous cases. Figure 6 presents the results of these additional experiments, in two
different sets of cases: a) Replacement of words with noise-words in queries that
include WSDL messages and part names, and b) replacement of words with
noisewords in queries that do not include WSDL messages and part names.</p>
      <p>In Figures 5 and 6, it can be shown that the precision of the method scales
proportionally to the number of noise-words. The best results are achieved in cases
where all words are taken into account (t&gt;1). In these cases, when the method
considers the input/output messages and their input/output parts separately, together
with the part name (split or not) (LSA-in-out-inP-outP-{split}) it achieves the best
results, even in cases with increased noise: It manages to present the correct service
among the top 5 (respectively, top 10) ranked services with precision greater than
85% (respectively, 93%). It must be pointed that the addition of 5 noise-words
with/without replacement, incorporates a major (if not radical) change in the
specification of the queries.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Concluding Remarks</title>
      <p>The work reported in this article aims to the discovery of WSDL specifications that
match specific data requirements by computing the intended semantics of part
elements of input/output messages.</p>
      <p>Fig. 6. Results of experiments with replacement of query words with noise-words
Going beyond the syntactic level, we aim at exploiting the human-intended semantics
of WSDL specifications captured by means of comments and descriptions been
associated with these elements. The basic constituent of the proposed method is the
Latent Semantic Indexing (LSI) method, which maps data requirements specified in a
WSDL query to part elements of WSDL input and output messages. Preliminary
results for different types of experiments’ configurations are very encouraging: This
“basic” method manages to achieve quite high precision. Further work includes
testing the method in a large repository of WSDL specifications, and studying
extensively its dependency on the quality of annotations, also in combination with
other methods.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Burstein</surname>
          </string-name>
          , et al.
          <article-title>OWL-S: Semantic Markup for Web Services</article-title>
          .
          <source>W3C Member Submission, Nov</source>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>R.</given-names>
            <surname>Akkiraju</surname>
          </string-name>
          , et al. Web
          <string-name>
            <surname>Service Semantics - WSDL-S. W3C Member Submission</surname>
          </string-name>
          , Nov.
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>D.</given-names>
            <surname>Roman</surname>
          </string-name>
          , et al.
          <article-title>WSMO - Web Service Modeling Ontology</article-title>
          .
          <source>In DERI Working Draft 14</source>
          , vol.
          <volume>1</volume>
          , pp.
          <fpage>77</fpage>
          -
          <lpage>106</lpage>
          . DERI, IOS Press,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>4. OASIS http://www.oasis-open.org/home/index.php</mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Simple</given-names>
            <surname>Object Access Protocol</surname>
          </string-name>
          (SOAP) http://www.w3.org/TR/2000/NOTE-SOAP20000508
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Paolucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kawamura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Payne</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Sycara</surname>
          </string-name>
          .
          <article-title>Semantic Matching of Web Service Capabilities</article-title>
          .
          <source>In Proc. of ISWC</source>
          <year>2002</year>
          , pp.
          <fpage>333</fpage>
          -
          <lpage>347</lpage>
          . Springer Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Klusch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Fries</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Khalid</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Sycara</surname>
          </string-name>
          . “
          <string-name>
            <surname>OWL-S: Hybrid OWL-S Service Matchmaking</surname>
          </string-name>
          <article-title>”</article-title>
          .
          <source>In Proceedings of 1st Intl. AAAI Fall Symposium on Agents and the Semantic Web</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fernandez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Polleres</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Ossowski</surname>
          </string-name>
          . “
          <article-title>Towards Fine-grained Service Matchmaking by Using Concept Similarity”</article-title>
          .
          <source>In Proc. of SMR2</source>
          <year>2007</year>
          , vol.
          <volume>243</volume>
          of CEUR-WS, pp.
          <fpage>31</fpage>
          -
          <lpage>45</lpage>
          ,
          <year>November 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. d' Amato,
          <string-name>
            <given-names>S.</given-names>
            <surname>Staab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Fanizzi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Esposito</surname>
          </string-name>
          , “
          <article-title>Efficient discovery of services specified in description logics languages”</article-title>
          ,
          <source>In Proc. of SMR2</source>
          <year>2007</year>
          , vol.
          <volume>243</volume>
          of CEUR-WS, .pp.
          <fpage>15</fpage>
          -
          <lpage>29</lpage>
          , Busan, Korea,
          <year>November 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>M. C. Jaeger</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Rojec-Goldmann</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Muhl</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Liebetruth</surname>
            , and
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Geihs</surname>
          </string-name>
          ,“
          <article-title>Ranked Matching for Service Descriptions using OWL-S”</article-title>
          ,
          <source>In Proc. of KiVS</source>
          , p.
          <fpage>91</fpage>
          -
          <lpage>102</lpage>
          2005.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>X.</given-names>
            <surname>Dong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Halevy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Madhavan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Nemes</surname>
          </string-name>
          , J. Zhang, “
          <article-title>Similarity Search for Web Services”</article-title>
          ,
          <source>In Proc. of the 30th VLDB Conf.</source>
          , pp.
          <fpage>372</fpage>
          -
          <lpage>383</lpage>
          , Toronto, Canada,
          <year>2004</year>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>D.</given-names>
            <surname>Skoutas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Simitsis</surname>
          </string-name>
          , T. Sellis, “
          <article-title>A Ranking Mechanism for Semantic Web Service Discovery”</article-title>
          ,
          <source>in IEEE Congress on Services</source>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>48</lpage>
          , Salt Lake City,
          <string-name>
            <surname>UT</surname>
          </string-name>
          , USA,
          <year>2007</year>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Stroulia</surname>
          </string-name>
          , “
          <article-title>Semantic Structure Matching for Assessing Web-Service Similarity”</article-title>
          ,
          <source>In Proceeding of ICSOC</source>
          <year>2003</year>
          , pp.
          <fpage>194</fpage>
          -
          <lpage>207</lpage>
          , Trento, Italy,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          (
          <year>1995</year>
          ).
          <article-title>WordNet: A lexical database for English</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>38</volume>
          (
          <issue>11</issue>
          ) pp.
          <fpage>39</fpage>
          -
          <lpage>41</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>S.</given-names>
            <surname>Deerwester</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. T.</given-names>
            <surname>Dumais</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. W.</given-names>
            <surname>Furnas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. K.</given-names>
            <surname>Landauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Harshman</surname>
          </string-name>
          .
          <article-title>Indexing by Latent Semantic Analysis</article-title>
          .
          <source>Journal of the American Society of Information Science</source>
          (
          <year>1990</year>
          ),
          <volume>41</volume>
          (
          <issue>6</issue>
          ),
          <fpage>391</fpage>
          -
          <lpage>407</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>16. UDDI technical paper, http://www. uddi.org/pubs/Iru_UDDI_Technical_White_Paper.pdf</mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Web Services Description Language</surname>
          </string-name>
          (WSDL) http://www.w3.org/TR/wsdl
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <article-title>Semantic Annotations for WSDL and XML Schema (SAWSDL</article-title>
          ) http://www.w3.org/TR/2007/ REC-sawsdl-
          <volume>20070828</volume>
          /
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>OWLS-TC</surname>
          </string-name>
          , http://projects.semwebcentral.org/projects/ owls-tc/
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. E.
          <string-name>
            <surname>Toch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Gal</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Reinhartz-Berger</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Dori</surname>
          </string-name>
          .
          <article-title>A Semantic Approach to Approximate Service Retrieval</article-title>
          , to appear
          <source>at ACM Transactions on Internet Technology, February 2008</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>