<!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>Linking Data from RESTful Services</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Rosa Alarcon</string-name>
          <email>ralarcon@ing.puc.cl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Erik Wilde</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Departamento de Ciencia de la Computacion, Pontificia Universidad Catolica de Chile</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Information</institution>
          ,
          <addr-line>UC Berkeley</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>One of the main goals of the Semantic Web is to extend current human-readable Web resources with semantic information encoded in a machine-processable form. One of its most successful approaches is the Web of Data which by following the principles of Linked Data have made available several data sources compliant with the Semantic Web technologies, such as, RDF triple stores, and SPARQL endpoints. On the other hand, the set of the architectural principles that underlie the human-readable Web has been conceptualized as the Representational State Transfer (REST) architectural style. In this paper, we distill REST concepts in order to provide a mechanism for describing REST (i.e. human-readable Web) resources and transform them into semantic resources. The strategy allowed us to harvest already existing Web resources without requiring changes on the original sources, or ad-hoc interfaces. The presented strategy aims to contribute to the availability of more semantic datasets and become a further step to lower the entry barrier to semantic resources publishing.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Categories and Subject Descriptors</title>
      <p>H.3.5 [Information Storage and Retrieval]: Online
Information Services|Web-based services, Data sharing</p>
    </sec>
    <sec id="sec-2">
      <title>1. INTRODUCTION</title>
      <p>
        There is an increasing interest in the relationship of
Representational State Transfer (REST) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] , and the Semantic
Web, which has resulted in various approaches varying from
the semantic annotation of Web resources, to middleware
that mediates resource handling. Followed approaches,
resemble the strategies of more traditional SOAP/WSDL
semantic services and neglect basic REST properties. REST
principles are somehow related to Linked Data principles in
the sense that resources have a unique identi er (URI), that
must be dereferenceable through HTTP; resources are
interlinked, and by following those links new resources can be
discovered. However, di erences arise when getting deeper into
Copyright is held by the author/owner(s).
      </p>
      <p>
        LDOW 2010, April 27, 2010, Raleigh, North Carolina.
.
the principles and rationale of both elds. For instance, on
the Linked Data side, research projects aim to create large
collections of RDF data by transforming structured data
sources into RDF using specialized mappings, and exposing
the generated RDF dataset as RDF triple stores, often with
SPARQL endpoints. Although this strategy make available
large collections of RDF data, they result also in centralistic
approaches where access is typically mediated through a
single \endpoint" (e.g. a dump of the whole site, an SPARQL
endpoint, a Tabulator-like interface, etc.) and due to the
heterogeneous nature of the data sources interfaces, they
require sophisticated mechanisms to retrieve, process, and
publish the information [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], which challenges the scalability
and accuracy of the expose data since it can be outdated.
      </p>
      <p>
        One of the main tenets of REST is the primacy of
resources that are uniquely identi ed by opaque URIs, that
is, in order to avoid coupling between clients and servers,
no assumptions must be made about the structure of the
URI [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. REST requires a uniform interface, that is, a set of
operations or methods with known semantics that changes
the state of the resources. The interface depends on the
URI scheme, for HTTP, the standard methods are GET, PUT,
POST, DELETE, and OPTIONS. Methods are external to the
resources, and are invoked by sending standard messages to
the Web server indicating the URI of the requested resource,
the method, the payload of the message and metadata.
      </p>
      <p>A resource can have multiple \representations" that
follow a standardized format or media type (e.g., text/html,
application/xml, etc.) and can be negotiated with the
Web server. Representations convey the state of the client's
interaction within the application and contain hyperlinks
that allow clients to discover other resources or change the
state of the represented resource. Most importantly, REST
services have no \endpoints", instead, they consists of a
collection of resource URIs and a set of standard
operations. This approach di ers greatly from more traditional
SOAP/WSDL, where a service publish an endpoint that
exposes the set of available operations (i.e. URIs, encoding,
parameters). Such operations have particular semantics that
must be known in advance, in order to be properly invoked
by the client (coupling).</p>
      <p>
        REST yield loosely coupled design [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], where
architectural concerns are separated among various standardized
components such as routers, Web servers and Web browsers,
resulting in a exible, extensible and decentralized system
simple to maintain and capable of massive scalability.
Unlike distributed system, that hide distribution, decentralized
systems make it explicit with the eventual goal of
architecting a system of systems.
      </p>
      <p>Based on these REST principles, we present the Resource
Linking Language (ReLL), that describes RESTful Web
services and provides a natural mapping from the graph-oriented
world of RESTful services (resources interlinked by links
found in resource representations) to the graph-based model
of RDF. By means of a ReLL description, a set of REST
resources are described and exposed. Three applications were
described and the resources harvested into a triple store.
Section 2 brie y discuss related approaches, and section 3
describes the proposed language.</p>
    </sec>
    <sec id="sec-3">
      <title>RELATED WORK</title>
      <p>
        Semantic Web Services (SWS) for REST are mainly
focused on providing a semantic description of a REST
service. SA-REST [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] and hREST/MicroWSMO [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] provide
a list of input and output parameters, methods, and URIs
exposed by a REST service by means of property value pairs
or RDFa [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] annotations. The description itself can be
transformed to RDF using a GRDDL-based [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] strategy for
generating a domain ontology in RDF, but no information about
the REST resources themselves are retrieved.
      </p>
      <p>
        The Web Application Description Language (WADL) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
describe RESTful services and place resources, identi ed by
prede ned URI patterns, as rst-class objects in a
description. WADL only supports HTTP methods with request
and response elements. These elements contain
representations with a media type and (possibly) another URI.
Representations contain typi ed parameters that in turn
contain links to another resources' URI. Generally speaking,
WADL attempts to completely describe all possible aspects
of a RESTful service, down to prede ned URI patterns and
the ways in which query parameters have to be composed
for certain types of requests, introducing a higher level of
coupling for clients using such descriptions.
      </p>
      <p>
        In the same line, Battle and Benson [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] propose semantic
annotations, similar to SA-REST, and extensions to SPARQL
in order to support an HTTP REST uniform interface. They
also propose extensions to the payload of the HTTP REST
methods (e.g., PUT, DELETE and GET) for maintaining
consistency between a REST resource and its semantic equivalent
(a triple) in some triple store.
      </p>
      <p>
        The main problem of these approaches is that they follow
the WSDL/SOAP service model; they do not align well with
the principles of RESTful service design, since they
disregard fundamental properties such as the hypermedia nature
of REST, and the possibility of multiple representations for
the resources. They also introduce coupling in their design
by adhering to URI templates for describing the URIs of
resources, input, and output parameters [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], or in the case of
Battle and Benson, they introduce new semantics to the
standard REST interface.
      </p>
      <p>
        EXPRESS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is a SWS model that explicitly avoids the
RPC-orientation of the approaches mentioned so far. It
starts from HTTP's uniform interface, and then describes
the available resources in an OWL ontology. However, the
model of EXPRESS is a centralized one as well, because it is
assumed that there is a complete description of a Web
Service's available resources, and then this description is used
to generate URIs for classes, instances, and properties.
      </p>
      <p>
        On the Linked data side, the Vocabulary Of Interlinked
Datasets (voiD) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], describes datasets (sets of RDF triples)
as well as the sets of Linksets, that is, triples where the
subject belong to a dataset di erent than the object's dataset.
Directionality of the links can be modeled, and other
properties such as licensing (dcterms:license), the number of
triples available in the dataset (void:statItem), the
vocabularies used in the dataset, and a SPARQL endpoint, are
also provided. voiD is accompanied of a Sitemap protocol
extension that indicates the location (URI) of the voiD
description so that (semantic) web crawlers can nd it and use
voiD's information to index the dataset. The Silk-LSL (Link
Speci cation Language) [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] is an XML-based language that
allows to de ne the rules (e.g. similarity metrics) and to nd
certain types of links (e.g. owl:sameAs) between two data
sources automatically (that is, to discover Linksets in the
terms of voiD).
      </p>
      <p>
        voiD's focus is on providing access and discovery for
already existing datasets by publishing metadata, but a more
granular approach (i.e. information about the retrieved
resources themselves) is not considered. Silk, allow to better
index large centralized collections of RDF data, and
discovering dependencies between these datasets. While these
approaches are central to increasing the amount of linked
data on the Web, they are rather expensive because they
are based on a lot of specialized mapping and publishing
work for just transforming one dataset [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        LDDR, the Link-based Resource Descriptor Discovery [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
is a proposal submitted to IETF that focuses on the
resources rather than the datasets. It allows resources to
indicate their descriptor's location by using links in three
modes, the &lt;LINK&gt; element available in markup
representations that support typed-relations such as (X)HTML and
Atom; the HTTP Link Header; and a Link-pattern
contained in the resource's description document located at
fhostg/.well-known/ directory. In all three cases, the
descriptor itself depends on the resource's URI, in the form of
fresource urig;about. Unlike the last approach, the
former two would require to modify the resources in order to
include the &lt;LINK&gt; elements either in the resource's code
or in the server side in order to process the HTTP Header.
      </p>
      <p>As for the descriptor itself, XRD1, the Extensible
Resource Descriptor de nes a small set of elements describing
the resource's URI (and URI template), an XML signature,
the expiration date, and links to other resources. Links are
also annotated with metadata such as the target resource
URI (and its URI template), mediatype, and the &lt;rel&gt;
property as de ned by the HTTP Header Link
Relationship Types. This approach, implies that there must exist an
XDR document per resource (since the set of links is often
di erent for each resource) which introduces high coupling
and may be impractical for a Web-scale application.</p>
      <p>If XRD focuses on individual resources, POWDER, the
Protocol for Web Description Resources2 recommended by
W3C aims to facilitate the description of groups of resources
identi ed by Internationalized Resource Identi ers (IRIs).
An iriset (a set of IRIs, not a set of resources) can be de ned
in terms of the properties of such IRIs, that is, the accepted
schemes (e.g. http, https), hosts, paths, and ports de ned
via regular expressions. The iriset properties are described
by a descriptorset element that groups restriction attributes
such as certified (indicates if the description certi es
another resource) and sha1sum (providing a SHA-1 sum of
1http://docs.oasis-open.org/xri/xrd/v1.0/xrd-1.0.html
2http://www.w3.org/TR/2009/REC-powder-dr/
the described resource); and annotation properties, such as,
displaytext (a descriptive text), displayicon (an image
URI) and seealso, label, comment that provide a related
resource URI, a description and a comment respectively.
Both restriction attributes and annotation properties have
well-de ned semantics and can be translated automatically
to OWL, thought, they describe high level attributes. An
additional property, typeof is also translated into rdf:type
and allows to specify a class for all the elements of an iriset.
For instance, we could de ne the http:\twitter.com iriset
and indicate later that all the elements identi ed by such
URI belong to the class twitterPublicTimeLine.
Provenance information describing author, date and validity
period (attribution) is also provided.</p>
      <p>Unlike XDR, POWDER refers to group of resources
identi ed by URI patterns (not URI templates) without
requiring changes in the resources, furthermore, POWDER makes
possible to assign a class to the group of resources
facilitating later complex operations such as SPARQL queries. On
the negative side, POWDER facilitates the description of
group resources but not it does not provide support for the
resources discovery or an automatic harvesting process.</p>
      <p>
        In the approach described by Futrelle [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], RDF is used
as the \integration layer" in a scenario of heterogeneous data
sources, and the main focus is on harvesting well-known and
cooperating data sources. This approach can be applied to
a variety of data sources, but they have to be cooperating
in the sense that they expose RDF themselves. The
harvester's main role is to be noti ed of new and updated data,
and to pull it in from these sources. While this scenario
uses RDF's power to unify heterogeneous data sources on
the metamodel level, it is only applicable in closed and
cooperating settings. In our approach, data sources are not
required to publish RDF themselves. As long as access to data
is provided through RESTful services, they can be harvested
and used as RDF. A weakness of the current
implementation is that updating is not supported in a way that allows
e cient incremental updates, but we plan to address this
issue in our future work mentioned in Section 6, where we
describe extensions to our language that represent update
services (and thus the ability to use those for incremental
updates) on the language level.
      </p>
      <p>
        SOFIE [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] focuses on information extraction from Web
resources, and ANGIE [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] on using both extracted
information and Web services endpoints, for building a more
interactive system that does not require an exhaustive crawl
of data, but retrieves information on demand. SOFIE thus
falls into the category of approaches that start from resource
representations, and use information retrieval methods to
extract RDF from them. The current implementation of
ANGIE focus on the dynamics of query processing in the
RDF data managed by the system, and uses a hardwired
set of Web services as the back-end. Similar to SA-REST,
it uses a set of lowering/lifting transformations to translate
the results of function calls from and to RDF. ANGIE
focuses on SPARQL processing (the framework is able to use
Web services while processing SPARQL queries), and less on
the ability to easily accommodate a large variety of RESTful
services.
      </p>
      <p>
        Deimos [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] is another system that starts with information
found on Web pages or through Web forms, and then uses
semantic analysis to map the syntax of these representations
to semantically richer information. Instead of relying on the
richness of links discovered in known resources, though, the
approach taken in Deimos uses tagging services to discover
new resources.
      </p>
      <p>Finally, another attempt to provide a bridge between REST
and the semantic Web is the W3C work in progress of an
RDF vocabulary representing the HTTP protocol 3. The
approach captures properties such as the message exchanged
(including the HTTP headers), the request (including the
method and URI) and the response (including the HTTP
status code number) with the goal of facilitating relevant
tasks such as content negotiation, as well as additional HTTP
headers registered by the Internet Assigned Numbers
Authority (IANA).
3.</p>
    </sec>
    <sec id="sec-4">
      <title>RESOURCE LINKING LANGUAGE</title>
      <p>Considering the related work, we derived a set of
requirements for a REST resource description language that
consider REST constraints. For instance, in order to avoid
coupling URIs must be opaque, they must support multiple
representations, and must consider linking among resources
as a fundamental property. In order to consider current
installed infrastructure, it must require minimal or no
intervention for existing Web resources; in order to scale it
must support a partial description of the resources that can
be later completed and/or modi ed, it must describe both
single resources and groups of resources as well as the
relationships among them, and nally it must be simple in order
to lower the entry barrier for future developers and foster
its adoption.</p>
      <p>The main constraints for designing RESTful services are
resource identi cation, linking, and a uniform interface through
which linked resources can be accessed. By linking we
refer to one of the core aspects of RESTful services, that is
the use of hypermedia as the engine of application state
(HATEOAS), which means that service interactions that in
nonREST approaches result in server state, are actually
implemented as clients following links to resources representing
that state. This results in services that are resource- and
link-centric, and thus a description language for RESTful
services should focus on these two aspects.</p>
      <p>The other two main constraints of REST, self-describing
messages and stateless interactions, are more a question of
how resource representations are retrieved, and how state
is handled when interacting with services. For the purpose
of designing RESTful services, all of these design issues are
relevant. For the purpose of describing a RESTful service
interface, the most important aspects are the resources
representations that can be retrieved, the ways in which these
can link to other resources, and the protocol interactions
that may be required to access those resources. The service
semantics also require an understanding of the semantics
of the representations involved in the interactions with the
service, but for the mere description of a service's interface,
these semantics are not required.</p>
      <p>Figure 1 shows the schema of ReLL. Elements are shown
as rectangles and attributes as dashed rectangles. Sequences
are depicted as a circle with the character \S". A service
exposes a set of one or more resources that have a unique
identi er (xml:id ), names and descriptions (human-readable
labels) and optionally a URI pattern which describes the
constraints for the identi ers expected to be used for
spe3http://www.w3.org/TR/HTTP-in-RDF10/
name
desc
1..∞
0..∞
id
type
S
1..∞
id
representations
targetNamespace
base
0..∞
0..∞
1..∞
0..∞
S
S</p>
      <p>resources
representation</p>
      <p>1..∞
resource
1..∞
S
type
href
schema
link
1..∞
0..∞
0..∞
service</p>
      <p>S
0..∞
S
1..∞
0..∞
name
desc
linktype
S
1..∞
ci c resources (match). A resource may have
representations, which are the serialization of the resource in some
syntax. This design naturally supports multiple
representations for resources, but it does not support, per se, the
common practice of some Web services that use di erent
URIs for di erent representations of the same resource (such
as two URIs with .xml and .json su xes, if these are two
supported representation formats).4 We discuss this issue
further down, when we are discussing link types.</p>
      <p>
        Representations can be associated with schemas for
possible validation (if schemas exist). Representations can also
be de ned as part of the service directly, in which case they
are abstract, which means that they are not associated with
any concrete resources. The most important use cases for
abstract representations are conventions for media or data
formats that should be described, so that they can be reused
as a foundation for describing concrete resource
representations. A real-world use case for this scenario is an abstract
representation describing the media type application/xml,
that serves as the basis for the abstract representation
describing the application/atom+xml media type for feeds
according to Atom [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], which in turn serves as the basis for
the abstract representation describing the paged feeds media
type (i.e., feeds implementing feed paging [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]). Eventually,
a concrete service providing a resource may use paged feeds
and thus the resource types its representation with the
abstract \paged feed" representation. The rationale behind
this design is that various representations in this chain of
representations de ne di erent linking mechanisms (paged
4Such variations in the representation's URIs could easily
be covered by a URI pattern for the resource ending with
.(xml|json), but the variation of the su x alone would not
imply that it does not actually refer to a di erent resource,
but only to a di erent representation.
feeds extend Atom with new link relationships), and the
e ective set of link types that can appear in a concrete
resource using the paged feed representation thus is the union
of these di erent link types. Representations can be based
on other representations, but only on abstract
representations. The other use case of abstract representations is
representations that are derived from concrete
representations, such as a collection of representations that is available
through a paging mechanism in representation formats.
      </p>
      <p>
        Each representation can contain any number of links. A
link is retrieved from the representation by using selectors.
Selectors depend on the representation format, and thus
their de nition and interpretation may depend on a
language (selector type) that is appropriated for a certain
representation. For instance, for XML representations, the most
popular example for a selector mechanism is the XML Path
Language (XPath) [
        <xref ref-type="bibr" rid="ref11 ref7">11, 7</xref>
        ], which allows structured selections
within XML document trees. A link de nes a possible
association leading from the resource's representation containing
the link to another resource as determine by the target.
Instead a resource URI, the target contains a valid resource
id in order to avoid coupling with the resources' naming
scheme.
      </p>
      <p>A link has a link type which represents the semantics of
the link, but ReLL does not make any attempt to formalize
the semantics; link types have a name and a description and
thus can be documented in a service description, but their
semantics are outside of the scope of the description
language. Links can also contain protocol descriptions which
for each link specify the rules that govern the interaction
with the linked resource. This is important because links in
RESTful services not only have application-speci c
semantics, following the links also may require di erent ways of
using the uniform interface provided by a certain protocol.
Thus, it is possible for each link to specify how this link
has to be traversed using a speci c protocol. Practically
speaking, this means that after a link's URI has been
determined (for example by extracting the URI using a selector),
the protocol is determined by inspecting the URI's scheme,
and then the protocol description might give additional hints
about how to use methods or compose entities for invoking
the uniform interface. Thus protocol descriptions are just
one (the interface-speci c) part of describing link semantics.</p>
    </sec>
    <sec id="sec-5">
      <title>4. FROM RELL TO RDF</title>
      <p>ReLL main elements such as resource, representation, and
link serve as the core elements for a RDF/OWL minimal
vocabulary shown in Figure 2 under the \rell" namespace.
Resource, and representation are concepts while link, and
represents are predicates. Since ReLL describes a REST
application, it is used to generate a domain ontology for the
application. The resource id annotated in ReLL is used as
the resource's type and the link type as the predicate that
relates two resources. Domain speci c resources are also
subclasses of the rell:resource entity, and currently form
a domain-speci c vocabulary by using the ReLL service's
attribute base.</p>
      <p>We are maintaining the actual REST resources' URIs to
identify them in the realm of the Semantic Web, however
they are considered instances of the domain-speci c classes
discussed before. REST resources are linked together with
a link id instead of a link type. REST resources' themselves
can be transformed to RDF following a GRDDL approach.
For instance, in Figure 2, a resource is annotated with
properties de ned in the vCard vocabulary, including simple
(literals) and complex attributes (e.g. the EMAIL is generated
as an internal blank node). Naturally, the proper
vocabularies depend on the resources.</p>
      <p>
        With this approach, it is possible to retrieve a graph of
triples describing a REST resource (URI and attributes)
and its relation to another REST resource, as shown by
the dashed rectangle in Figure 2. The resulting graph [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
is named with an ID or timestamp (e.g., base:r123456789)
that refers to the source or representation from where the
graph information was collected. The representation is an
instance of the representation type de ned in the ReLL
description for the retrieved REST resource.
      </p>
      <p>Representations are subclasses of a concrete media type
that can be derived from abstract representations or
abstract media types as annotated in the ReLL descriptions.
Abstract representations are supported as classes that serve
as the basis for other abstract or concrete representations.
For representations, the upper ontology contains all
standardized media types from the IANA registry as classes.</p>
      <p>
        The representation is then part of the provenance
information obtained when retrieved the REST resources (see
dashed elements in Figure 2). Other information such as
the ETag property served by the Web server when
retrieving the REST resource is also collected if available; the date
when the information was retrieved (and hence the named
graph was created) is also annotated. Other information as
indicated by [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] could also be included in future
developments.
      </p>
    </sec>
    <sec id="sec-6">
      <title>5. IMPLEMENTATION</title>
      <p>
        As a proof of concept, we have implemented RESTler [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
a crawler that follows the rules de ned by ReLL descriptions
in order to harvest REST resources. A complementary
component (a Translator) transforms the retrieved resources into
RDF. Figure 3 describes the principal components of the
approach. Rectangles represent software components, UML
note gures are used to represent les, straight lines
represent information ow required in the con guration phase of
the process (static), while dashed lines represent
information ow that take place while the crawling process is being
executed (dynamic).
      </p>
      <p>RESTler, is a crawler that parses and uses ReLL
descriptions as instructions for retrieving REST services' resources.
The crawler takes as input an XML document which is a
ReLL description, and a set of seed URIs (Figure 3), and
seeds
HTTP client</p>
      <p>Tiddy
RESTful service</p>
      <p>REST
resource
produces as output a typed graph of the crawled resources
and the links connecting them. The crawler also takes as
input authentication information, only basic authentication
is supported (username and password sent in the HTTP
request) currently, but we plan to extend the crawler in
order to support other authentication schemes (e.g., OAuth,
AuthSub).</p>
      <p>The crawler parses the description le, dereferences the
initial URI (seeds), and retrieves the resource representation
considering the protocol, request method, and resource
media type provided. Currently we support HTTP (an HTTP
client), and HTML, XHTML, Atom, JSON, RSS, and XML
as media types, and only the GET method. But the crawler
can be extended to support other media types, protocols
and request methods.</p>
      <p>The resource URI is matched against a regular
expression that de nes the resource type or id. From the retrieved
representation, the crawler obtains the list of embedded
links to other representations by applying an XPath
expression (selector). The link's target indicates the
expected resource type and requires additional information
such as the protocol, and request method to follow and
the expected media type. If the target is not present in the
link element, a \nofollow" condition is implied, since it is
not possible to crawl the linked resource (i.e., there is no
information about the media type, protocol, request method
or expected resource type).</p>
      <p>It is possible as well to support computed links, that
is, links that are calculated.5 The crawler also evaluates
whether the resource ful lls certain restrictions such as the
type of the linked resources (target attribute), and the
cardinality of the retrieved links (minOccurs and maxOccurs
attributes for the selector element). These restrictions are
optional and allow the crawler to determine whether the
resource is well-formed and satis es the preconditions given in
the service description.</p>
      <p>
        For each graph retrieved, a Translator is invoked for
generating RDF triples based on the ReLL description, that is, the
subjects (resources' URIs), properties (rdf:type, base:link
id) and objects (linked resources' URIs or values), as well
5Based on the ongoing work on the URI Template [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
language, it might in the future be possible to de ne additional
ways in which a URI can be composed based on input values
obtained from the current representation.
as provenance information (base:timestamp). Additional
information is obtained trough XSLT les transforming
resources into RDF sentences, as indicated for the
corresponding mapping le. Each ReLL document is transformed into
RDF with a generic XSLT generating an ontology speci c
to each application domain. Generated named graphs are
stored in a triple store. We use Sesame 2.0 as triple store
and the system is implemented in Java. Sesame supports
named graphs as quads, and we use the fourth component
for storing provenance information.
      </p>
      <p>Finally, for each retrieved resource, the crawler recursively
repeats the whole process.
5.1</p>
    </sec>
    <sec id="sec-7">
      <title>School/Twitter/Flickr and User Matching</title>
      <p>We applied RESTler to four scenarios: a subset of the
Web site of the Information School at UC Berkeley, and two
well known REST-based applications, Twitter and Flickr.
The fourth service provide mappings among the users in
each of these domains so that we can establish useful
equivalences by means of an owl:sameAs property. ReLL
descriptions where created for each scenario and we retrieved 11,353
resources, 22,309 links among them which generated 55,548
triples.</p>
      <p>Figure 4 presents the ontology that was generated
after transforming ReLL descriptions into RDF through a
generic XSLT de nition. The image was generated using
OntoViz6 and was later re ned for readability. The upper
left corner presents the representation classes and their
corresponding iana media-types (e.g. iana-app:xhtml+xml,
iana-app:atom+xml, iana-app:xml, iana-txt:html and
images media types). The right-hand side presents the classes
that model the UC Berkeley school domain's resources (e.g.
school:person, school:course, etc) and the relationships
among resources (e.g. school:person-course).</p>
      <p>The left-hand side shows the classes corresponding to the
Flickr domain (e.g. flickr:photostream, flickr:photo,
etc) and their relationships (e.g. flickr:photo-sizes). At
the bottom of the gure, a subgraph describes the classes
that model the Twitter domain (e.g. twitter:follower,
twitter:user, etc) and the hyperlinks or relationships among
them (e.g. twitter:status-reply). At the center of the
gure the minimal ontology described in Figure 2 is highlighted
in bold and italics.
6A Protege plugin that generates .dot les
flickr:photostream</p>
      <p>rell:collection
isa
isa
iana_img:ief
iana_img:gif
iana_img:jpeg
isa
isa
isa
rell:represents*
um:usermap</p>
      <p>isa
isa
isa
isa
school:person-html
school:course-html
school:course-page-html isa
flickr:user-html
flickr:photosize-html
isa
isa
isa
isa
isa</p>
      <p>isa
flickr:camera-html flickr:photo-html</p>
      <p>flickr:image-jpeg
flickr:user-page*
flickr:user-first*
flickr:user-last*
flickr:user-previous*
flickr:user-next*</p>
      <p>flickr:userFlickr
flickr:user-photo*
flickr:photo-sizes*
flickr:photo isa
flickr:photo-taken*</p>
      <p>flickr:camera
flickr:photosizes</p>
      <p>flickr:image
flickr:photosizes-page*
flickr:photosizes-image*
flickr:sizecollection
isa
isa
isa
isa
isa
rell:link*
school:course-page-list*</p>
      <p>school:courselist
rell:resource
isa</p>
      <p>isa
isa
twitter:public-timeline
twitter:follower
twitter:follows*
school:peoplelist-html school:publication-page-html
twitter:status-xml
iana:application
twitter:public-timeline-xml
school:publication-html
isa
isa</p>
      <p>iana:text
isa</p>
      <p>isa
iana_txt:html
isa</p>
      <p>rell:representation
isa</p>
      <p>isa
iana_app:xml
isa
isa
isa
isa
iana_app:atom+xml
iana_app:xhtml+xml
isa</p>
      <p>isa
twitter:user-timeline-xml
twitter:public-timeline-user-timeline*
twitter:timeline-page9*
twitter:timeline-page10*
twitter:timeline-page11*
twitter:timeline-page12*
twitter:timeline-page13*
twitter:user-timeline
twitter:timeline-page6*
twitter:paged-user-timeline
Collections of resources can be also identi ed. For
instance, at the bottom of the gure, the arcs between two
resources are depicted, the twitter:user-timeline, and the
twitter:paged-user-timeline described a pagination
relationships, that is, 13 pages of the twitter:user-timeline
were collected and the pagination scheme is describe as links
that lead to a numbered page (e.g. twitter:timeline-page2,
twitter:timeline-page3, etc). For the case of Flickr and
the Information School the pagination scheme considers links
such as the rst, last, next and previous page.</p>
      <p>The fourth RESTful service, the Usermap is show as a
single class near the center of the gure. This is because the
ReLL le contains only one class of resource (the usermap),
that is, an XML list mapping the users' URIs between the
other three applications.</p>
      <p>The REST resources themselves are transformed to RDF
following a GRDDL approach. Figure 5 shows the attributes
obtained for individuals of type school:person. Notice
that it is possible to annotate the relationships between the
REST resource (erikwilde) and its attributes. In the
gure these relationships are annotated with vCard, but other
information models can be used.</p>
    </sec>
    <sec id="sec-8">
      <title>CONCLUSIONS</title>
      <p>
        The REST community is still discussing whether RESTful
services even should be described, and how such a
description language could increase the coupling between a service
provider and a service consumer, so that REST's goal of
loosely coupled services could be compromised. We are
taking a pragmatic position and claim that it is important to
keep in mind that any kind of contract will introduce some
coupling, that even loosely coupled services need a shared
set of assumptions, and that a more formal way of
describing those assumptions will help service providers and
consumers in service documentation and consumption. A recent
upswing of discoverable links between Web resources (such
as an uptake of microformats [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]) has led to the idea of a
central registry for link relationships in the realm of Web
linking [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], but this activity is still under active
development.
      </p>
      <p>Our model is yet a static description of RESTful services
that does not cover the cases in which new resources or
identi cation and access schemes are introduced. However,
such a description allows to describe the status quo and the
cases which a client should expect, and therefore they also
allow to reliably discover cases in which these constraints are
not satis ed anymore, for example when new representations
or new identi cation and access schemes are used.</p>
      <p>
        Furthermore, this kind of RESTful service description can
also include the set of preconditions that must be satis ed
by a client to be able to consume a service. Should these
preconditions change (because the service changes), then an
analysis of the description of the preconditions used by the
client allows the client to detect the change (for example,
a new representation format has been introduced), and to
react in an appropriate way (for example, alerting the client
manager, attempting a fallback, or abort). By supporting
the description of a set of preconditions, the description
language can achieve loose coupling [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] and still allow clients
to detect when they encounter something that they have
not been designed for. As for future work, we are planning
on considering more complex data models that support also
methods such as PUT, DELETE and POST allowing us to
model resources that can be modi ed, and its relation with
the SPARQL proposals for supporting such operations [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ].
      </p>
      <p>Our minting process consist of selecting the appropriated
name for the namespace (base), resource IDs, link IDs, link
types, and representation IDs. In the example presented in
Figure5, the resource instance's namespace and predicates
chosen for this description correspond to the vCard, but
other properties (e.g. foaf) could be also used. We believe
that the selection of such properties must be responsibility
of the ReLL designer. Furthermore, the properties used in
the ReLL description itself (e.g. school:person) could be
also described using Linked Data vocabularies. By following
this approach the results of RESTler (e.g. triples datasets)
could be better integrated with other Linked Data sources
and the Linked Open Data cloud</p>
      <p>By considering the URIs corresponding to REST resources,
a natural content negotiation with the Web server will be
possible in order to retrieve an RDF-friendly media type
(e.g. application/rdf+xml) or the human-readable Web
version of the same resource. As for limitations, we require
to prepare a ReLL document for each REST service. This
approach has been successfully followed by others such as
Virtuoso's Sponger, that prepares Sponges or Cartridges
tailored for an application interface such as REST APIs,
known metadata such as MS O ce, or known Web sites
such as YouTube. RDB2RDF7 is also an ad-hoc approach
7http://www.w3.org/2005/Incubator/rdb2rdf/
that transforms RDBMS to RDF representations.</p>
      <p>We believe that by choosing Web technologies such as
XPATH, XSLT and XML as a the basis for ReLL
documents, we are lowering the entry barrier to the semantic
resources publishing, since most Web developers have the
knowledge and tools required to create their own ReLL
description. This approach also allows developers to control
the information they are collecting. Our next challenge is
to further facilitate the creation of ReLL documents by
supporting the dynamic and automatic generation of ReLL
descriptions. One of the challenges of this goal is the fact that
we need to design an speci c XSLT for each resource type
in order to harvest speci c information. A fully automatic
approach would require information retrieval, text mining
and probably machine learning techniques which greatly
increases the costs of the transformation an rises the entry
barrier for technology adopters.</p>
      <p>Having a document such as ReLL may serve as an
intermediate layer that automatic agents can use also as a
contract describing the capacities of a REST service and
translating them into RDF triples, by following the
semantics (types) made explicit in the document. Our approach
can be seen as a complement to proposals such as voiD, since
voiD describes the resulting datasets but does not support
the triples harvesting process. Our approach will allow any
Web content provider to publish ReLL descriptions for
others to crawl their Web sites, or third-parties to develop a
Web site's description that accommodates their needs. The
crawler's result is a dataset that can be then described using
voiD. Silk, can be also used for the de nition of additional
link patterns such as the user mapping that we created
manually in this version; and LDDR's linking techniques can be
also applied, since it may allow resources to link to their
descriptions.</p>
      <p>We have placed strong emphasis in a decoupled approach,
where the components of the architecture maintain certain
degree of independence, and require knowledge and tools
already available and familiar to most Web developers, and
provide a simple model that may result familiar again to
Web developers. Our nal goal is to contribute in making
available more semantic information while keeping a lower
entry barrier for developers.</p>
    </sec>
    <sec id="sec-9">
      <title>ACKNOWLEDGMENTS</title>
      <p>This work was partially funded by CONICYT/Bicenntenial
Becas-Chile 2009.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Ben</given-names>
            <surname>Adida</surname>
          </string-name>
          , Mark Birbeck,
          <string-name>
            <surname>Shane McCarron</surname>
            ,
            <given-names>and Steven</given-names>
          </string-name>
          <string-name>
            <surname>Pemberton</surname>
          </string-name>
          .
          <article-title>RDFa in XHTML: Syntax and Processing | A Collection of Attributes and Processing Rules for Extending XHTML to Support RDF</article-title>
          . World Wide Web Consortium,
          <source>Recommendation REC-rdfa-syntax-20081014</source>
          ,
          <year>October 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Rosa</given-names>
            <surname>Alarcon</surname>
          </string-name>
          and
          <string-name>
            <given-names>Erik</given-names>
            <surname>Wilde. RESTler: Crawling RESTful</surname>
          </string-name>
          <article-title>Services</article-title>
          . In 19th International World Wide Web Conference Posters, Raleigh, North Carolina,
          <year>April 2010</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Keith</given-names>
            <surname>Alexander</surname>
          </string-name>
          , Richard Cyganiak,
          <string-name>
            <given-names>Michael</given-names>
            <surname>Hausenblas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Jun</given-names>
            <surname>Zhaox</surname>
          </string-name>
          .
          <article-title>Describing Linked Datasets</article-title>
          .
          <source>In 2nd Workshop on Linked Data on the Web</source>
          , Madrid, Spain,
          <year>April 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Areeb</given-names>
            <surname>Alowisheq</surname>
          </string-name>
          ,
          <string-name>
            <given-names>David E.</given-names>
            <surname>Millard</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Thanassis</given-names>
            <surname>Tiropanis. EXPRESS: EXPressing REstful Semantic Services Using Domain</surname>
          </string-name>
          <article-title>Ontologies</article-title>
          .
          <source>In Bernstein et al. [8]</source>
          , pages
          <fpage>941</fpage>
          {
          <fpage>948</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Jose</given-names>
            <surname>Luis</surname>
          </string-name>
          <string-name>
            <given-names>Ambite</given-names>
            , Sirish Darbha, Aman Goel, Craig A.
            <surname>Knoblock</surname>
          </string-name>
          , Kristina Lerman, Rahul Parundekar, and Thomas Russ.
          <article-title>Automatically Constructing Semantic Web Services from Online Sources</article-title>
          .
          <source>In Bernstein et al. [8]</source>
          , pages
          <fpage>17</fpage>
          {
          <fpage>32</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Robert</given-names>
            <surname>Battle</surname>
          </string-name>
          and
          <string-name>
            <given-names>Edward</given-names>
            <surname>Benson</surname>
          </string-name>
          .
          <article-title>Bridging the Semantic Web and Web 2.0 with Representational State Transfer (REST)</article-title>
          .
          <source>Journal of Web Semantics</source>
          ,
          <volume>6</volume>
          (
          <issue>1</issue>
          ),
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Anders</given-names>
            <surname>Berglund</surname>
          </string-name>
          , Scott Boag,
          <string-name>
            <given-names>Donald D.</given-names>
            <surname>Chamberlin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Mary F.</given-names>
            <surname>Fernandez</surname>
          </string-name>
          , Michael Kay, Jonathan Robie, and
          <article-title>Jero^me Simeon. XML Path Language (XPath) 2.0</article-title>
          . World Wide Web Consortium,
          <source>Recommendation REC-xpath20-20070123</source>
          ,
          <year>January 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Abraham</given-names>
            <surname>Bernstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>David R.</given-names>
            <surname>Karger</surname>
          </string-name>
          , Tom Heath, Lee Feigenbaum, Diana Maynard, Enrico Motta, Krishnaprasad, and Thirunarayan, editors.
          <source>8th International Semantic Web Conference</source>
          , volume
          <volume>5823</volume>
          of Lecture Notes in Computer Science, Chantilly, Virginia,
          <year>October 2009</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Uldis</given-names>
            <surname>Bojars</surname>
          </string-name>
          , John G. Breslin, Vassilios Peristeras, Giovanni Tummarello, and
          <string-name>
            <given-names>Stefan</given-names>
            <surname>Decker</surname>
          </string-name>
          .
          <article-title>Interlinking the Social Web with Semantics</article-title>
          .
          <source>IEEE Intelligent Systems</source>
          ,
          <volume>23</volume>
          (
          <issue>3</issue>
          ):
          <volume>29</volume>
          {
          <fpage>40</fpage>
          , May
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Jeremy</surname>
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Carroll</surname>
            , Christian Bizer, Pat Hayes, and
            <given-names>Patrick</given-names>
          </string-name>
          <string-name>
            <surname>Stickler</surname>
          </string-name>
          .
          <article-title>Named Graphs, Provenance and Trust</article-title>
          . In Allan Ellis and Tatsuya Hagino, editors,
          <source>14th International World Wide Web Conference</source>
          , pages
          <volume>613</volume>
          {
          <fpage>622</fpage>
          ,
          <string-name>
            <surname>Chiba</surname>
          </string-name>
          , Japan, May
          <year>2005</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>James</given-names>
            <surname>Clark and Steven J. DeRose. XML Path</surname>
          </string-name>
          <article-title>Language (XPath) Version 1</article-title>
          .0. World Wide Web Consortium,
          <source>Recommendation REC-xpath-19991116</source>
          ,
          <year>November 1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Dan</given-names>
            <surname>Connolly</surname>
          </string-name>
          .
          <article-title>Gleaning Resource Descriptions from Dialects of Languages (GRDDL)</article-title>
          .
          <source>World Wide Web Consortium, Recommendation REC-grddl-20070911</source>
          ,
          <year>September 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13] Roy Thomas Fielding and
          <string-name>
            <given-names>Richard N.</given-names>
            <surname>Taylor</surname>
          </string-name>
          .
          <article-title>Principled Design of the Modern Web Architecture</article-title>
          .
          <source>ACM Transactions on Internet Technology</source>
          ,
          <volume>2</volume>
          (
          <issue>2</issue>
          ):
          <volume>115</volume>
          {
          <fpage>150</fpage>
          , May
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Joe</given-names>
            <surname>Futrelle. Harvesting RDF</surname>
          </string-name>
          <article-title>Triples</article-title>
          . In Luc Moreau and Ian Foster, editors,
          <source>International Provenance and Annotation Workshop (IPAW</source>
          <year>2006</year>
          ), volume
          <volume>4145</volume>
          of Lecture Notes in Computer Science, pages
          <volume>64</volume>
          {
          <fpage>72</fpage>
          , Chicago, Illinois, May
          <year>2006</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Joe</surname>
            <given-names>Gregorio. URI</given-names>
          </string-name>
          <string-name>
            <surname>Template. Internet Draft</surname>
          </string-name>
          draft-gregorio-uritemplate-
          <volume>04</volume>
          ,
          <year>March 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Marc</given-names>
            <surname>Hadley</surname>
          </string-name>
          .
          <source>Web Application Description Language. World Wide Web Consortium, Member Submission SUBM-wadl-20090831</source>
          ,
          <year>August 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>Eran</given-names>
            <surname>Hammer-Lahav</surname>
          </string-name>
          .
          <article-title>Link-based Resource Descriptor Discovery</article-title>
          .
          <source>Internet Draft draft-hammer-discovery-03</source>
          ,
          <year>March 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Olaf</given-names>
            <surname>Hartig</surname>
          </string-name>
          and
          <string-name>
            <given-names>Jun</given-names>
            <surname>Zhao</surname>
          </string-name>
          .
          <article-title>Using Web Data Provenance for Quality Assessment</article-title>
          .
          <source>In First International Workshop on the Role of Semantic Web in Provenance Management</source>
          , Washington, D.C.,
          <year>October 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Rohit</given-names>
            <surname>Khare</surname>
          </string-name>
          and
          <string-name>
            <given-names>Tantek</given-names>
            <surname>Celik</surname>
          </string-name>
          .
          <article-title>Microformats: A Pragmatic Path to the Semantic Web</article-title>
          .
          <source>In 15th International World Wide Web Conference Posters</source>
          , Edinburgh, UK, May
          <year>2006</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Jacek</surname>
            <given-names>Kopecky</given-names>
          </string-name>
          , Karthik Gomadam, and
          <string-name>
            <given-names>Tomas</given-names>
            <surname>Vitvar</surname>
          </string-name>
          .
          <article-title>hRESTS: An HTML Microformat for Describing RESTful Web Services</article-title>
          .
          <source>In 2008 IEEE/WIC/ACM International Conference on Web Intelligence</source>
          , pages
          <fpage>619</fpage>
          {
          <fpage>625</fpage>
          ,
          <string-name>
            <surname>Sydney</surname>
          </string-name>
          , Australia,
          <year>December 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Jon</surname>
            <given-names>Lathem</given-names>
          </string-name>
          , Karthik Gomadam, and
          <string-name>
            <given-names>Amit P.</given-names>
            <surname>Sheth</surname>
          </string-name>
          .
          <article-title>SA-REST and (S)mashups: Adding Semantics to RESTful Services</article-title>
          .
          <source>In First IEEE International Conference on Semantic Computing (ICSC</source>
          <year>2007</year>
          ), pages
          <fpage>469</fpage>
          {
          <fpage>476</fpage>
          ,
          <string-name>
            <surname>Irvine</surname>
          </string-name>
          , California,
          <year>September 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>Mark</given-names>
            <surname>Nottingham</surname>
          </string-name>
          .
          <source>Feed Paging and Archiving. Internet RFC 5005</source>
          ,
          <year>September 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>Mark</given-names>
            <surname>Nottingham</surname>
          </string-name>
          . Web Linking.
          <article-title>Internet Draft draft-nottingham-http-link-header-</article-title>
          08,
          <year>March 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>Mark</given-names>
            <surname>Nottingham</surname>
          </string-name>
          and
          <string-name>
            <given-names>Robert</given-names>
            <surname>Sayre</surname>
          </string-name>
          .
          <source>The Atom Syndication Format. Internet RFC 4287</source>
          ,
          <year>December 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Cesare</given-names>
            <surname>Pautasso</surname>
          </string-name>
          .
          <article-title>Composing RESTful services with JOpera</article-title>
          .
          <source>In Alexandre Bergel and Johan Fabry</source>
          , editors,
          <source>International Conference on Software Composition</source>
          <year>2009</year>
          , volume
          <volume>5634</volume>
          of Lecture Notes in Computer Science, pages
          <volume>142</volume>
          {
          <fpage>159</fpage>
          , Zurich, Switzerland,
          <year>July 2009</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>Cesare</given-names>
            <surname>Pautasso</surname>
          </string-name>
          and
          <string-name>
            <given-names>Erik</given-names>
            <surname>Wilde</surname>
          </string-name>
          .
          <article-title>Why is the Web Loosely Coupled? A Multi-Faceted Metric for Service Design</article-title>
          . In Quemada et al. [
          <volume>28</volume>
          ], pages
          <fpage>911</fpage>
          {
          <fpage>920</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Nicoleta</surname>
            <given-names>Preda</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fabian M. Suchanek</surname>
            , Gjergji Kasneci, Thomas Neumann, Maya Ramanath, and
            <given-names>Gerhard</given-names>
          </string-name>
          <string-name>
            <surname>Weikum</surname>
          </string-name>
          . ANGIE:
          <article-title>Active Knowledge for Interactive Exploration</article-title>
          .
          <source>In 35th International Conference on Very Large Data Bases (VLDB</source>
          <year>2009</year>
          ), pages
          <fpage>1570</fpage>
          {
          <fpage>1573</fpage>
          ,
          <string-name>
            <surname>Lyon</surname>
          </string-name>
          , France,
          <year>August 2009</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Juan</surname>
            <given-names>Quemada</given-names>
          </string-name>
          , Gonzalo Leon, Yoelle
          <string-name>
            <given-names>S.</given-names>
            <surname>Maarek</surname>
          </string-name>
          , and Wolfgang Nejdl, editors.
          <source>18th International World Wide Web Conference</source>
          , Madrid, Spain,
          <year>April 2009</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>Fabian</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Suchanek</surname>
            , Mauro Sozio, and
            <given-names>Gerhard</given-names>
          </string-name>
          <string-name>
            <surname>Weikum</surname>
          </string-name>
          .
          <article-title>SOFIE: A Self-Organizing Framework for Information Extraction</article-title>
          . In Quemada et al. [
          <volume>28</volume>
          ], pages
          <fpage>911</fpage>
          {
          <fpage>920</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>Julius</surname>
            <given-names>Volz</given-names>
          </string-name>
          , Christian Bizer,
          <string-name>
            <given-names>Martin</given-names>
            <surname>Gaedke</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Georgi</given-names>
            <surname>Kobilarov</surname>
          </string-name>
          .
          <article-title>Discovering and Maintaining Links on the Web of Data</article-title>
          .
          <source>In Bernstein et al. [8]</source>
          , pages
          <fpage>650</fpage>
          {
          <fpage>665</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>Erik</given-names>
            <surname>Wilde</surname>
          </string-name>
          and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Hausenblas. RESTful</surname>
          </string-name>
          <string-name>
            <surname>SPARQL</surname>
          </string-name>
          ?
          <article-title>You Name It! | Aligning SPARQL with REST and Resource Orientation</article-title>
          . In Walter Binder and Erik Wilde, editors,
          <source>4th Workshop on Emerging Web Services Technology (WEWST</source>
          <year>2009</year>
          ), pages
          <fpage>39</fpage>
          {
          <fpage>43</fpage>
          ,
          <string-name>
            <surname>Eindhoven</surname>
          </string-name>
          , Netherlands,
          <year>November 2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>