<!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>Continuous Queries and Real-time Analysis of Social Semantic Data with C-SPARQL</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Davide Francesco Barbieri</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniele Braga</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefano Ceri</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emanuele Della Valle</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michael Grossniklaus</string-name>
          <email>grossniklausg@elet.polimi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Elettronica e Informazione</institution>
          ,
          <addr-line>Politecnico di Milano Piazza Leonardo da Vinci 32, I-20133 Milano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Social semantic data are becoming a reality, but apparently their streaming nature has been ignored so far. Streams, being unbounded sequences of time-varying data elements, should not be treated as persistent data to be stored \forever" and queried on demand, but rather as transient data to be consumed on the y by queries which are registered once and for all and keep analyzing such streams, producing answers triggered by the streaming data and not by explicit invocation. In this paper, we propose an approach to continuous queries and realtime analysis of social semantic data with C-SPARQL, an extension of SPARQL for querying RDF streams.</p>
      </abstract>
      <kwd-group>
        <kwd>Continuous SPARQL</kwd>
        <kwd>Social Semantic Data</kwd>
        <kwd>Continuous Query</kwd>
        <kwd>Real-time Analysis</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>\Which are the hottest topics under discussion on Twitter?" \Who is discussing
about Italian food right now?" \What have my close friends been discussing in
the last hour?" \Who is now discussing about Tuscany red wines in my social
network?" \How many people have been twittering about northern Italy white
wines in the last three hours?"</p>
      <p>
        The information required to answer those queries is increasingly becoming
available on the Web. On the one side, we observe a trend in Web 2.0 as blogs,
feeds and microblogs are adopted to disseminate and publish information in
real-time streams trough social networking Web sites. This trend is often
referred to as the Twitter phenomenon or, in more broader terms, as the so-called
blogosphere. On the other side, a trend can be also observed towards the
interlinking of Social Web with semantics [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] using vocabularies such as
SemanticallyInterlinked Online Communities1 (SIOC), Friend-of-a-Friend2 (FOAF) and
Simple Knowledge Organization System3 (SKOS).
      </p>
    </sec>
    <sec id="sec-2">
      <title>1 http://rdfs.org/sioc/spec/</title>
      <p>2 http://xmlns.com/foaf/spec/
3 www.w3.org/2004/02/skos/</p>
      <p>
        As concrete examples, we can refer to three pioneers in this eld
{ SMOB [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is a distributed and decentralized microblogging system built on
SIOC and FOAF, for which the authors implemented both a publishing and
an aggregating service prototype.
{ Smesher [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is a Semantic Microblogging client that integrates Twitter and
identi.ca, detects structure in microposts, extracts content in RDF and allows
SPARQL queries over the extracted information.
{ SemanticTweet4 is a simple Web service that generates a FOAF RDF
document from the list of Twitter friends and followers of any Twitter user using
the Twitter REST API.
      </p>
      <p>Several attempts to provide answers to those questions exist both by
employing Information Retrieval (IR) methods (e.g., technorati.com, icerocket.com,
blogsearchengine.com, blogsearch.google.com) and Semantic Web methods (e.g.,
the SIOC API of sindice.com, SMOB aggregator and Smesher). Our claim is that
answering such questions in the space of one-time semantics of current IR and
Semantic Web tools is di cult because the underlying data are streams.</p>
      <p>
        Data streams are unbounded sequences of time-varying data elements. They
have been recognized in a variety of modern applications, such as network
monitoring, tra c engineering, sensor networks, RFID tag applications, telecom call
records and nancial applications. Processing of data streams has been largely
investigated in the last decade [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], specialized Data Stream Management
Systems (DSMS) have been developed, and features of DSMS are becoming
supported by major database products, such as Oracle and DB2.
      </p>
      <p>DSMS represent a paradigm change in the database world as they move from
persistent relations and user-invoked queries to transient streams and continuous
queries. The innovative assumption is that streams can be consumed on the y
rather than being stored forever and that queries which are persistently
monitoring streams are able to produce their answers even in the absence of invocation.
DSMS can support parallel query answering over data originating in real-time
and can cope with bursts of data by adapting their behavior to gracefully
degrade answer accuracy by introducing higher levels of approximation. However,
even if such DSMS systems proved to be an optimal solution for on the y
analysis of data streams, they cannot perform complex reasoning tasks, such as the
ones required for computing the answers to the above questions.</p>
      <p>At the same time, while Semantic Web reasoners are year after year scaling up
in the classical, time invariant domain of RDF triples and ontological knowledge,
reasoning upon rapidly changing information has been neglected or forgotten so
far. Reasoning systems assume static knowledge, and do not manage \changing
worlds"|at most, one can update the ontological knowledge and then repeat
the reasoning tasks.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], we propose Stream Reasoning as the new multi-disciplinary approach
which will provide the abstractions, foundations, methods, and tools required to
      </p>
    </sec>
    <sec id="sec-3">
      <title>4 http://semantictweet.com/</title>
      <p>integrate data streams and reasoning systems, thus giving answer to the above
and other questions from di erent domains.</p>
      <p>The rest of the paper is organized as follows. In Section 2, we provide the
background needed to understand the proposed extensions to RDF and SPARQL
introduced in Sections 3.1 and 3.3, respectively. In Section 4, we describe an
architecture and implementation of a C-SPARQL engine. Section 5 is dedicated
to the comparison of C-SPARQL to SPARQL using the real-world social data
streams described in Section 3.2. We close the paper by discussing related work
in Section 6 and draw conclusions in Section 7.
2</p>
      <sec id="sec-3-1">
        <title>Background</title>
        <p>2.1</p>
        <p>Data Streams
This section illustrates previous work on data streams and the SPARQL
language.</p>
        <p>
          DSMS are based on the observation that not only is it impossible to control the
order in which data items arrive in a stream, but, even more importantly, it is
not feasible to locally store a stream in its entirety [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>
          The Chronicle data model [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] is one of the rst models proposed for data
streams. It introduced the concept of chronicles, append-only ordered sequences
of tuples, as well as a restricted view de nition language and an algebra that
operates both over chronicles and traditional relations. OpenCQ [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], NiagaraCQ [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
and Aurora [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] are representative implementations of DSMS addressing
continuous queries and distribution issues.
        </p>
        <p>
          The rst query language tailored to data streams, CQL [
          <xref ref-type="bibr" rid="ref11 ref12">11, 12</xref>
          ], was the result
of research done by Babu et al. [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] on the problem of continuous queries over
data streams, addressing semantic issues as well as e ciency concerns. They
specify a general and exible architecture for query processing in the presence
of data streams.
        </p>
        <p>
          More recently, Law et al. [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] put particular emphasis on the problem of
mining data streams [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. They conceived and developed Stream Mill [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], which
considers and addresses data mining issues extensively, speci cally with respect
to the problem of online data aggregation and to the distinguishing notion of
blocking and non-blocking operators. Its query language (ESL) e ciently
supports physical and logical windows (with optional slides and tumbles) on both
built-in aggregates and user-de ned aggregates. The constructs introduced in
ESL extend the power and generality of DSMS.
2.2
        </p>
        <p>
          SPARQL
SPARQL has been developed under the patronage of the W3C as the standard
query language for RDF. Therefore, the most authoritative source on its syntax
and semantics is the W3C recommendation [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. Several papers, however, discuss
extensions to the SPARQL language as de ned by the W3C.
        </p>
        <p>With the goal of proposing a syntactic and semantic extension to SPARQL,
we found the following works particularly useful.</p>
        <p>
          { Gutierrez et al. [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], who de ne a conjunctive query language for RDF with
basic patterns, which is a formal and unambiguous basis for de ning the
semantics of SPARQL queries evaluation;
{ Perez et al. [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], who analyze the semantics and complexity of SPARQL; and
{ Cyganiak [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] and Haase et al. [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], who independently present a relational
model of SPARQL which allows to implement SPARQL queries over a
relational database engine.
3
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>RDF Streams and Continuous SPARQL</title>
        <p>Data models and query languages for DSMS are not su cient for continuously
querying and analyzing in real-time streams of RDF. Indeed, we deem that there
is a potential interest for giving up one-time semantics in RDF repositories as
well, so as to explore the bene ts provided by continuous semantics. Therefore,
we introduce RDF streams as the natural extension of the RDF data model to
the new continuous scenario and Continuous SPARQL (or simply C-SPARQL)
as the extension of SPARQL for querying RDF streams.
3.1</p>
        <p>RDF Streams
An RDF stream is de ned as an ordered sequence of pairs, where each pair is
constituted by an RDF triple and its timestamp .</p>
        <p>. . .</p>
        <p>(hsubji; predi; objii , i)
(hsubji+1; predi+1; obji+1i , i+1)</p>
        <p>. . .</p>
        <p>Timestamps can be considered the context of RDF triples. They are
monotonically non-decreasing in the stream ( i i+1). They are not strictly increasing
because timestamps are not required to be unique. Any (unbounded, though
nite) number of consecutive triples can have the same timestamp, meaning that
they occur at the same time, although sequenced in the stream according to
some positional order. Our de nition of RDF streams extends RDF in the same
way as the stream type in CQL extends the relation type.</p>
        <p>
          Named graphs [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] and N-Quads [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], a format that extends N-Triples with
context, can be both adopted as a concrete serialization for RDF streams. For our
experiments we adopt N-Quads and we use as context the timestamp encoded
as a RDF literal of type xsd:dateTime.
        </p>
        <p>
          A Real Source of Social Semantic Data Streams
Given that RDF streams of social semantic data are not readily available yet, we
decided to use the data provided by Social Network Glue5. Glue enables users to
connect with their friends on the Web based on the pages the users visit online.
Using semantic recognition technologies to automatically identify books, music,
movies, wines, stocks, movie stars and many other similar topics, it generates a
continuous stream of the identi ed objects which is accessible in real time
using a REST API6. The REST request \http://api.getglue.com/v1/glue/recent"
returns the 250 most recent public interactions. We adopted the GRDDL
approach [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] and implemented a simple way to translate the resulting XML into
RDF. A live version is running at http://c-sparql.cefriel.it/sdow-demo. Below,
we provide a snapshot of the resulting RDF stream.
        </p>
        <p>Subject Predicate Object Timestamp
glueinter:i1 rdf:type sioc:Post \2009-07-20T22:48:52Z"
glueinter:i1 sioc:content \The Proposal on imdb.com" \2009-07-20T22:48:52Z"
glueinter:i1 sioc:has container http://www.getglue.com \2009-07-20T22:48:52Z"
glueinter:i1 dc:title \The Proposal" \2009-07-20T22:48:52Z"
glueuser:id1 rdf:type sioc:User \2009-07-20T22:48:52Z"
glueinter:i1 sioc:has creator glueuser:id1 \2009-07-20T22:48:52Z"
glueinter:i1 sioc:topic gluecat:movies \2009-07-20T22:48:52Z"
glueinter:i2 rdf:type sioc:Post \2009-07-20T22:48:54Z"
glueinter:i2 sioc:content \Mario Kart Wii on gamefaqs.com" \2009-07-20T22:48:55Z"
glueinter:i2 sioc:has container http://www.getglue.com \2009-07-20T22:48:55Z"
glueinter:i2 dc:title \Mario Kart Wii" \2009-07-20T22:48:55Z"
glueuser:id2 rdf:type sioc:User \2009-07-20T22:48:55Z"
glueinter:i2 sioc:has creator glueuser:id2 \2009-07-20T22:48:55Z"
glueinter:i2 sioc:topic glueint:video games \2009-07-20T22:48:55Z"
Similarly to SemanticTweet, we are also able to translate the social
relationships obtained using the REST service \/user/friends" into FOAF.
3.3</p>
        <p>
          Continuous SPARQL
C-SPARQL is an extension of SPARQL for querying both RDF graphs and
RDF streams. The complete de nition of the language in terms of syntax and
semantics is given in [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. We brie y repeat the de nitions of the distinguishing
features of the language here and show how to write the queries that evaluate
the answers to the questions which opened this paper.
        </p>
        <p>Continuous Queries The distinguishing feature of C-SPARQL is the support
for continuous queries, i.e. queries that are registered and then executed
continuously over windows opened on RDF streams and standard RDF graphs.
Continuous queries, which make usage of aggregates, are particularly relevant.</p>
        <p>A C-SPARQL query is registered using the grammar extension provided by
the rst of the following two production rules.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5 http://getglue.com</title>
      <p>6 http://getglue.com/api
Registration ! `REGISTER QUERY' QueryName `AS' Query
Registration ! `REGISTER STREAM' QueryName `AS' Query</p>
      <p>As output C-SPARQL queries produce the same types as SPARQL queries:
boolean answers, selections of variable bindings, RDF descriptions of the involved
resources or constructions of new RDF triples. These outputs are continuously
renewed in each query execution. In addition, C-SPARQL queries can be
registered to produce new RDF streams using the grammar extension provided by
the second production rule given above. In this second case, only CONSTRUCT
and DESCRIBE queries can be registered, as they produce RDF triples that, once
associated with a timestamp, yield RDF streams that can be managed in
CSPARQL.</p>
      <p>
        Windows Given that RDF streams are intrinsically in nite, we introduce the
notion of windows upon RDF streams, whose types and characteristics are
inspired by those of the windows in continuous query languages such as CQL [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
Identi cation and windowing are expressed in C-SPARQL by means of the FROM
STREAM clause.
      </p>
      <p>FromStrClause ! `FROM' [`NAMED'] `STREAM' StreamIRI `[ RANGE' Window `]'</p>
      <p>From the RDF stream identi ed by StreamIRI, a window extracts the last
triples, which are considered by the query. The extraction can be physical (a
given number of triples) or logical (a variable number of triples which occur
during a given time interval).</p>
      <p>The part of C-SPARQL that we introduced so far is su cient to address the
question \What have my closest friends been visiting in the last hour?" Below,
we show how to formulate this query in C-SPARQL over the Glue interaction
stream and the graph of FOAF relationships described in Section 3.2.</p>
      <p>REGISTER QUERY WhatHaveMyCloseFriendsBeenVisitingInTheLastHour AS
PREFIX sioc: &lt;http://rdfs.org/sioc/ns#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX glue: &lt;http://c-sparql.cefriel.it/sdow-demo/&gt;
SELECT DISTINCT ?friend ?topic
FROM &lt;http://c-sparql.cefriel.it/sdow-demo/glueusers.rdf&gt;
FROM STREAM &lt;http://c-sparql.cefriel.it/sdow-demo/interactions.trdf&gt;
[ RANGE 60m STEP 5m ]
WHERE { glue:id1 foaf:knows ?friend .</p>
      <p>?post sioc:has_creator ?friend .
?post rdf:type sioc:Post .</p>
      <p>?post sioc:topic ?topic . }</p>
      <p>The rst triple pattern matches triples in the FOAF graph, whereas the other
three triple patterns match triples in a sliding window of 60 minutes opened on
the RDF stream, which advances progressively in steps of 5 minutes.
Aggregation Another question that we could answer using a C-SPARQL is
\Which are the top topics in Glue?" To do so, we also need to introduce the
aggregation capabilities that we added to C-SPARQL. We allow multiple
independent aggregations within the same C-SPARQL query, thus pushing the
aggregation capabilities beyond those of SQL and other proposals for
aggregation in SPARQL7. Aggregation clauses have the following syntax.
AggregateClause ! ( `AGGREGATE { (' var `,' Fun `,' Group `)' [Filter] `}' )*
Fun ! `COUNT' j `SUM' j `AVG' j `MIN' j `MAX'
Group ! var j `{' var ( `,' var )* `}'</p>
      <p>An aggregation clause starts with a new variable not occurring in the WHERE
clause, followed by an aggregation function and closed by a set of one or more
variables, occurring in the WHERE clause, which express the grouping criteria. For
instance, the query above can be expressed in C-SPARQL as follows.</p>
      <p>REGISTER QUERY TopTopicsGlueUsersAreInterestedIn AS
PREFIX sioc: &lt;http://rdfs.org/sioc/ns#&gt;
SELECT DISTINCT ?topic ?number
FROM STREAM &lt;http://c-sparql.cefriel.it/sdow-demo/glueinteractions.trdf&gt;
[ RANGE 30m STEP 10m ]
WHERE { ?post sioc:topic ?topic . }</p>
      <p>AGGREGATE {(?number , COUNT , {?topic })}
4</p>
      <sec id="sec-4-1">
        <title>A C-SPARQL Engine</title>
        <p>The C-SPARQL engine was designed based on a separation of concerns between
stream management and query evaluation. This separation is the foundation for
a simple architecture for C-SPARQL, built upon known database and
reasoning technolgies. Figure 1 shows the three main components of our C-SPARQL
execution framework.</p>
        <p>The module named C-SPARQL Query Parser gets a C-SPARQL query as
input and produces the information needed by the Data Stream Manager Layer
and the SPARQL EndPoint Layer to execute the query. The data stream
manager registers the data streams speci ed in the query and applies logical or
physical windows. When the resulting graph has been produced, the SPARQL
part of the C-SPARQL query is executed by the SPARQL endpoint. This process
is executed as frequently as speci ed in the REGISTER clause of the C-SPARQL
query. Finally, the result computed is timestamped and passed on. Both the data
stream manager and the SPARQL endpoint are considered plugins, in order to
be independent from the actual DSMS/SPARQL engine implementations that
will be used. We have implemented a prototype based on this architecture using
ESPER as a DSMS and Jena as a SPARQL endpoint.</p>
        <p>ESPER8 is a component for stream processing applications, which require
high throughput to process large volumes of data elements (between 1,000 to
100k messages per second) and low latency to react in real-time (from a few</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>7 http://esw.w3.org/topic/SPARQL/Extensions/Aggregates 8 http://esper.codehaus.org/</title>
      <p>C-SPARQL</p>
      <p>Query Parser
Continuous part</p>
      <p>REGISTER
FROM STREAM
Data Stream
Manager Layer</p>
      <p>Standard
SPARQL Query</p>
      <p>SPARQL</p>
      <p>EndPoint Layer
milliseconds to a few seconds). In particular, it supports the various forms of
windows we de ned in C-SPARQL (i.e., sliding and tumbling windows both in
terms of time and length) and several forms of aggregation we plan to exploit
for optimizations based on query rewriting.</p>
      <p>Jena9 is a Java framework for building Semantic Web applications. We choose
it, because it includes a custom RDF storage engine for high performance
applications and a SPARQL query engine. The SPARQL engine supports standard
SPARQL and aggregation, GROUP BY and assignment as SPARQL extensions.</p>
      <p>The adoption of o -the-shelf stream management systems and reasoning tools
both provide a solid framework and a fast way of prototyping.
5</p>
      <sec id="sec-5-1">
        <title>Evaluation</title>
        <p>In order to evaluate, our approach we compared the time required to compute a
C-SPARQL query with our engine, to the time needed to execute an equivalent
SPARQL query in Jena using its SPARQL engine over its custom RDF storage
engine. The tests have been run on a Pentium Core 2 Quad 2.0GHz with 2GB
of main memory.</p>
        <p>As representative C-SPARQL query we chose the following one, in which we
count how many Glue users are interested in the various topics recognized by
Glue in the last 3 minutes.</p>
        <p>REGISTER QUERY CountHowManyGlueUsersAreInterestedInEachTopic AS
PREFIX sioc: &lt;http://rdfs.org/sioc/ns#&gt;
SELECT DISTINCT ?topic ?number
FROM STREAM &lt;http://c-sparql.cefriel.it/sdow-demo/interactions.trdf&gt;
[ RANGE 3m STEP 10s ]
WHERE { ?post sioc:topic ?topic . }
AGGREGATE {(?number , COUNT , {?topic })}</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>9 http://jena.sourceforge.net/</title>
      <p>This simple query showcases all characteristics of C-SPARQL, namely,
registration, selection of triples based on a window over a RDF stream and an
aggregate function.</p>
      <p>We registered this C-SPARQL query in our engine and continuously executed
it every second. We run two experiments feeding new triples from the RDF
stream into the C-SPARQL engine at two di erent rates: 5 triples per second
(5 t/s) and 200 t/s. In both experiments, we measured the time required to
compute the answer with the triples in the window.</p>
      <p>It is possible to write a SPARQL query, which computes the same results
as the C-SPARQL query above, by adding (a) a triple pattern that matches
the creation date of the post, (b) a FILTER clause that selects the same time
interval of the C-SPARQL query, and (c) an aggregate function that counts the
number of topics using Jena SPARQL extensions for aggregates.</p>
      <p>PREFIX sioc: &lt;http://rdfs.org/sioc/ns#&gt;
PREFIX dcterms: &lt;http://purl.org/dc/terms/&gt;
PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
SELECT ?topic count(?topic)
WHERE { ?post sioc:topic ?topic .</p>
      <p>?post dcterms:created ?date .</p>
      <p>FILTER (?date &gt; ‘‘2009-07-20T22:47:00Z’’ˆˆxsd:dateTime</p>
      <p>&amp;&amp; ?date &lt; ‘‘2009-07-20T22:50:00Z’’ˆˆxsd:dateTime ) }
GROUP BY ?topic</p>
      <p>Using Jena, we executed the above SPARQL query six times against
repositories containing the rst 100, 500, 1000, 1500, 2000 and 2500 triples, respectively.
In these experiments, we again measured the time required to compute each
answer.</p>
      <p>The results are shown in Figure 2 and are named SPARQL. Comparing the
linear regressions of the three experiments, named Linear(SPARQL),
Linear(CSPARQL 5 t/s) and Linear(C-SPARQL 200 t/s), we see that the C-SPARQL
window based selection always performs signi cantly better than the FILTER
based selection of SPARQL in Jena. Notably, this result holds both for a low
triple per second rate of 5 t/s and a reasonably high rate of 200 t/s.
6</p>
      <sec id="sec-6-1">
        <title>Related Work</title>
        <p>
          A previous e ort to combine SPARQL and data streams is presented in Bolles
et al. [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]. They introduce a syntax for the speci cation of logical and physical
windows in SPARQL queries by means of local grammar extensions.
        </p>
        <p>Our approach is di erent from their in several key aspects. First, Bolles et
al. omit essential ingredients such as aggregate functions, thus the resulting
expressive power is not su cient to express interesting practical queries such as
\Which are the top topics under discussion?". Second, the authors do not follow
the approach, established by DSMS, to only use windows to transform streaming
data into non-streaming data in order to apply standard algebraic operations.
Bolles et al. choose to also change the standard SPARQL operators by making
them timestamp-aware and, thereby, e ectively introduce a new language
semantics. Finally, their approach allows window clauses to appear within SPARQL</p>
        <p>Response Time C-SPARQL vs. SPARQL
40
30
s
m20
10
0
0</p>
        <p>500 1000 1500 2000
number of triples in the window (C-SPARQL) or in the repository (SPARQL)
2500
SPARQL
Linear (SPARQL)</p>
        <p>C-SPARQL 5 t/2
Linear (C-SPARQL 5 t/2)</p>
        <p>C-SPARQL 200 t/s
Linear (C-SPARQL 200 t/s)
group graph pattern expressions. This makes the query syntax more intricate
and it complicates query evaluation. Moreover, it violates the separation of
concerns between stream management and query evaluation that is the basis of our
simple architecture for C-SPARQL engines.
7</p>
      </sec>
      <sec id="sec-6-2">
        <title>Conclusions</title>
        <p>We began this paper with a list of questions related to social data on the Web
that stress the streaming nature of blogs and microblogs. Our initial claim was
that social data should not be treated as persistent data to be stored forever
and queried on demand, but rather as transient data to be consumed on the y
by registered queries. In order to prove this claim, we have made the following
arguments in this paper.</p>
        <p>{ RDF streams can be de ned by extending RDF data type with a notion of
timestamp;
{ RDF streams can be serialized as N-Quads;
{ sources of RDF streams are available and can be obtained from blogs and
microblogs with the same approach used to obtain the RDF representations
used for social semantic data;
{ SPARQL can be extended with the notion of continuous query registered
once and for all that keep monitoring such RDF streams, producing answers
triggered by the streaming data and not by explicit invocation;
{ C-SPARQL queries can be evaluated using a simple architecture based on
the decision to keep stream management and query evaluation separated;
and
{ in terms of response time, even in a naive implementation of this architecture
the window based selection of C-SPARQL outperforms the FILTER based
selection needed to formulate the equivalent query in SPARQL.</p>
        <p>Moreover, we do not exploit several optimization opportunities. On the one
hand, we can adopt smarter query rewriting techniques that push part of a
C-SPARQL query evaluation from the SPARQL engine to the DSMS. On the
other hand, we are not considering the parallel nature of streams and thus the
opportunity for parallel continuous query processing.</p>
        <p>
          Finally, we have been limiting ourselves to treat RDF as relational data
without considering it part of the Semantic Web stack. We are currently investigating
techniques [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ] to incrementally maintain materialization of knowledge derived
by the triples currently selected by the window.
        </p>
        <p>Acknowledgements
The work described in this paper has been partially supported by the European
project LarKC (FP7-215535). Michael Grossniklaus's work is carried out under
SNF grant number PBEZ2-121230.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bojars</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Breslin</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peristeras</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tummarello</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Interlinking the social web with semantics</article-title>
          .
          <source>IEEE Intelligent Systems</source>
          <volume>23</volume>
          (
          <issue>3</issue>
          ) (
          <year>2008</year>
          )
          <volume>29</volume>
          {
          <fpage>40</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Passant</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hastrup</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bojars</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Breslin</surname>
          </string-name>
          , J.:
          <article-title>Microblogging: A semantic web and distributed approach</article-title>
          . In: 4th Workshop
          <string-name>
            <surname>Scripting</surname>
          </string-name>
          <article-title>For the Semantic Web (SFSW2008) co-located with ESWC2008</article-title>
          .
          <article-title>(</article-title>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Nowack</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Semantic microblogging</article-title>
          . In: Microblogging Conference. (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Garofalakis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gehrke</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rastogi</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Data Stream Management: Processing High-Speed Data Streams (Data-Centric Systems</article-title>
          and Applications). SpringerVerlag New York, Inc., Secaucus, NJ, USA (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Della</given-names>
            <surname>Valle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Braga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Celino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Frensel</surname>
          </string-name>
          , D., van
          <string-name>
            <surname>Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Unel</surname>
          </string-name>
          , G.:
          <article-title>Research chapters in the area of stream reasoning</article-title>
          .
          <source>In: SR2009. Volume 466 of CEUR Workshop Proceedings., CEUR-WS.org</source>
          (
          <year>2009</year>
          ) online http://ceurws.org/Vol-
          <volume>466</volume>
          /sr2009-intro.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Golab</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>DeHaan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demaine</surname>
            ,
            <given-names>E.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lopez-Ortiz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Munro</surname>
            ,
            <given-names>J.I.</given-names>
          </string-name>
          :
          <article-title>Identifying Frequent Items in Sliding Windows over On-line Packet Streams</article-title>
          .
          <source>In: Proc. Intl. Conf. on Internet Measurement (IMC</source>
          <year>2003</year>
          ).
          <article-title>(</article-title>
          <year>2003</year>
          )
          <volume>173</volume>
          {
          <fpage>178</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Jagadish</surname>
            ,
            <given-names>H.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mumick</surname>
            ,
            <given-names>I.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silberschatz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>View Maintenance Issues for the Chronicle Data Model</article-title>
          .
          <source>In: Proc. ACM Symp. on Principles of Database Systems (PODS</source>
          <year>1995</year>
          ).
          <article-title>(</article-title>
          <year>1995</year>
          )
          <volume>113</volume>
          {
          <fpage>124</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pu</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tang</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Continual Queries for Internet Scale Event-Driven Information Delivery</article-title>
          .
          <source>IEEE Trans. Knowl. Data Eng</source>
          .
          <volume>11</volume>
          (
          <issue>4</issue>
          ) (
          <year>1999</year>
          )
          <volume>610</volume>
          {
          <fpage>628</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>DeWitt</surname>
          </string-name>
          , D.J.,
          <string-name>
            <surname>Tian</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>NiagaraCQ: A Scalable Continuous Query System for Internet Databases</article-title>
          . In Chen, W.,
          <string-name>
            <surname>Naughton</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bernstein</surname>
          </string-name>
          , P.A., eds.
          <source>: Proc. ACM Intl. Conf. on Management of Data (SIGMOD</source>
          <year>2000</year>
          ).
          <article-title>(</article-title>
          <year>2000</year>
          )
          <volume>379</volume>
          {
          <fpage>390</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Balakrishnan</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balazinska</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carney</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cetintemel</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cherniack</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Convey</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Galvez</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stonebraker</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tatbul</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tibbetts</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zdonik</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Retrospective on Aurora.
          <source>The VLDB Journal</source>
          <volume>13</volume>
          (
          <issue>4</issue>
          ) (
          <year>2004</year>
          )
          <volume>370</volume>
          {
          <fpage>383</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Arasu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Babcock</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Babu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Datar</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ito</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nishizawa</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosenstein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Widom</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>STREAM: The Stanford Stream Data Manager (Demonstration Description)</article-title>
          .
          <source>In: Proc. ACM Intl. Conf. on Management of data (SIGMOD</source>
          <year>2003</year>
          ).
          <article-title>(</article-title>
          <year>2003</year>
          )
          <fpage>665</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Arasu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Babu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Widom</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The CQL Continuous Query Language: Semantic Foundations</article-title>
          and
          <string-name>
            <given-names>Query</given-names>
            <surname>Execution</surname>
          </string-name>
          .
          <source>The VLDB Journal</source>
          <volume>15</volume>
          (
          <issue>2</issue>
          ) (
          <year>2006</year>
          )
          <volume>121</volume>
          {
          <fpage>142</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Babu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Widom</surname>
          </string-name>
          , J.:
          <article-title>Continuous Queries over Data Streams</article-title>
          .
          <source>SIGMOD Rec</source>
          .
          <volume>30</volume>
          (
          <issue>3</issue>
          ) (
          <year>2001</year>
          )
          <volume>109</volume>
          {
          <fpage>120</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Law</surname>
            ,
            <given-names>Y.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaniolo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Query Languages and Data Models for Database Sequences and Data Streams</article-title>
          .
          <source>In: Proc. Intl. Conf. on Very Large Data Bases (VLDB</source>
          <year>2004</year>
          ).
          <article-title>(</article-title>
          <year>2004</year>
          )
          <volume>492</volume>
          {
          <fpage>503</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Law</surname>
            ,
            <given-names>Y.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaniolo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>An Adaptive Nearest Neighbor Classi cation Algorithm for Data Streams</article-title>
          .
          <source>In: Proc. Europ. Conf. on Principles and Practice of Knowledge Discovery in Databases (PKDD</source>
          <year>2005</year>
          ).
          <article-title>(</article-title>
          <year>2005</year>
          )
          <volume>108</volume>
          {
          <fpage>120</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Bai</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thakkar</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaniolo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A Data Stream Language and System Designed for Power and Extensibility</article-title>
          .
          <source>In: Proc. Intl. Conf. on Information and Knowledge Management (CIKM</source>
          <year>2006</year>
          ).
          <article-title>(</article-title>
          <year>2006</year>
          )
          <volume>337</volume>
          {
          <fpage>346</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Prud'hommeaux</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>Seaborne</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>SPARQL Query Language for RDF</article-title>
          . http://www.w3.org/TR/rdf-sparql-query/
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Gutierrez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hurtado</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mendelzon</surname>
            ,
            <given-names>A.O.</given-names>
          </string-name>
          :
          <article-title>Foundations of Semantic Web Databases</article-title>
          .
          <source>In: Proc. ACM Symp. on Principles of Database Systems (PODS</source>
          <year>2004</year>
          ).
          <article-title>(</article-title>
          <year>2004</year>
          )
          <volume>95</volume>
          {
          <fpage>106</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Perez</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arenas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gutierrez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Semantics and Complexity of SPARQL</article-title>
          .
          <source>In: Proc. Intl. Semantic Web Conf. (ISWC</source>
          <year>2006</year>
          ).
          <article-title>(</article-title>
          <year>2006</year>
          )
          <volume>30</volume>
          {
          <fpage>43</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Cyganiak</surname>
          </string-name>
          , R.:
          <article-title>A Relational Algebra for SPARQL</article-title>
          .
          <source>Technical report</source>
          , HP-Labs
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Haase</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Broekstra</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eberhart</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Volz</surname>
          </string-name>
          , R.:
          <article-title>A Comparison of RDF Query Languages</article-title>
          .
          <source>In: Proc. Intl. Semantic Web Conf. (ISWC</source>
          <year>2004</year>
          ).
          <article-title>(</article-title>
          <year>2004</year>
          )
          <volume>502</volume>
          {
          <fpage>517</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Carroll</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hayes</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stickler</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Named graphs, provenance and trust</article-title>
          . In: WWW. (
          <year>2005</year>
          )
          <volume>613</volume>
          {
          <fpage>622</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Cyganiak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hogan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>N-quads: Extending n-triples with context</article-title>
          . http://sw.deri.org/
          <year>2008</year>
          /07/n-quads/ (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Connolly</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , et al.:
          <article-title>Gleaning Resource Descriptions from Dialects of Languages (GRDDL) -</article-title>
          W3C
          <string-name>
            <surname>Recommendation</surname>
          </string-name>
          . Available on the Web at http://www.w3.org/TR/grddl/ (
          <issue>11</issue>
          <year>September 2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Barbieri</surname>
            ,
            <given-names>D.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Braga</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Della Valle</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grossniklaus</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>C-SPARQL: SPARQL for continuous querying</article-title>
          .
          <source>In: WWW</source>
          . (
          <year>2009</year>
          )
          <volume>1061</volume>
          {
          <fpage>1062</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Bolles</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grawunder</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jacobi</surname>
          </string-name>
          , J.:
          <string-name>
            <surname>Streaming</surname>
            <given-names>SPARQL</given-names>
          </string-name>
          {
          <article-title>Extending SPARQL to Process Data Streams</article-title>
          .
          <source>In: Proc. Europ. Semantic Web Conf. (ESWC</source>
          <year>2008</year>
          ).
          <article-title>(</article-title>
          <year>2008</year>
          )
          <volume>448</volume>
          {
          <fpage>462</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Volz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Staab</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Incrementally maintaining materializations of ontologies stored in logic databases</article-title>
          .
          <source>J. Data Semantics</source>
          <volume>2</volume>
          (
          <year>2005</year>
          )
          <volume>1</volume>
          {
          <fpage>34</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>