<html>
<head>
<title>Publishing Semantic Descriptions of Services</title>
</head>

<body>

<h1 align="center">Publishing Semantic Descriptions of Services</h1>

<p align="center">
<b>
Luc Moreau, Simon Miles, Juri Papay, Keith Decker, Terry Payne</b></br />
Electronics and Computer Science<br />
University of Southampton, UK <br />
<tt>{L.Moreau,sm,jp,ksd,trp}@ecs.soton.ac.uk</tt> 
</p>

<h2>Abstract</h2>

<p>
Service discovery in large scale, open distributed systems is difficult because
of the need to filter out services suitable to the task at hand from a
potentially huge pool of possibilities. Semantic descriptions have been
advocated as the key to expressive service discovery, but the most commonly
used service descriptions and registry protocols do not support such
descriptions in a general manner. In this paper, we present an approach and
implementation for service registration and discovery that uses an <small>RDF</small> triple
store to express semantic service descriptions and other task/user-specific
metadata, using a mechanism for attaching structured and unstructured metadata.
The result is an extremely flexible service registry that can be the basis of a
sophisticated semantically-enhanced service discovery engine, an essential
component of a Semantic Grid.
</p>

<h2>1. Introduction</h2>

<p>
Service discovery is a difficult task in large scale, open distributed systems
such as the Grid and Web, due to the potentially large number of services
advertised. In order to filter out the most suitable services for the task at
hand, many have advocated the use of semantic descriptions that qualify
functional and non-functional characteristics of services in a manner that is
amenable to automatic processing
[<a
 href="#Berners-Lee+Hendler+Lassila">2</a>,<a
 href="#damls-iswc02">5</a>,<a
 href="#Wroe:JCIS03">13</a>]. 
</p>

<p>
<em>Semantic discovery</em> is the process of discovering services capable of
meaningful interactions, even though the languages or structures with which
they are described may be different.  Typically, a semantic discovery process
relies on <em>semantic annotations</em>, containing high-level abstract
descriptions of service requirements and behaviour. In this paper, we focus on
the means to <em>register</em> such semantic annotations, and <em>discover</em>
services using them.
</p>

<p>
Current standards in the Web Services and Grid communities (including <small>UDDI</small> and
<small>WSDL</small>) do not directly support semantic discovery of services
[<a
 href="#semweb-uddi">10</a>]. However, given that these standards have been agreed upon
by the community, their existence promotes inter-operability with components
such as workflow enactment engines.
</p>

<p>
An essential element in semantic discovery is the ability to augment service
descriptions with additional information, i.e. <em>metadata</em>.  Providers may
adopt various ways of describing their services, access polices, contract
negotiation details etc. However, many resource consumers also impose their own
selection policies on the services they prefer to utilise, such as provenance,
derived quality of service, reputation metrics etc.  Furthermore, it is useful
to add such <em>metadata</em> not only to service descriptions, but also to any
other concept that may influence the discovery process, e.g. supported
operations, types of arguments, businesses, users. Such metadata may
be structured according to published ontologies, facilitating unambiguous
interpretation by multiple users, especially in the case of a public registry;
alternatively, such metadata may also be raw and unstructured, in the case of a
personal registry used by a single user.  
</p>

<p>
Since current Grid and Web Services standards are not capable of semantic
service descriptions, we believe that an information model supporting not only
<small>UDDI</small> and <small>WSDL</small> descriptions, but also general metadata attachment
[<a
 href="#Moreau:UDDIMT">9</a>], would provide us with a uniform way of querying and
navigating service information.  We see the use of <small>RDF</small> triples [<a
 href="#rdf">11</a>]
(subject, predicate, object) as the means to represent all the information in a
uniform manner. This information will be stored in a triple store, which can be
queried uniformly through the use of a query language such as <small>RDQL</small> 
[<a
 href="#Jena">7</a>].  Besides an information model, it is also critical to offer
programmatic interfaces that would allow both publishers and third-party users
to register their semantic information.  Therefore, we have implemented the
<small>UDDI</small> interface to this triple store, and additional interfaces to publish
metadata and discover services according to metadata.
</p>

<p>
Our work is a component of the myGrid architecture for semantic service
discovery (<tt>www.mygrid.org.uk</tt>).  The functionality we are discussing here
allows the attachment of metadata in the form of semantic annotations to
services descriptions; such semantic descriptions can be retrieved, and used
for reasoning by a <em>Semantic Find</em> component, whose description and
interaction with the current component are discussed in a companion paper
[<a
 href="#Lord:KGGI03">8</a>].  The specific contributions and the remaining sections of
this paper are the following: 
</p>
<ol>
<li> A discussion of limitation of existing technologies; </li>
<li> An illustration of the kind of annotations supported by
our service directory; </li>
<li> An overview of the interfaces we provide to
register and use such annotations.</li>
</ol>

<h2>2. Limitation of Existing Approaches</h2>

<p>
The <small>UDDI</small> service directory (Universal Description, Discovery, and Integration)
[<a
 href="#uddi">12</a>] has become the de-facto standard for service discovery in the Web
Services community.  Service queries are typically white or yellow pages based:
services are located based on a description of their provider or a specific
classification (taken from a published taxonomy) of the desired service type.
A query typically returns a list of available services, from which a subset may
conform to a known and/or informally agreed upon policy and thus can be
invoked.  Such approaches work well within small, closed communities, where a
priori definitions of signatures and data formats can be defined.  However,
across open systems, no assumption can be made about how desired services are
described, how to interact with them, and how to interpret their corresponding
results.  Additionally, service providers typically adopt different ways to
model and present services, often because of the subtle differences in the
service itself.  This raises the problem of <em>semantic inter-operability</em>,
which is the capability of computer systems to operate in conjunction with one
another, even though the languages or structures with which they are described
may be different.  <em>Semantic discovery</em> is the process of discovering
services capable of semantic inter-operability.
</p>
<p>
Current standards in the Web Services and Grid communities do not support
semantic discovery of services [<a
 href="#semweb-uddi">10</a>]. <small>UDDI</small> supports a construct
called tModel which essentially serves two purposes: it can serve as a
namespace for a taxonomy or as a proxy for a technical specification that lives
outside the registry [<a
 href="#java:jaxr">6</a>].  We believe that such a tModel construct
has some intrisinc limitations.  While there is no doubt that service
classifications are useful, services are not the only entities to be
classified.  For instance, classifications can also be defined for individual
operations or their argument types. However, it is not convenient to use
searching mechanisms for services that are distinct from those for their
argument types.  Likewise, a tModel's reference to an external technical
specification, such as a <small>WSDL</small> file describing a service interface, also
implies that a different mechanism is required for reasoning over service
interfaces.
</p>
<p>
<small>UDDI</small> provides no data structures to represent either the abstract or concrete
details contained within a <small>WSDL</small> document, but only a standard way to express
that a service implements a particular <small>WSDL</small> interface. A new proposal allows
tModels to reference specific bindings and port types [<a
 href="#wsdl-in-uddi">4</a>].
However, this extension still does not provide access to, or queries over,
operations or messages, which would allow the discovery of services capable of
specific operations.
</p>
<p>
<small>WSDL</small>, the interface definition language of Web Services, itself suffers from
some limitations, as illustrated by Figure <a href="#wsdl:example">1</a> displaying the
interface of an existing bioinformatics service (<small>BLAST</small>). It
identifies a portType composed of one operation, which takes an input message
comprising two message parts <tt>in0</tt> and <tt>in1</tt>. These parts are required
to be of type <tt>string</tt>, but the specification does not tell us what the
meaning of these strings is supposed to be.  In fact, these are supposed to be
biological sequences, for which many formats are supported.  This example was
chosen because it precisely illustrates limitations of existing service
descriptions.  While this interface specification could easily be refined by
using an <small>XSD</small> complex type [<a
 href="#xmlschema2">3</a>], it is unrealistic to assume that
all services in an open environment will always be described with the
appropriate level of detail. Moreover, should it be so, we cannot expect all
service providers to always use type definitions expressed with the terms of
reference adopted by a user.
<p>
</p>
<DIV ALIGN="CENTER"><a NAME="wsdl:example"></a><a NAME="165"></a>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG>
Basic Local Alignment Search Tool (BLAST)  Interface
  Excerpt</CAPTION>
<TR><TD>
<p>
<FONT SIZE="-1"><IMG
 WIDTH="555" HEIGHT="209" ALIGN="BOTTOM" BORDER="0"
 SRC="img4.gif"
 ALT="ggf-fig1">
</FONT>
<p>
</TD></TR>
</TABLE>
</DIV>

<p>
Other relevant initiatives are <small>DAML-S</small> and <small>B</small>io<small>MOBY</small>, which we cannot describe
here due to space constraints.  Both approaches offer some form of semantic
annotation, but are restrictive, in particular, because they are not
compatible with the <small>UDDI</small> standard.
</p>

<h2>3. Extending Service Descriptions</h2>

<p>
Having discussed the limitations of existing technologies, we now focus on the
capabilites of our service directory.  Specifically, we look at the ways of
attaching ratings and functionality profiles to services, and semantic types to
operation arguments.  Our presentation is based on examples that were
generated by dumping the contents of our service directory. The notation
adopted in the presentation is N3 format [<a
 href="#n3">1</a>].
</p>
<p>
In Figure <a href="#rating:attachment:fig">2</a>, we show the representation of a service
annotated by two numerical ratings, with different values, and provided by
different authors at different time.  The node <tt>b1</tt> of the linear
representation is anonymous node denoting the service with the metadata
attachment of type ``NumericRating''.
<p>
</p>
<DIV ALIGN="CENTER"><a NAME="rating:attachment:fig"></a><a NAME="88"></a>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
Rating Attachment (N3 Notation)</CAPTION>
<TR><TD>
<p>
<FONT SIZE="-1"><IMG
 WIDTH="555" HEIGHT="193" ALIGN="BOTTOM" BORDER="0"
 SRC="img5.gif"
 ALT="ggf-fig2">
</FONT>
<p>
</TD></TR>
</TABLE>
</DIV>

<p>
In myGrid, we describe services by a service profile [<a
 href="#Wroe:JCIS03">13</a>]
specifying which kind of method they use (<tt>uses_method</tt>), which task they
perform (<tt>perform_task</tt>), which resources they use (<tt>uses_resources</tt>)
and what application they are wrapping (<tt>is_function_of</tt>).  A relevant
excerpt of the service directory contents is displayed in Figure
<a href="#mygrid:profile:fig">3</a>, with <tt>b1</tt> denoting
a service and <tt>Pe577955b-d271-4a5b-8099-001abc1da633</tt> the
``myGrid profile''.
</p>

<p>
<DIV ALIGN="CENTER"><a NAME="mygrid:profile:fig"></a><a NAME="166"></a>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
Attachment of a myGrid profile (N3 Notation)</CAPTION>
<TR><TD><HR>
<p>
<IMG
 WIDTH="554" HEIGHT="252" ALIGN="BOTTOM" BORDER="0"
 SRC="img6.gif"
 ALT="ggf-fig3">

<p></TD></TR>
</TABLE>
</DIV>

<p>
In Figure <a href="#argument:annotation:fig">4</a>, we show a semantic description of
parameter <tt>in0</tt> declared in the interface of Figure <a href="#wsdl:example">1</a>.  The node
<tt>rdf:_1</tt> denotes the message part with name <tt>in0</tt>.  It is given a
metadata attachment, with value <tt>mygrid2:nucleotide_sequence_data</tt>,
which refers to a term in an ontology of bioinformatics concepts [<a
 href="#Wroe:JCIS03">13</a>].
</p>
<p>

<DIV ALIGN="CENTER"><a NAME="argument:annotation:fig"></a><a NAME="167"></a>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
Attachment of Semantic Types to Arguments (N3 Notation)</CAPTION>
<TR><TD><p>
<IMG
 WIDTH="554" HEIGHT="248" ALIGN="BOTTOM" BORDER="0"
 SRC="img7.gif"
 ALT="ggf-fig4">

<p></TD></TR>
</TABLE>
</DIV>

<h2>4. Service Directory Interfaces</h2>

<p>
We have adopted <small>RDF</small> triples [<a
 href="#rdf">11</a>] to represent all descriptions of
services, which we store in a triple store [<a
 href="#Jena">7</a>].  We have designed and
implemented a set of interfaces to this triple store in order to offer a
service directory functionality.  In this section, we present the methods that
are relevant to metadata attachment.
</p>

<p>
The interfaces to publish metadata and discover services according to metadata
were designed in a similar style to the <small>UDDI</small> interface, so that <small>UDDI</small>  clients could easily be extended to support such features. As an illustration,
Figure <a href="#metadata:attachment:methods">5</a> shows some of the methods that allow
the attachment of metadata, respectively to a business service, to a business
entity and to a message part.
All these methods not only attach some metadata to the respective entity, but also add
some provenance information such as author and date of creation. The associated
metadata can be structured or unstructured.
Symmetrically, services can be discovered by using metadata  filtering
mechanism. An example of metadata-based search method appears in
Figure <a href="#metadata:attachment:methods">5</a>.
</p>
<p>

<DIV ALIGN="CENTER"><a NAME="metadata:attachment:methods"></a><a NAME="168"></a>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
Metadata  Attachment Methods</CAPTION>
<TR><TD><p>
<IMG
 WIDTH="555" HEIGHT="249" ALIGN="BOTTOM" BORDER="0"
 SRC="img8.gif"
 ALT="ggf-fig5">

<p></TD></TR>
</TABLE>
</DIV>

<p>
As all the information is represented in a triple store, a more direct
interface to the triple store allows users to query the service directory using
the <small>RDQL</small> query language [<a
 href="#Jena">7</a>].  An <small>API</small> that allows users to store
triples in the triple store is also provided.
</p>
<p>
Several interfaces currently provide access to our general information
model. Some of them preserve compatibility with the existing standards <small>UDDI</small>,
and ensure inter-operability within the Web Services community. Others, such as
the interface to the triple store, directly expose the information model, and
offer a powerful and radically different way of discovering services through
the <small>RDQL</small> interface.  While such  functionality is very useful, its radically
different nature does not offer a smooth transition for clients implementors
wishing to adopt semantic discovery.
</p>
<p>
The benefit of our approach is the ability to extend some existing interfaces
in an incremental manner, so as to facilitate an easier transition to semantic
discovery for existing clients.  For instance, we have extended the <small>UDDI</small> <tt>find_service</tt> method to support queries over metadata that would have been
attached to published services.  In the method specification of Figure
<a href="#metadata:attachment:methods">5</a>, <tt>metadataBag</tt>, a new criterion for
filtering services is introduced, which contains a set of metadata that a
service must satisfy.
</p>

<h2>5. Conclusion</h2>

<p>
In this paper, we have presented a mechanism to publish semantic descriptions
about services in order to promote semantic inter-operability.  Our approach
relies on a metadata attachment mechanism, capable of attaching metadata to any
entity within a service description. Such metadata need not be published by
service providers but can be published by third-party users.  Our design
extends the standard interface <small>UDDI</small> to provide semantic capabilities, hereby
offering a smooth transition to semantic discovery for <small>UDDI</small> clients. We have
used these facilities to register service descriptions as specified by the
myGrid ontology [<a
 href="#Wroe:JCIS03">13</a>]. Our future work will focus on providing
service descriptions to Grid services.
</p>
<p>

<h2>Acknowledgement</h2>

<p>
This research is funded in part by EPSRC myGrid project (reference
GR/R67743/01) and supported by GRIDNET.  Keith Decker from the University 
of Delaware was 
on sabbatical stay at the University of Southampton when this work was 
carried out. We acknowledge Carole Goble, Phillip Lord and Chris Wroe 
for their comments on the paper.
</p>
<p>

<h2>References</h2>

<dl COMPACT>
<dd><dt><a NAME="n3">[1]</a>
<dd>
Tim Berners-Lee.
Notation 3.
http://www.w3.org/DesignIssues/Notation3, 1998.

<dt><a NAME="Berners-Lee+Hendler+Lassila">[2]</a>
<dd>
Tim Berners-Lee, James Hendler, and Ora Lassila.
The Semantic Web.
<em>Scientific American</em>, 284(5):34-43, 2001.

<dt><a NAME="xmlschema2">[3]</a>
<dd>
Paul&nbsp;V. Biron and Ashok Malhotra.
Xml schema part 2: Datatypes.
http://www.w3.org/TR/xmlschema-2/, May 2001.

<dt><a NAME="wsdl-in-uddi">[4]</a>
<dd>
John Colgrave and Karsten Januszewski.
Using wsdl in a uddi registry (version 2.0).

  http://www.oasis-open.org/committees/uddi-spec/doc/draft/uddi-spec-tc-tn-wsdl-20030319-wd.htm, 2003.

<dt><a NAME="damls-iswc02">[5]</a>
<dd>
DAML-S&nbsp;Coalition:, A.&nbsp;Ankolekar, M.&nbsp;Burstein, J.&nbsp;Hobbs, O.&nbsp;Lassila,
  D.&nbsp;McDermott, D.&nbsp;Martin, S.&nbsp;McIlraith, S.&nbsp;Narayanan, M.&nbsp;Paolucci, T.&nbsp;Payne,
  and K.&nbsp;Sycara.
DAML-S: Web Service Description for the Semantic Web.
In <em>First International Semantic Web Conference (ISWC)
  Proceedings</em>, pages 348-363, 2002.

<dt><a NAME="java:jaxr">[6]</a>
<dd>
Java API for XML Registries (JAXR).
http://java.sun.com/xml/jaxr/, 2002.

<dt><a NAME="Jena">[7]</a>
<dd>
Jena semantic web toolkit.
<tt>http://www.hpl.hp.com/semweb/jena.htm</tt>.

<dt><a NAME="Lord:KGGI03">[8]</a>
<dd>
Phillip Lord, Chris Wroe, Robert Stevens, Carole Goble, Simon Miles, Luc
  Moreau, Keith Decker, Terry Payne, and Juri Papay.
Semantic and personalised service discovery.
In <em>Proceedings of Workshop on Knowledge Grid and Grid
  Intelligence (KGGI'03), in conjunction with 2003 IEEE/WIC International
  Conference on Web Intelligence/Intelligent Agent Technology</em>, page 8 pages,
  Halifax, Canada, October 2003.

<dt><a NAME="Moreau:UDDIMT">[9]</a>
<dd>
Simon Miles, Juri Papay, Vijay Dialani, Michael Luck, Keith Decker, Terry
  Payne, and Luc Moreau.
Personalised grid service discovery.
Technical report, University of Southampton, 2003.

<dt><a NAME="semweb-uddi">[10]</a>
<dd>
Massimo Paolucci, Takahiro Kawamura, Terry&nbsp;R. Payne, and Katia Sycara.
Importing the Semantic Web in UDDI.
In <em>Web Services, E-Business and Semantic Web Workshop</em>, 2002.

<dt><a NAME="rdf">[11]</a>
<dd>
Resource Description Framework (RDF).
<tt>http://www.w3.org/RDF/</tt>, 2001.

<dt><a NAME="uddi">[12]</a>
<dd>
Universal Description, Discovery and Integration of Business of the Web.
<tt>www.uddi.org</tt>, 2001.

<dt><a NAME="Wroe:JCIS03">[13]</a>
<dd>
Chris Wroe, Robert Stevens, Carole Goble, Angus Roberts, and Mark Greenwood.
A suite of daml+oil ontologies to describe bioinformatics web
  services and data.
<em>International Journal of Cooperative Information Systems</em>, 2003.
</dl>

</body>
</html>
