<!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>Implementing Semantic Web applications: reference architecture and challenges</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Benjamin Heitmann</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sheila Kinsella</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Conor Hayes</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefan Decker</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Digital Enterprise Research Institute National University of Ireland</institution>
          ,
          <addr-line>Galway Galway</addr-line>
          ,
          <country country="IE">Ireland</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>To date, Semantic Web research has tended to focus on data modelling challenges, at the expense of software architecture and engineering issues. Our empirical analysis shows that implementing Semantic Web technologies creates challenges which can a ect the whole application. Standard solutions and best practices for Semantic Web technologies are just emerging. The lack of these has been an obstacle for implementing and deploying applications which exploit Semantic Web technologies for real world use cases. In this paper we conduct an empirical survey of Semantic Web applications. We use this empirical data to propose a reference architecture for Semantic Web applications, and to identify the four main challenges for implementing the most common functionality related to Semantic Web technologies from a software engineering perspective: (i) the issues involved in integrating noisy and heterogeneous data, (ii) the mismatch of data models and APIs between components, (iii) immature and belated best practices and standards, and (iv) the distribution of application logic across components. We describe two orthogonal approaches for mitigating these challenges: (a) simplifying the application architecture by delegating generic functionality to external service providers, and (b) assembling and customising of components provided by software frameworks for rapid development of complete applications.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Semantic Web technologies simplify knowledge-intensive applications, by enabling
a Web of interoperable and machine-readable data [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] based on formal and explicit
descriptions of the structure and semantics of the data [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Existing research on deploying Semantic Web technologies has tended to focus
on data modelling, and software architecture and engineering issues have been
comparatively neglected. Bene ts such as simpli cation of information retrieval
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], information extraction [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and data integration [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] have been well researched.
      </p>
      <p>
        However, in order to encourage wide scale adoption of Semantic Web
technologies, the whole life cycle of Semantic Web data needs to be assessed in terms
of e orts and pay back of the application development. According to [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] this life
cycle includes: the initial phase of ontology development, followed by planning how
to use the data, creation of new data or re ning of existing data, then persistent
archiving of data, and nally publication and external access of data. Creation,
re ning, archiving and publication may all be performed at runtime by the
application, and as such involve aspects of software engineering and software architecture
in addition to data modelling aspects.
      </p>
      <p>
        While the challenges of ontology development have been analysed based on
empirical data of ontology development projects [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], to our best knowledge no
empirical analysis of the challenges involved in the implementation of creating,
re ning, archiving and publication of data based on Semantic Web technologies
exists.
      </p>
      <p>We have performed an empirical survey of 98 Semantic Web applications
(Section 2), which allows us to identify the most common shared components and the
challenges in implementing these components. Together, these components
constitute a reference architecture for Semantic Web applications. The survey shows
that implementing Semantic Web technologies creates challenges which can a ect
the whole application. Standard solutions and best practices for Semantic Web
technologies are just emerging. The lack of these has been an obstacle for
implementing and deploying applications which exploit Semantic Web technologies for
real world use cases.</p>
      <p>Based on the survey, we identify the four main challenges (Section 3) for
implementing Semantic Web applications: (i) the issues involved in integrating noisy
and heterogeneous data, (ii) the mismatch of data models and APIs between
components, (iii) immature and belated best practices and standards, and (iv)
the distribution of application logic across components. Identifying these
challenges allows better assessment of the costs associated with adopting Semantic
Web technologies within enterprises, and forms the basis for designing better
software frameworks and software architecture for exploiting the emerging Web of
Data.</p>
      <p>Towards this goal, we present two approaches for mitigating the identi ed
challenges (Section 4) from a software engineering perspective. The rst approach
proposes an architectural solution by delegating generic components to external
service providers thus simplifying the application. An orthogonal approach is to
provide better software engineering support with components provided by software
frameworks for rapid assembling and customising of complete applications. Finally,
we list related research (Section 5) and discuss future research (Section 6).</p>
      <p>The main contributions of this paper are (1) an empirical analysis of the state of
the art regarding the implementation of the most common components of Semantic
Web applications, (2) a reference architecture for Semantic Web applications based
on the empirical analysis, (3) identifying the main challenges in implementing
these components which are introduced by Semantic Web technologies, and (4) two
approaches to mitigate these challenges from a software engineering perspective.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Empirical analysis of Semantic Web applications</title>
      <p>As our goal is to identify the main challenges introduced by implementing
Semantic Web technologies, we have performed an empirical analysis of the most common
capabilities speci c to Semantic Web applications. In Section 2.1, we provide a
classi cation for Semantic Web applications in order to di erentiate them from
other applications on the World Wide Web. Section 2.2 outlines the methodology
of the survey. The results of our survey follow in Section 2.3. First, we present a
description of components which abstract the most common functionality related
to Semantic Web technologies. Secondly, we provide statistics about the variations
amongst the implementations of the components.
2.1</p>
      <sec id="sec-2-1">
        <title>Classifying Semantic Web applications and the Web of Data</title>
        <p>
          The most basic requirement for a Semantic Web application is the use of RDF for
the metadata used by the application. This can be derived from the fundamental
role of RDF in the \layer cake" of Semantic Web standards [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Additionally a
set of formal vocabularies should be used to capture the application domain, and
SPARQL should be used as data query language, according to [9, de nition 2.2].
All surveyed applications meet these requirements, except for applications using
programmatic access to RDF data for e ciency reasons.
        </p>
        <p>
          The Linked Data principles de ne how to publish RDF data, so that RDF
data sets can be inter-linked [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] to form a Web of Data. The Linking Open
Data community project(http://linkeddata.org) provides most of the currently
available linked data.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Methodology of the survey</title>
        <p>The survey of current Semantic Web applications has been performed in two parts,
consisting of an architectural analysis and a questionnaire about the application
functionality.</p>
        <p>Architectural analysis The applications from two key demonstration
challenges in the Semantic Web domain have been analysed to identify the most
common functionality of Semantic Web applications: the \Semantic Web challenge"(http:
//challenge.semanticweb.org/), organised as part of the International
Semantic Web Conference from 2003 to 2008, and the \Scripting for the Semantic Web
challenge"(http://www.semanticscripting.org), organised as part of the
European Semantic Web Conference from 2006 to 2008. Duplicate submissions have
been eliminated, resulting in a total number of 98 surveyed applications.</p>
        <p>The result of the architectural analysis is a list of components which provide an
abstraction of the most common functionality which is required to implement
Semantic Web standards. The components have been extracted from the architecture
diagrams and the textual descriptions of the application architecture and
implementation, depending on availability in the submitted paper. The components
provide a common way to decompose the surveyed applications, so that
components with similar functionality from di erent applications can be compared. This
allows us to e.g. identify the need for data updating standards in section 3.3, as
most applications have a user interface, but only a minority of applications allow
creation of new data by the user.</p>
      </sec>
      <sec id="sec-2-3">
        <title>Application functionality questionnaire Additionally a questionnaire was</title>
        <p>used to collect details about the implementation of the applications. The
questionnaire contains 27 properties associated with 7 areas of functionality. The results
from the questionnaire provide statistics about the range of variations in which
the functionality of the common components has been implemented.</p>
        <p>The questionnaire covers these areas of functionality: (1) implementation of
Semantic Web standards, (2) support for data sources, (3) support for formal
vocabularies that are heterogeneous and have diverse ownership, (4) implementation
of data integration and alignment, (5) support for structured, semi-structured,
unstructured or multimedia data, (6) support for authoring and editing of data, and
(7) support for external data sources and the open-world assumption.</p>
        <p>Only the applications from the \Semantic Web challenge" 2003 to 2006, and the
\Scripting for the Semantic Web challenge" 2005 to 2007 were analysed with the
questionnaire. The authors of the papers describing the applications where asked
to validate and correct the details about their applications. Of the 50 applications
analysed with the questionnaire, 74% validated their data.
2.3</p>
      </sec>
      <sec id="sec-2-4">
        <title>Survey results</title>
        <p>Taken together, the two parts of the survey can be combined to provide an
overview of the state of the art in implementing the required functionality for
Semantic Web technologies. The architectural analysis provides a list of the most
common components, and the questionnaire provides statistical data about the
di erent variations of implementing each component.</p>
        <p>Table 1 shows the seven most common components, and lists the number of
applications implementing a speci c component by year.
The surveyed applications share a signi cant amount of functionality regarding
common capabilities of Semantic Web applications. We abstract from the di
erences between individual applications and distinguish seven main components,
which together constitute a reference architecture for Semantic Web applications
by describing high-level concepts and terminology, without xing interfaces [11,
page 242].</p>
        <p>The (i) data interface provides an abstraction over remote and local data
sources, the (ii) persistent storage stores data and run time state, and the (iii)
user interface provides access for the user. (i) to (iii) have each been implemented
by more than 90% of surveyed applications. The (iv) integration service
provides a uni ed view on heterogeneous data, and the (v) search service allows
searching in data. (iv) and (v) have each been implemented by 70% to 80%
of surveyed applications. The (vi) crawler discovers and retrieves remote data,
and the (vii) authoring interface allows creating new data and editing existing
data. (vi) and (vii) have each been implemented by 30% to 40% of surveyed
applications.</p>
        <p>In the following we describe the functionality of each component in detail and
provide statistical data for the range of variations amongst the implementations of
the surveyed applications. The full results of the architectural analysis are
available on-line(http://semwebapp-components.dabbledb.com/), as are the details
of the questionnaire results(http://www.activerdf.org/survey/).</p>
        <p>User interface (92%)</p>
        <p>Authoring Interface (32%)</p>
        <p>Search Service (81%)
Integration Service (72%)</p>
        <p>Data Interface (100%)
Persistent Storage (35%)</p>
        <p>Crawler (35%)</p>
        <p>Data Interface: Also known as data adapter or data access provider.
Provides the interface needed by the application logic to access local or remote
data sources, with the distinction based on either physical remoteness or
administrative and organisational remoteness. Separation from the persistence layer is
motivated by the function of the data interface as an abstraction layer regarding
the implementation, number and distribution of persistence layers. 100% of the
applications have a data interface.</p>
        <p>Component variations: Accessing local data is implemented via programmatic
access through RDF libraries by at least 50% of the applications. Only 24% use
a query language for accessing local or remote data sources, but only half of
these applications use the SPARQL standard. Multiple data sources with di erent
ownership are used by 90% of applications, 70% support external data provided
by the user and 60% can export their data or make it reusable as a source for
other applications, by e.g. providing a SPARQL end-point. 76% of the applications
support updating their data during application runtime.</p>
        <p>Persistent Storage: Also known as persistence layer or triple store. Provides
persistent storage for data and run time state of the application, it is
accessed via the data interface. In practice many triple stores and RDF libraries
provide both a data interface and persistent storage, but there are cases where
the components are de-coupled, e.g. if the application has no local data storage,
and only uses SPARQL to access remote data. 91% have a persistent storage.</p>
        <p>Component variations: Possible supported standards include but are not
limited to data representation languages (XML, RDF), meta-modelling languages
(OWL, RDFS) and query languages (SQL, SPARQL). RDF is explicitly mentioned
by 86% of applications, OWL is supported by 48%, RDFS by 22%. Inferencing or
reasoning on the stored data is explicitly mentioned by 58% of the applications.
Storage of any combination of structured, semi-structured, unstructured data or
(binary) les can be implemented, with di erent levels of features or optimisation
for the di erent data types. 58% implement support for unstructured text and
48% support mixing of structured and unstructured data in some way.</p>
        <p>User Interface: Also known as portal interface or view. Provides a human
accessible interface for using the application and viewing the data. Does
not provide any capabilities for modifying or creating new data. 92% have a user
interface, as some applications do not provide a human usable interface.</p>
        <p>Component variations: The navigation can be based on data or metadata, such
as a dynamic menu or faceted navigation. The presentation may be in a generic
format, e.g. in a table, or it may use a domain speci c visualisation, e.g. on a
map (10%). 16% present images to the user and 6% explicitly mention support
for audio content in the user interface. 28% support multiple languages in the user
interface, thus catering to a multilingual audience.</p>
        <p>Integration Service: Also known as integration, aggregation, mediation,
extraction layer or service. Provides means for addressing structural, syntactic
or semantic heterogeneity of data, caused by accessing data from multiple
data sources using diverse kinds of format, schema or structure. The desired
result is a homogeneous view on all data for the application. The integration
service often needs to implement domain or application speci c logic for the data
integration. 72% of the applications have an integration service.</p>
        <p>
          Component variations: Integration of heterogeneous data is supported by 90%
of the applications, and 90% support data from sources with di erent ownership.
Data from distributed data sources is supported by 72%. These three properties
are orthogonal, as it would be e.g. possible to support just SIOC data [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] which
is not heterogeneous, but which is aggregated from personal websites, so that the
data sources are distributed and under di erent ownership.
        </p>
        <p>Mapping or alignment between di erent schema may be automatic (12%),
but most applications (80%) require some form of human intervention for the
integration. Reasoning and inferencing can be used for the integration (58%).
Integration may be performed once if data stays static, or continuously if new
data gets added.</p>
        <p>Search service: Also known as query engine or query interface. Provides
the ability to perform searches on the data based on the content, structure or
domain speci c features of the data. Interfaces for humans, machine agents
or both can be provided. 81% provide a search service.</p>
        <p>Component variations: Besides search on features of the data structure or
semantics, generic full text search (58%) or a search on unstructured and structured
data at the same time (48%) can be provided. The interface for machine agents
may be provided by e.g. a SPARQL, web service or REST endpoint.</p>
        <p>
          Crawler: Also known as harvester, scutter or spider. Required if data needs to
be found and accessed in a domain speci c way before it can be integrated.
Implements automatic discovery and retrieval of data. 35% implement a crawler.
Some applications have an integration service, but do not need a crawler, e.g.
because they only use local RDF data, but need to perform object consolidation
[
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>Component variations: Support of di erent discovery and access mechanisms,
like HTTP, HTTPS, RSS. Natural language processing or expression matching
to parse search results or other web pages can be employed. The crawler can be
active once if data is assumed to be static or continuous (76%) if new data needs
to be discovered.</p>
      </sec>
      <sec id="sec-2-5">
        <title>Authoring interface: Allows the user to enter new data, edit existing</title>
        <p>data, and import or export data. This component depends on the user
interface component, and enhances it with capabilities for modifying and writing data.
Separation between the user interface and the authoring interface re ects the low
number of applications (32%) implementing write access to data.</p>
        <p>Component variations: The annotation task can be supported by a dynamic
interface based on schema, content or structure of data. Direct editing of data
using standards such as e.g. RDF, RDF Schema, OWL or XML can be supported.
Input of weakly structured text, using e.g. wiki formatting can be implemented.
Suggestions for the user can be based on vocabulary or the structure of the data.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>The main challenges for implementing Semantic Web technologies</title>
      <p>The list of common components and the data about the variations in
implementing these components allow us to identify the main challenges for Semantic Web
application development: (i) the issues involved in integrating noisy and
heterogeneous data, (ii) the mismatch of data models and APIs between components,
(iii) immature and belated best practices and standards, and (iv) the distribution
of application logic across components. In the following we detail these challenges
and subsequently explain their impact on an example application.
3.1</p>
      <sec id="sec-3-1">
        <title>Integrating noisy and heterogeneous data</title>
        <p>
          An objective of RDF is to facilitate data integration [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] and aggregation [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
However, even if all data sources were to use RDF as their data model, there would
still exist potential integration issues due to di erent access mechanisms, noisy
and erroneous data, and inconsistent usage of vocabularies and instance URIs
between sources. Therefore, depending on how noisy and disconnected the data
is, some amount of pre-processing may be required before using the data in an
application.
        </p>
        <p>Our survey shows that implementing integration of noisy and heterogeneous
data can contribute the biggest part of the application functionality required for
utilising Semantic Web technologies. The majority (72%) of surveyed applications
implement an integration service. However manual intervention as part of the
integration is necessary for 80% of applications. This means that prior to integration,
either data is manually edited or data from the di erent sources is inspected in
order to create custom rules or code. Only 20% explicitly mention fully automatic
integration using e.g. heuristics or natural language processing. 76% allow
updating of the data after the initial integration, and reasoning and inferencing is used
for 58% of integration services.</p>
        <p>
          Semantic Web data may be accessible by multiple di erent methods: large
dumps to be downloaded, individual (possibly dynamically-generated) documents
which need to be crawled, or via SPARQL endpoints to which queries must be
issued. In order to ease the acquisition of published data, site suppliers can provide
a semantic sitemap [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] on their website, so that crawling agents know where to
nd related RDF data. There are also a set of best practice guidelines [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] for
publishing and interlinking pieces of data on the Semantic Web. The creation of
ontologies is beyond the scope of this paper but has been discussed in previous
literature [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
        <p>
          Previous research performed using the Swoogle system [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] shows that there
is a spectrum for RDF data, ranging from well structured data using stable and
slowly changing vocabularies and ontologies to noisy and dynamic data with
unde ned terms and formal errors. The study tracked size changes in three versions
of 183k RDF documents, and found changes had occurred in 60% of these
documents. It also found that 2.2% of terms had no de nitions and some had both
class and property meta-usage. The Swoogle study also showed that the size
distribution of Semantic Web documents is highly skewed, with many small
documents and much fewer very large documents. Similarly, a study [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] using the
WATSON infrastructure concludes that the Semantic Web is composed of many
small, lightweight ontologies and fewer large, heavyweight ontologies. Assuming
that within an ontology there is generally consistent use of vocabularies and
instance URIs, the large number of smaller lightweight ontologies will present more
problems for data integration.
        </p>
        <p>
          The Semantic Web bug tracker(http://bugs.semanticweb.org/) is an
initiative to improve the quality of the Web of data by tracking issues which could
introduce inaccuracies in systems consuming the data. Previous work [
          <xref ref-type="bibr" rid="ref13 ref17">17, 13</xref>
          ] by
the authors has also shown up various inconsistencies in RDF data on the Web.
Some examples of frequent errors occurring in Semantic Web data observed from
these sources are:
{ Use of non-standard terms: There is frequent usage of classes and
properties which are not de ned in the o cial speci cations. A study of ontology
usage [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] shows over 1m de nitions of instances of the class foaf:chatEvent,
which does not exist in the o cial FOAF speci cations(http://xmlns.com/
foaf/0.1/).
{ Incorrect usage of vocabularies:
        </p>
        <p>
          Publishers frequently use terms from vocabularies in ways which they were not
intended and which may introduce unexpected results after reasoning. For
example, dbpedia, which publishes structured data extracted from Wikipedia,
uses the property foaf:img to link resources of all types to associated images.
This is problematic because according to the FOAF speci cations, the
property foaf:img has a domain of foaf:Person. This means that confusingly,
a reasoning system could infer that all Dbpedia resources with images are of
type foaf:Person.
{ Multiple URIs for the same objects: The ability to uniquely identify
arbitrary resources via URIs is an important factor in data integration.
However there is little agreement between sources on which URIs to use for a
particular resources. This is a problem as it may result in potentially useful
information about a resource being missed. Reasoning on inverse functional
properties (IFPs) can alleviate this to some extent. An evaluation of an
object consolidation algorithm [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] showed that 2.4 million instances could be
consolidated into 400k instances. However noise in IFP statements can cause
even more problems. [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] notes that in lling out online pro les, users who do
not wish to reveal their instant messaging usernames will ll in an alternative
value such as \none". As a result, 85k of the users supplying these non-unique
usernames were incorrectly merged.
        </p>
        <p>The majority of applications rely on data integration, but in order to
implement it, expensive human intervention is necessary and knowledge about
reasoning and inferencing needs to be acquired by the software engineers. Up to three
components can be required for integrating data (the integration service, crawler
and often the search service), which contribute to the requirements introduced by
Semantic Web technologies to the application.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Mismatch of data models and APIs between components</title>
        <p>Within the components of the surveyed Semantic Web applications there were two
frequently occurring mismatches from a software engineering perspective: either
they internally used di erent data models or the APIs between components were
mismatched, both of which pose important challenges to implementing Semantic
Web technologies.</p>
        <p>
          The graph based data model of RDF provides the foundation for knowledge
representation on the Semantic Web [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], however programmatically accessing RDF
data from a component requires mapping of an RDF graph or subset (in the case
of a SPARQL query result) to the data model used by the component [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>Most of the surveyed applications (92%) were implemented using object
oriented languages, and many of the surveyed applications stored data in relational
databases. Web applications which are based on relational databases only have to
manage the mismatch between object oriented and relational data. Semantic Web
applications however have to additionally handle the graph data model of RDF.</p>
        <p>
          Web applications utilise object relational mappers (ORM) such as Hibernate(
www.hibernate.org) for Java or ActiveRecord(http://ar.rubyonrails.org/)
for Ruby to transparently map between the data models, and similar approaches
for mapping RDF data have been developed such as ActiveRDF [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] for Ruby or
SuRF for Python(http://pypi.python.org/pypi/SuRF). Without such a
mapper, the developer has to provide an abstraction layer on top of the RDF data
model himself.
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Missing or belated conventions and standards</title>
        <p>In order to bene t from Semantic Web technologies, new paradigms such as the
graph based data model of RDF and its open-world semantics need to be
understood. On the other hand, many concepts and ideas to which Web application
developers are accustomed are hard to translate to the stack of Semantic Web
technologies. Approaches for providing conventions and standards to ease the shift
towards Semantic Web technologies have often been designed with a considerable
delay after the standardisation of RDF in 1999. Providing more and authoritative
recommendations is an important factor for increasing adoption of Semantic Web
technologies by enterprises.</p>
        <p>All of the surveyed applications consume RDF data of some form, 70% allow
accessing or importing of user provided external data, and 60% can export data or
are reusable as a source for another application. However as discussed in section
3.1, there are many di erent export and access mechanisms for RDF data, from
putting an RDF dump on a web server, embedding links to RDF data in HTML
or providing a SPARQL endpoint.</p>
        <p>Authoritative recommendations for making RDF accessible over the Web were
not available until 2006, when Tim-Berners Lee published a design note(http:
//www.w3.org/DesignIssues/LinkedData.html) which established the Linked
Data principles. RDFa speci es how to embed RDF graphs in XHTML documents,
and has been in development since 2004. GRDDL (from 2007) speci es how to
enable automatic conversion of HTML documents to RDF data.</p>
        <p>
          The basic database interaction pattern of a Web application is \create, read,
update and delete"(CRUD) [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], but Semantic Web applications can operate on
both local and remote data sources so that updating and deleting depends on the
provenance of the data [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. The survey shows that there is a remarkable di erence
between the number of surveyed applications which provide a user interface (90%)
and the number of applications which allow entering or editing data (30%).
        </p>
        <p>Several approaches for enabling CRUD are currently under development, such
as the Update extension for SPARQL, which provides the ability to add, update,
and delete RDF data remotely. RDF forms and RDF pushback provide an
architecture for structured data input, remote updating of data and conversion of RDF
data to legacy data formats. However, at the time of writing the W3C was not
involved in these e orts.
3.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>Distribution of application logic across components</title>
        <p>The components of a Semantic Web application implement di erent areas of
functionality which are required by Semantic Web technologies, however the
components need to be controlled by the application logic in order to use the components
for the application domain. For many of the components identi ed by the survey,
the application logic is not expressed as code but as part of queries, rules and
formal vocabularies.</p>
        <p>58% of the surveyed application use inferencing and reasoning, which often
encode some form of domain and application logic, 80% explicitly mention using
a formal vocabulary, and 24% make use of an RDF query language. This results
in the application logic being distributed across the di erent components.</p>
        <p>
          The distribution of application logic is a well known problem for Web
applications built on top of relational databases [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], and current web frameworks
such as Ruby on Rails or the Google Web Toolkit(http://code.google.com/
webtoolkit/) allow the application developer to control the application
interface and the persistent storage of data programmatically through Java or Ruby,
without resorting to e.g. JavaScript for the interface and SQL for the data
storage. However approaches for centralising the application logic of Semantic Web
applications still have to be developed.
3.5
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>The impact of the challenges on an example application</title>
        <p>
          The challenges of implementing Semantic Web standards become apparent even
for small applications. Figure 2 shows the architecture of an application from
the authors previous work, the SIOC explorer [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. It aggregates content from
weblogs and forums exposing their posts and comments as RDF data using the
SIOC vocabulary [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. The application logic and most parts of the application
are implemented using the Ruby scripting language and the Ruby on Rails(http:
//rubyonrails.org/) web application framework. The user interface allows
faceted browsing of the SIOC data and is implemented through the BrowseRDF
Ruby component [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. The data interface is provided by ActiveRDF[
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], which
is an object-oriented Ruby API for accessing RDF data. It is used to access the
integration service: The data interface is also used to access the persistent
storage of RDF data using the Redland library(http://librdf.org/). Other
application data is persistent to a MySQL relational database. The crawler is
implemented through several Unix command line utilities which are controlled by
Ruby. The SIOC explorer does not implement a search service or an authoring
interface.
        </p>
        <sec id="sec-3-5-1">
          <title>User interface: BrowseRDF (Ruby)</title>
          <p>(primary) Application Logic
Data Interface: ActiveRDF,
data-model: object oriented
OWLIM+Sesame (Java)
via SPARQL
Integration Service:</p>
          <p>Persistent Storage:</p>
          <p>Redland,
data-model: graph</p>
          <p>MySQL,
data-model: relational</p>
          <p>Crawler:
command</p>
          <p>line
utilities</p>
        </sec>
        <sec id="sec-3-5-2">
          <title>Ruby</title>
        </sec>
        <sec id="sec-3-5-3">
          <title>Ruby</title>
        </sec>
        <sec id="sec-3-5-4">
          <title>Ruby Ruby</title>
          <p>d
i
s
it
r
b
u
t
e
d
A
p
p
l
i
c
a
it
o
n
L
o
g
i
c
All four identi ed implementation challenges a ect the SIOC explorer : (1)
Even though all data sources use RDF and the SIOC vocabulary, the data is
noisy enough to require two steps of data integration. The OWLIM extension
of Sesame provides generic object consolidation, and integration speci c to SIOC
data is implemented as Ruby code. (2) The components are mismatched,
regarding both the data models(object oriented, relational and graph based) and
the programming language APIs (Ruby and Java). This requires mapping
RDF to Ruby objects (ActiveRDF) and mapping relational data to Ruby objects
(ActiveRecord). Sesame has no Ruby API, so SPARQL is used to access Sesame,
resulting in slow performance for large numbers of concurrent read operations. (3)</p>
        </sec>
      </sec>
      <sec id="sec-3-6">
        <title>Unclear standards and best practices a ect the crawler implementation, as</title>
        <p>di erent SIOC exporters require di erent methods to discover and aggregate the
SIOC data, as RDFa and GRDDL were not in wide use when the SIOC explorer
was developed in 2007. (4) The application logic is distributed across the
primary application logic component, the data interface, the rules of the integration
service and the code which controls the crawler.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Mitigating the software engineering challenges</title>
      <p>We propose two approaches for mitigating these challenges. The rst approach
proposes an architectural solution by delegating generic components to external
service providers thus simplifying the application. The second approach is to
provide better software engineering support with components provided by software
frameworks for rapid assembling and customising of complete applications. Both
approaches use modularisation to delegate the implementation of some Semantic
Web capabilities to components which are provided either by an external service
or by a software framework.
4.1</p>
      <sec id="sec-4-1">
        <title>Delegating generic components to external providers</title>
        <p>The majority (72%) of surveyed applications implement an integration service,
and in section 3.1 we have discussed the issues involved in integrating noisy data
even if all sources support RDF. One possible approach to mitigate the identi ed
User interface
Data Interface</p>
        <p>Persistent Storage
Integration Consumer</p>
        <p>SPARQL
Integration Service</p>
        <p>Crawler
Integration Provider
challenges is the delegation of generic data discovery, data aggregation and data
integration to external providers.</p>
        <p>In this way, external integration providers can provide the functionality of
the integration service, search service and crawler. They provide high value services
such as data aggregation and integration, which can be exploited by integration
consumers. If the cost of discovering, aggregating and integration data on a
Web scale is to high for some domains, the integration consumers can bene t
from economies of scale when using external integration provider. Figure 3 shows
the resulting simpli ed application architecture. Current search engines already
provide APIs which can be utilised to search the whole web or just one speci c
site, however they lack the capabilities of Semantic Web technologies.</p>
        <p>Delegating data integration to external providers can eliminate the need for
(1) integration of semantic data if the application only needs generic services,
like object consolidation based on inverse functional properties. As new (2)
standards and best practices for discovering, publishing and updating of data become
available, these only need to be implemented by the integration provider
without a ecting the integration consumer. The (3) mismatch of components is
not a ected by this, if SPARQL is e cient enough for the application. If domain
speci c integration of data is required, then di erent integration providers could
provide specialised integration services for individual domains, just like generic
and domain speci c search engines exist today. However, (4) distributing
application logic remains a challenge, as specialised and domain speci c queries can
contain important parts of the application logic.</p>
        <p>
          The SIOC explorer can bene t from this approach by delegating the crawler
which aggregates SIOC data from the di erent weblogs and forums, to an
external integration provider such as Sindice [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], which continuously discovers and
aggregates SIOC data and performs generic integration services such as object
consolidation. This removes two components from the architecture, and allows the
application to be purely implemented in Ruby thus eliminating API mismatches.
All SIOC data would need to be accessed from Sindice via SPARQL, after which
it can be stored in a local persistent store.
4.2
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>Assembling complete applications from components</title>
        <p>While not explicitly described, most surveyed applications are at least partially
created on a case-by-case basis: not just the application speci c logic is
implemented by a software engineer, but also at least one other component of the
application. Very often the user interface, integration service or the crawler are
custom made for the speci c application. The survey shows that most applications
are implemented with more then one programming language, which indicates that
most applications are assembled from components with API mismatches.</p>
        <p>Software frameworks provide the infrastructure for applications in the form
of templates, components and libraries. The provision of software frameworks for
implementing Semantic Web technologies has the potential to address all of the
identi ed issues to a certain degree: (1) generic data integration can be provided
through libraries provided by the framework. (2) the mismatch of components
can be addressed if the framework provides all the components which are
necessary to assemble a Semantic Web application, and if all parts of the framework
provide APIs for the same programming languages. (3) New standards and best
practices, e.g. for data discovery or publication, can be implemented as part of
the framework, thus alleviating the need for the application programmer to
implement them. (4) Distribution of application logic can be addressed through the
framework by providing a central point for implementing the application logic,
which can control and customise all of the components.</p>
        <p>
          Similar bene ts are already provided by modern Web application frameworks
such as Ruby on Rails for Ruby, PHPCake for PHP and Django for Python. The
Semantic Web Application Framework (SWAF) [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] provides a rst step towards
providing components for assembling and customising a complete Semantic Web
application.
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Related work</title>
      <p>
        Our methodology is adapted from [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], which uses six cases studies of software
systems as the basis for introducing the basic concepts of software architecture.
This is used as the foundation for identifying the most important general
challenges for the design of complex software systems which are constructed from
many components. We adapt this approach for the eld of Semantic Web
technologies. The challenges which we identify are based on a survey of 98 Semantic
Web applications.
      </p>
      <p>
        Other empirical surveys about Semantic Web applications are publicly
available, however they are not concerned with the software architecture and speci c
implementation details of concrete applications. Thus they provide no empirical
basis for identifying the main challenges of implementing Semantic Web
technologies. [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] presents the results of a survey of 627 Semantic Web researchers
and practitioners done in January 2007. The questions from the survey cover
the categories of demographics, tools, languages and ontologies. It tries to
characterise the uptake of Semantic Web technologies and the types of uses cases
for which they are deployed. Another similar survey of 161 researchers and 96
application-oriented participants was published online in 2009(http://preview.
tinyurl.com/semweb-company-austria-survey).
      </p>
      <p>
        [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] performs a survey and architectural analysis of 35 applications from the
\Semantic Web challenges" in 2003, 2004 and 2005. The result is a prescriptive
software architecture for Semantic Web applications described with UML.
However, the results of the survey do not identify any software engineering challenges
for implementing Semantic Web technologies.
      </p>
      <p>
        While no other empirical analysis of the challenges of implementing
Semantic Web applications exist, the ONTOCOM project [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] provides a detailed cost
estimation model for ontology development projects. We do not provide a cost
estimate model for software engineering of Semantic Web applications. However, our
identi cation of the main challenges in implementing such applications provides
the basis for future research on establishing such cost estimation models.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>Semantic Web technologies enable new bene ts such as semantically structured
machine-readable data and the integration of data from multiple, heterogeneous
sources. However, adopting new technologies adds e ort resulting from
implementing the new standards and their associated functionality. We have conducted an
empirical survey of Semantic Web applications, which we have used to propose a
reference architecture for Semantic Web applications, and for identifying the main
challenges which are introduced by implementing Semantic Web technologies: the
issues involved in integrating noisy and heterogeneous data, the mismatch of data
models and APIs between components, immature and belated best practices and
standards, and the distribution of application logic across components. These
challenges have been an obstacle for the development of applications exploiting
Semantic Web technologies. Two possible approaches for mitigating these
challenges are: the simpli cation of the application architecture by delegating data
integration to an external service provider, and assembling and customising of
components provided by software frameworks.</p>
      <p>The ecosystem of the emerging Web of Data will be based on integration
providers and integration consumers. Integration providers provide access to data
which has been discovered, aggregated and integrated in a generic way or which
caters to a speci c domain. Integration consumers will utilise these services to
provide their users with bene ts which are enabled by the Web of Data and by
the integration providers. Data will be published and discovered according to
community and industry best practices, which are increasingly implemented by
ready-made components. The identi ed challenges and potential solutions enable
future research to better assess the costs of adopting Semantic Web technologies
within enterprises, and form the basis for designing better software frameworks
and software architecture for exploiting the emerging Web of Data.</p>
      <p>Acknowledgements: The work presented in this paper has been funded in
part by Science Foundation Ireland under Grant No. SFI/08/CE/I1380 (Lion-2).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendler</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lassila</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>The Semantic Web</article-title>
          .
          <source>Scienti c American</source>
          <volume>284</volume>
          (
          <issue>5</issue>
          ) (
          <year>2001</year>
          )
          <volume>34</volume>
          {
          <fpage>43</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Melnik</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fensel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Broekstra</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Erdmann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>The semantic web: The roles of XML and RDF</article-title>
          .
          <source>IEEE Internet computing 4(5)</source>
          (
          <year>2000</year>
          )
          <volume>63</volume>
          {
          <fpage>73</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Abecker</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van Elst</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Ontologies for knowledge management</article-title>
          .
          <source>In: Handbook on Ontologies in Information Systems</source>
          . Springer (
          <year>2004</year>
          )
          <volume>453</volume>
          {
          <fpage>474</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Davies</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fensel</surname>
          </string-name>
          , D., van
          <string-name>
            <surname>Harmelen</surname>
          </string-name>
          , F., eds.:
          <article-title>Towards the Semantic Web: Ontologydriven Knowledge Management</article-title>
          . John Wiley and Sons (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Fensel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : OIL:
          <article-title>An ontology infrastructure for the semantic web</article-title>
          .
          <source>IEEE intelligent systems 16(2)</source>
          (
          <year>2001</year>
          )
          <volume>38</volume>
          {
          <fpage>45</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Moller, K.:
          <article-title>A Lifecycle Model for Data on the Semantic Web, in progress</article-title>
          .
          <source>PhD thesis</source>
          , National University of Ireland, Galway (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Simperl</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Popov</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Burger</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>ONTOCOM Revisited: Towards Accurate Cost Predictions for Ontology Development Projects</article-title>
          .
          <source>Proceedings of the International Semantic Web Conference</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Gerber</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van der Merwe</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barnard</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A Functional Semantic Web Architecture</article-title>
          .
          <source>Proceedings of the European Semantic Web Conference</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hausenblas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Building Scalable and Smart Multimedia Applications on the Semantic Web</article-title>
          .
          <source>PhD thesis</source>
          , Graz University of Technology (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cyganiak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heath</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>How to Publish Linked Data on the Web</article-title>
          .
          <source>Technical report</source>
          , FU Berlin (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Endres</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rombach</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>A Handbook of Software and Systems Engineering</article-title>
          . Pearson
          <string-name>
            <surname>Education</surname>
          </string-name>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Breslin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bojars</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Sioc: An approach to connect web-based communities</article-title>
          .
          <source>The International Journal of Web-Based Communities</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Hogan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Performing object consolidation on the semantic web data graph</article-title>
          . In: Identity, Identi ers,
          <source>Identi cation Workshop</source>
          . (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Cyganiak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stenzhorn</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delbru</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tummarello</surname>
          </string-name>
          , G.:
          <article-title>Semantic sitemaps: E cient and exible access to datasets on the semantic web</article-title>
          .
          <source>In: European Semantic Web Conference</source>
          . (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ding</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <source>Characterizing the Semantic Web on the Web. Lecture Notes in Computer Science</source>
          <volume>4273</volume>
          (
          <year>2006</year>
          )
          <fpage>242</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>d'Aquin</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baldassarre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gridinoc</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Angeletou</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sabou</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motta</surname>
          </string-name>
          , E.:
          <article-title>Characterizing Knowledge on the Semantic Web with Watson</article-title>
          . In: Workshop on Evaluation of Ontologies and
          <article-title>Ontology-based tools of the International</article-title>
          .
          <article-title>(</article-title>
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kinsella</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bojars</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Breslin</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>An interactive map of semantic web ontology usage</article-title>
          .
          <source>In: Information Visualisation</source>
          ,
          <year>2008</year>
          . IV '
          <volume>08</volume>
          . 12th International Conference. (
          <year>2008</year>
          )
          <volume>179</volume>
          {
          <fpage>184</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Oren</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heitmann</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>ActiveRDF: embedding Semantic Web data into object-oriented languages</article-title>
          .
          <source>Journal of Web Semantics</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Oren</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haller</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hauswirth</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heitmann</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mesnage</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A exible integration framework for semantic web 2.0 applications</article-title>
          . Software, IEEE (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Le</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ray</surname>
            <given-names>eld</given-names>
          </string-name>
          , J.:
          <article-title>Web-application development using the model/view/controller design pattern</article-title>
          .
          <source>Proceedings of the International Enterprise Distributed Object Computing Conference</source>
          (
          <year>2001</year>
          )
          <volume>118</volume>
          {
          <fpage>127</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Bojars</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heitmann</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oren</surname>
          </string-name>
          , E.:
          <article-title>A Prototype to Explore Content and Context on Social Community Sites</article-title>
          .
          <source>In: Proceedings of the International Conference on Social Semantic Web (CSSW)</source>
          .
          <article-title>(</article-title>
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Oren</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delbru</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Catasta</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cyganiak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stenzhorn</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tummarello</surname>
          </string-name>
          , G.:
          <article-title>Sindice.com: A document-oriented lookup index for open linked data</article-title>
          .
          <source>International Journal of Metadata, Semantics and Ontologies</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Garlan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shaw</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>An introduction to Software Architecture</article-title>
          .
          <source>Advances in Software Engineering and Knowledge Engineering</source>
          <volume>1</volume>
          (
          <year>1993</year>
          )
          <volume>1</volume>
          {
          <fpage>40</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Cardoso</surname>
          </string-name>
          , J.:
          <source>The Semantic Web Vision: Where Are We? IEEE Intelligent Systems</source>
          <volume>22</volume>
          (
          <year>2007</year>
          )
          <volume>84</volume>
          {
          <fpage>88</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Cunha</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Lucena</surname>
            ,
            <given-names>C.J.P.</given-names>
          </string-name>
          :
          <article-title>Cluster The Semantic Web Challenges Applications: Architecture and Metadata Overview</article-title>
          .
          <source>Technical report</source>
          , Ponti cia Universidade Catolica do Rio de Janeiro (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>