<!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>Towards a distributed, scalable and real-time RDF Stream Processing engine</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Xiangnan Ren</string-name>
          <email>fxiang-nan.reng@atos.net</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ATOS - 80 Quai Voltaire</institution>
          ,
          <addr-line>95870 Bezons</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ISEP - LISITE</institution>
          ,
          <addr-line>Paris 75006</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>LIGM (UMR 8049)</institution>
          ,
          <addr-line>CNRS, UPEM, F-77454, Marne-la-Vallee</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Due to the growing need to timely process and derive valuable information and knowledge from data produced in the Semantic Web, RDF stream processing (RSP) has emerged as an important research domain. Of course, modern RSP have to address the volume and velocity characteristics encountered in the Big Data era. This comes at the price of designing high throughput, low latency, fault tolerant, highly available and scalable engines. The cost of implementing such systems from scratch is very high and usually one prefers to program components on top of a framework that possesses these properties, e.g., Apache Hadoop or Apache Spark. The research conducting in this PhD adopts this approach and aims to create a production-ready RSP engine which will be based on domain standards, e.g., Apache Kafka and Spark Streaming. In a nutshell, the engine aims to i) address basic event modeling - to guarantee the completeness of input data in window operators, ii) process real-time RDF stream in a distributed manner - e cient RDF stream handling is required; iii) support and extend common continuous SPARQL syntax - easy-to-use, adapt to the industrial needs and iv) support reasoning services at both the data preparation and query processing levels.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Problem statement</title>
      <p>
        Nowadays, the RDF data format is getting more and more popular in the Internet
of Things (IoT) ecosystem, i.e., data produced by sensors or other devices are
either directly represented as RDF triples or trasnformed into this standard. The
heterogeneous nature of IoT data sources potentially presents multiple challenges
for the implementation of real-time RDF Stream Processing (RSP) services.
These challenges refer to four distinct problematics [
        <xref ref-type="bibr" rid="ref16 ref2 ref25 ref9">16,25,9,2</xref>
        ]:
1. functionality support: from a user friendliness perspective, the RSP engine
is supposed to support common SPARQL syntax.
2. correctness of output: the query answers produced by the system are
expected to be correct.
3. performance: like any other stream processing system, high throughput, low
response latency, scalability are considered as the performance criteria for
RSP engine.
4. reasoning: correctness and completeness of query answers may depend on
computed inferences.
      </p>
      <p>
        To address the above-mentioned problems, we can identify two categories of
RSP engines which have designed in the last few years. The category of
centralized systems, including C-SPARQL [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], CQELS [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], SPARQLstream [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], ETALIS
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]/EP-SPARQL1 have lead the way in the direction of RDF stream processing
but are limited in terms of the amount of events that can handle. This has
motivated a second generation of RSP which are distributed, e.g., CQELS-Cloud
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], Katts [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and Distributed-Etalis. Although reaching better throughput
and latency performances, these systems do not integrate the state of the art
approaches that are currently guaranteeing fault tolerance, highly availability
and scalability and which can enforce the system's robustness and correctness.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Problem Relevancy and Motivation</title>
      <p>Stream processing in general is one of the hottest topics in Big data. It is
currently supporting analytics functionalities that have not been considered before.
This is mainly due to the popularization of Web technologies (i.e., the pipeline
that provides streams) as well as advancements in computing (i.e., emergence of
distributed frameworks that facilitate the design of parallel computations).</p>
      <p>RDF data is relevant in this streaming context because i) it is a popular
graph format equipped with an expressive SPARQL query language, ii) it is
anchored in the Web with its wide use of URIs and iii) it has the ability to
support reasoning services.</p>
      <p>The project within which my PhD research is taking place requires an
important subset of the Semantic Web standards, namely RDF, RDFS and OWL
considering facilities to represent and reason graph data and knowledge, SPARQL
as a well-established query language and Linked Open Data to access external
knowledge. The project concerns industrial water resources management. The
events emitted from various sensors correspond to pressure, ow, chlorine,
temperature, turbidity, etc. values and need to be processed almost in real-time to
trigger system alerts. The analysis of these events is especially valuable if joined
with external, contextual data such as the geographical properties where the
sensor is situated.</p>
      <p>Of course, our goal is to design a generic RSP engine that can adapt easily
to use cases concerned with other domains. Intuitively, the goal is to seamlessly
integrate novel ontologies, data/knowledge repositories and sets of queries within
a highly distributed, reasoning-enabled, continuous query and complex event
processing system. This aspect is particularly important since the PhD thesis
is funded by a large IT company which envisions to have commercial activities
using this system.
1 EP-SPARQL, a wrapper of ETALIS to support SPARQL-like syntax</p>
    </sec>
    <sec id="sec-3">
      <title>Related work</title>
      <p>
        In the last few years, a variety of RDF stream processing engines have been
proposed. As mentioned in section 1, the design of RSP needs to cover three
aspects [
        <xref ref-type="bibr" rid="ref16 ref2">16,2</xref>
        ]: functionality support, output correctness and performance. Engine
performance is the most concerned issue, since the ne-grained and schema-free
nature of RDF data could lead to intensive join operations on query task. For
the convenience of illustration, we divide the RSP engines into two categories:
centralized and distributed engines.
      </p>
      <p>Centralized RSP engines: currently, C-SPARQL, CQELS, SPARQLstream,
and ETALIS/EP-SPARQL are popular centralized RSP engines. All of them are
developed to run on a single machine.</p>
      <p>
        Distributed RSP engines: CQELS-Cloud is the rst distributed RSP system
which mainly focuses on the engine elasticity and scalability. The whole system is
based on Storm2. Firstly, CQELS-Cloud compresses the incoming RDF streams
by dictionary encoding in order to reduce the data size and the communication
in the computing cluster. Then, to overcome the performance bottlenecks on join
tasks, the authors propose a parallel multiway join based on probing sequence,
which is inspired by the MJoin algorithm [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. However, CQELS-Cloud uses the
conventional RDF triple (subject; predicate; object) as its data model and has
not provided any event model yet. Furthermore, to the best of our knowledge,
CQELS-Cloud is not completely open source, and current CQELS-Cloud does
not allow external users to de ne customized queries.
      </p>
      <p>Katts is another RSP engine based on Storm, which applies graph
partitioning 3 to optimize the message exchanging for cluster computing. Based on our
evaluation, we can say that Katts allows a limited amount of query operators
and queries with only-streaming data sources. Besides, neither query algebra
optimization nor SPARQL syntax support have been considered. Finally, the
implementation of Katts remains at the stage of scienti c prototype.</p>
      <p>Distributed-ETALIS is a distributed Complex Event Processing (CEP)
engine based on Storm and Kafka 4. Both Distributed-ETALIS and its centralized
version ETALIS implement a rule-based DSL for event detection (pattern
matching). It seems that ETALIS team has stopped the software maintenance. We also
meet a serious scalability problem in our preliminary evaluation of ETALIS.</p>
      <p>
        A distributed RSP system must rely on a generic distributed stream
processing framework such as Storm, Spark Streaming [
        <xref ref-type="bibr" rid="ref23 ref24 ref4">23,4,24</xref>
        ] and Flink 5. These
frameworks have proven their successes in countless scienti c and industrial
applications. Comparing to Spark (Streaming) and Flink, Storm provides a
relatively low-level programming API to allow generic real-time service design. Spark
Streaming, one of the principal components of Spark ecosystem, is a near
realtime distributed computing framework. Current Spark-Streaming is based on
2 http://storm.apache.org
3 http://glaros.dtc.umn.edu/gkhome/views/metis
4 http://kafka.apache.org
5 https://flink.apache.org
micro-batch execution mechanism, and provides the sub-second delay. Flink is
another popular massively parallel data processing engine which supports
realtime data processing and CEP. Due to the enrichment and the maturity of the
platform ecosystems, we choose Spark Streaming as the framework of our RSP
engine.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Research questions</title>
      <p>Given the context of this PhD thesis, the general research question is: How
to e ciently query and reason over massive real-time RDF events data in a
distributed computing environment? To answer this question, the following four
aspects have to be considered:
{ Q1 - Distributed, robust RDF stream query processing: we consider the
design of an architecture for the processing of RDF streams that is highly
available, tolerates failures, scales and guarantees high throughput and low
latencies. No RSP engine possesses all these properties and present
performance gures comparable to non-RDF state of the art engines. In particular,
these last engines are generally designed using a distributed pub/sub
messaging system (e.g., Apache Kafka) and a dedicated stream engine (e.g., Apache
Flink, Storm, Spark streaming, Beam). Replying to this question implies to
adapt RDF peculiarities to this rapidly evolving ecosystem.
{ Q2 - Compression and reasoning: processing (i.e., querying and reasoning)
in a real-time manner over complex graph-based events implies to optimize
all computation aspects. We consider that a decompression-free querying
approach tightly connected to a semantic-based ontology encoding can
guarantee these properties.
{ Q3 - Extending continuous SPARQL query toward complex event
processing capacities: we have identi ed some practical use cases that are requiring
continuous query features that we have not encountered in available
continuous SPARQL query languages, e.g., session-based windows. These laguage
extensions have to be integrated in our declarative query language.
{ Q4 - How to evaluate RSP engines: we need a way to evaluate the system
that is currently being designed. This implies to identify, experiment and
evaluate streaming benchmarks and engines. A set of performance metrics
also need to be de ned to evaluate distributed RSP engines in a cluster
environment.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Preliminary results</title>
      <p>Some preliminary results have obtained for Q4 of section 4. The main idea was
to evaluate three centralized RSP systems, i.e. C-SPARQL, CQELS, ETALIS.
This evaluation de nes a complete set of performance metrics to measure query
latency and memory consumption by varying stream rate, window size, number
of streams , etc. The evaluation of distributed RSP engines are in progress, some</p>
      <p>Fig. 1: Engine architecture
performance metrics need to be added, such as measure the query latency and
engine throughput by varying the number of machines. We have currently tested
Katts on Amazon EC2 6 by using the real-world data. The evaluation results of
Katts are kept for future comparisons with our system. This part of work gives
us a deep understanding on existing RSP engines and continuous SPARQL query
language features. This has helped me on the design and the implementation of
our own RSP engine.</p>
      <p>Recently, I started to develop a prototype 7 that will run continuous SPARQL
queries on Spark Streaming and Kafka. In Figure 1, I provide a high-level view
of the system's architecture. The data obtained from sensors or other sources are
rst encoded as RDF events. Next, the obtained RDF event streams continue
to be serialized into binary format and transmitted to Kafka. Then,
SparkStreaming concurrently receives, caches and deserializes the incoming binary
stream. Finally, the system applies the precompiled optimized logical plan to
proceed the query execution.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Approach</title>
      <p>In this section, I present how I intend to address the Q1, Q2 and Q3 research
questions presented in section 4 as well as how I will validate the system e
ciency.</p>
      <p>
        Q1 addresses to three subquestions: i) Data/Event Modeling. Firstly, the
system aims to support two RDF formats for data updating: triple (i.e. (s; p; o)) by
triple and event by event. Basically, an RDF triple can be regarded as the
simplest RDF graph pattern. I use Sesame [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] to convert the sensors data into RDF
events. An RDF event is essentially a set of triple patterns. To identify each event
and its belonging stream source, the representation of triple pattern (s; p; o) is
extended. I.e., an event is formed as e = (strId; evtId; t; f(sn; pn; on)gn=1;:::;N )
8. ii) SPARQL syntax supporting. To support distributed querying on Spark
6 https://github.com/renxiangnan/RSP_Evaluation_Results
7 https://github.com/renxiangnan/rsp
8 A Java/Scala collection object
Streaming, the incoming RDF event streams need to be cached in window
operator and converted into Spark pre-de ned data structure. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] gives a road map
to choose an appropriate Spark distributed data collection. I create a native
parser to parse SPARQL query into the Spark relational operators. The parser
takes Sesame to transform the SPARQL query operators into an intermediate
inx expression, namely, logical plan. The logical plan will be continuously parsed
into a physical plan (i.e. algebra tree) to proceed the query execution.
      </p>
      <p>
        Due to the real-time aspect in streaming context, some optimization
techniques based on data preprocessing become hardly applicable, e.g. data indexing,
vertical partitioning [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], property tables [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] etc. My current research mainly
focuses on query algebra rewriting. Based on existing work [
        <xref ref-type="bibr" rid="ref13 ref18 ref19 ref20 ref8">18,13,19,8,20</xref>
        ], I plan
to redesign a three-layers optimization strategy to simplify the query algebra,
reduce the overhead of the aggregate operators and adjust the join order of triple
patterns.
      </p>
      <p>
        Q2 concerns compression and reasoning aspects. I approach goes along the
work of ERI[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and RDSZ[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] but aims to go one step further in terms of
compression. That is, we aim to adopt a two structures approach, one containing
graph event patterns and the other one storing data bindings associated to these
graph patterns. Graph patterns will be represented as compact graph signature
that will facilitate the e cient discovery of similar signatures. Moreover, the
elements of these signatures will correspond to semantic-aware numerical encoding
of underlying ontologies. This approach will support reasoning at both
materialization (to enrich graph events that can potentially satisfy a set of continuous
queries) and query reformulation (for optimization and satis ability purposes)
processing.
      </p>
      <p>The continuous SPARQL query language we have implemented so far is
inspired by C-SPARQL. It supports the de nition of di erent window forms, e.g.,
xed or sliding windows, via keywords which are permitted in queries. We have
identi ed an additional session-based window form that is required in some
practical use cases. Hence, the approach to address Q3 will consist in de ning the
proper semantics for additional continuous SPARQL query clauses,
implementing this semantics within our distributed streaming engine and integrating
optimization for this extended query languages, e.g., to support e cient query
reformulation. Finally, this novel approach will be heavily tested and evaluated
against practical use cases and data sets.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Evaluation plan</title>
      <p>Our system will be evaluated on both synthetic and real-world data sets.
Concerning the synthetic data sets, we have already identi ed, experimented and
even extended well-established benchmarks during our work of Q4. The
realworld experimentation will be directly related to the water resources
management use case. It consists of values obtained from real sensors. We aim to test
the system live as well as replay old values and thus test whether our system is
able to discovery peculiar situations that we known have occurred in the past.</p>
      <p>The evaluation will be conducted both in local mode and distributed mode,
with respect to the following outline.</p>
      <p>Functionality support. Since our sytem aims to fully automatize the query
execution, we need to implement all the common query operators ((BGP join,
lter, aggregations, etc.). Correctness. On both synthetic and real-world data
sets, we will be able to qualify the correctness of the provided answers. On our
water resources management, we already know that correctness implies some
reasoning. Performance. Two performance aspects need to be studied: Latency
and throughput. Latency refers to the wall-clock time consumed by the engine
on each query execution. Throughput depicts that how many RDF triples can
be processed in a unit time. These two performance metrics gives us insights
into whether the system could handle the target scenario or not. The engine
throughput and query latency are recorded by varying the input stream rate
(events/second) and the number of cluster nodes.
8</p>
    </sec>
    <sec id="sec-8">
      <title>Re ections</title>
      <p>This PhD thesis is now at an early stage and preliminary results are promising. I
still have a lot to design and implement but I'm getting closer to the point where
room for thorough experimentation, evaluation, exploration and innovation will
be possible. In the near future, I'm planning to propose some trade-o between
materialization and query rewriting as well as novel optimization for RDF stream
processing, e.g. querying over compressed data.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D. J.</given-names>
            <surname>Abadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marcus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Madden</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K. J.</given-names>
            <surname>Hollenbach</surname>
          </string-name>
          .
          <article-title>Scalable semantic web data management using vertical partitioning</article-title>
          .
          <source>In Proceedings of the 33rd International Conference on Very Large Data Bases</source>
          , pages
          <volume>411</volume>
          {
          <fpage>422</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M. I.</given-names>
            <surname>Ali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Mileo</surname>
          </string-name>
          .
          <article-title>Citybench: A con gurable benchmark to evaluate RSP engines using smart city datasets</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>D.</given-names>
            <surname>Anicic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fodor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rudolph</surname>
          </string-name>
          , R. Stuhmer, N. Stojanovic, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Studer</surname>
          </string-name>
          .
          <article-title>A rule-based language for complex event processing and reasoning</article-title>
          .
          <source>In Web Reasoning and Rule Systems</source>
          , pages
          <fpage>42</fpage>
          {
          <fpage>57</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M.</given-names>
            <surname>Armbrust</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Xin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Huai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. K.</given-names>
            <surname>Bradley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Meng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kaftan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Franklin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ghodsi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Zaharia</surname>
          </string-name>
          . Spark SQL:
          <article-title>relational data processing in spark</article-title>
          .
          <source>In Proceedings of the 2015 ACM SIGMOD</source>
          , pages
          <volume>1383</volume>
          {
          <fpage>1394</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D. F.</given-names>
            <surname>Barbieri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Braga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. D.</given-names>
            <surname>Valle</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Grossniklaus</surname>
          </string-name>
          .
          <article-title>C-SPARQL: SPARQL for continuous querying</article-title>
          .
          <source>In Proceedings of the 18th International Conference on World Wide Web</source>
          , pages
          <volume>1061</volume>
          {
          <fpage>1062</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Broekstra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kampman</surname>
          </string-name>
          , and
          <string-name>
            <surname>F. van Harmelen. Sesame:</surname>
          </string-name>
          <article-title>An architecture for storin gand querying RDF data and schema information. In Spinning the Semantic Web: Bringing the World Wide Web to Its Full Potential [outcome of a Dagstuhl seminar]</article-title>
          , pages
          <fpage>197</fpage>
          {
          <fpage>222</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>J.</given-names>
            <surname>Calbimonte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Corcho</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. J. G.</given-names>
            <surname>Gray. Enabling</surname>
          </string-name>
          ontology
          <article-title>-based access to streaming data sources</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2010</year>
          , pages
          <fpage>96</fpage>
          {
          <fpage>111</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Chatziantoniou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. O.</given-names>
            <surname>Akinde</surname>
          </string-name>
          , T. Johnson, and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kim</surname>
          </string-name>
          .
          <article-title>The md-join: An operator for complex OLAP</article-title>
          .
          <source>In Proceedings of the 17th International Conference on Data Engineering</source>
          , pages
          <volume>524</volume>
          {
          <fpage>533</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>D.</given-names>
            <surname>Dell'Aglio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Calbimonte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Balduini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Corcho</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E. D.</given-names>
            <surname>Valle</surname>
          </string-name>
          .
          <article-title>On correctness in RDF stream processor benchmarking</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2013</year>
          , pages
          <fpage>326</fpage>
          {
          <fpage>342</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>J. D. Fernandez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Llaves</surname>
            , and
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Corcho</surname>
          </string-name>
          .
          <article-title>E cient RDF interchange (ERI) format for RDF data streams</article-title>
          .
          <source>In The Semantic Web - ISWC 2014 - 13th International Semantic Web Conference, Riva del Garda, Italy, October 19-23</source>
          ,
          <year>2014</year>
          . Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          , pages
          <volume>244</volume>
          {
          <fpage>259</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. L.
          <string-name>
            <surname>Fischer</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Scharrenbach</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Bernstein</surname>
          </string-name>
          .
          <article-title>Scalable linked data stream processing via network-aware workload scheduling</article-title>
          .
          <source>In Proceedings of the 9th International Workshop on Scalable Semantic Web Knowledge Base Systems</source>
          , pages
          <fpage>81</fpage>
          {
          <fpage>96</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>N. F.</given-names>
            <surname>Garc</surname>
          </string-name>
          <string-name>
            <given-names>a</given-names>
            , J.
            <surname>Arias-Fisteus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sanchez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Fuentes-Lorenzo</surname>
          </string-name>
          , and
          <string-name>
            <surname>O. Corcho.</surname>
          </string-name>
          <article-title>RDSZ: an approach for lossless RDF stream compression</article-title>
          .
          <source>In The Semantic Web: Trends and Challenges - 11th International Conference, ESWC 2014</source>
          , pages
          <fpage>52</fpage>
          {
          <fpage>67</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. H.
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Ravindra</surname>
            , and
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Anyanwu</surname>
          </string-name>
          .
          <article-title>From SPARQL to mapreduce: The journey using a nested triplegroup algebra</article-title>
          .
          <source>PVLDB</source>
          , pages
          <volume>1426</volume>
          {
          <fpage>1429</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. H.
          <string-name>
            <surname>Naacke</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Cure</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Amann</surname>
          </string-name>
          .
          <article-title>SPARQL query processing with Apache Spark</article-title>
          . ArXiv e-prints,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>D. L. Phuoc</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Dao-Tran</surname>
            ,
            <given-names>J. X.</given-names>
          </string-name>
          <string-name>
            <surname>Parreira</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Hauswirth</surname>
          </string-name>
          .
          <article-title>A native and adaptive approach for uni ed processing of linked streams and linked data</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2011</year>
          , pages
          <fpage>370</fpage>
          {
          <fpage>388</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>D. L. Phuoc</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Dao-Tran</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Pham</surname>
            ,
            <given-names>P. A.</given-names>
          </string-name>
          <string-name>
            <surname>Boncz</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Eiter</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Fink</surname>
          </string-name>
          .
          <article-title>Linked stream data processing engines: Facts and gures</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2012</year>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>D. L. Phuoc</surname>
            ,
            <given-names>H. N. M.</given-names>
          </string-name>
          <string-name>
            <surname>Quoc</surname>
            ,
            <given-names>C. L.</given-names>
          </string-name>
          <string-name>
            <surname>Van</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Hauswirth</surname>
          </string-name>
          .
          <article-title>Elastic and scalable processing of linked stream data in the cloud</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2013</year>
          , pages
          <fpage>280</fpage>
          {
          <fpage>297</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>P.</given-names>
            <surname>Ravindra</surname>
          </string-name>
          .
          <article-title>Towards optimization of RDF analytical queries on mapreduce</article-title>
          .
          <source>In Workshops Proceedings of the 30th International Conference on Data Engineering Workshops, ICDE</source>
          <year>2014</year>
          , pages
          <fpage>335</fpage>
          {
          <fpage>339</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>P.</given-names>
            <surname>Ravindra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kim</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Anyanwu</surname>
          </string-name>
          .
          <article-title>Optimization of complex SPARQL analytical queries</article-title>
          .
          <source>In Proceedings of the 19th International Conference on Extending Database Technology, EDBT 2016</source>
          , pages
          <fpage>257</fpage>
          {
          <fpage>268</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>P.</given-names>
            <surname>Tsialiamanis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sidirourgos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Fundulaki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Christophides</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Boncz</surname>
          </string-name>
          .
          <article-title>Heuristics-based query optimisation for sparql</article-title>
          .
          <source>In Proceedings of the 15th International Conference on Extending Database Technology, EDBT '12</source>
          , pages
          <fpage>324</fpage>
          {
          <fpage>335</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>S.</given-names>
            <surname>Viglas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Naughton</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Burger</surname>
          </string-name>
          .
          <article-title>Maximizing the output rate of multi-way join queries over streaming information sources</article-title>
          .
          <source>In VLDB</source>
          , pages
          <volume>285</volume>
          {
          <fpage>296</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>K.</given-names>
            <surname>Wilkinson</surname>
          </string-name>
          .
          <article-title>Jena property table implementation</article-title>
          .
          <source>In SSWS</source>
          , pages
          <volume>35</volume>
          {
          <fpage>46</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>M. Zaharia</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Chowdhury</surname>
            ,
            <given-names>M. J.</given-names>
          </string-name>
          <string-name>
            <surname>Franklin</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Shenker</surname>
            ,
            <given-names>and I.</given-names>
          </string-name>
          <string-name>
            <surname>Stoica</surname>
          </string-name>
          . Spark:
          <article-title>Cluster computing with working sets</article-title>
          .
          <source>In 2nd USENIX Workshop on Hot Topics in Cloud Computing, HotCloud'10</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>M. Zaharia</surname>
          </string-name>
          ,
          <string-name>
            <surname>T. Das</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Hunter</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Shenker</surname>
            ,
            <given-names>and I. Stoica.</given-names>
          </string-name>
          <article-title>Discretized streams: fault-tolerant streaming computation at scale</article-title>
          .
          <source>In ACM SIGOPS 24th Symposium on Operating Systems Principles, SOSP</source>
          , pages
          <volume>423</volume>
          {
          <fpage>438</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Corcho</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Calbimonte</surname>
          </string-name>
          .
          <article-title>Srbench: A streaming RDF/SPARQL benchmark</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2012</year>
          , pages
          <fpage>641</fpage>
          {
          <fpage>657</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>