<!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>Heaven Test Stand: towards comparative research on RSP engines</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Riccardo Tommasini</string-name>
          <email>riccado.tommasini@polimi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emanuele Della Valle</string-name>
          <email>emanuele.dellavalle@polimi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Balduini</string-name>
          <email>marco.balduini@polimi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniele Dell'Aglio</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DEIB, Politecnico of Milano</institution>
          ,
          <addr-line>Milano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The benchmarking of window-based RDF Stream Processing (RSP) engines has recently attracted the attention of the Stream Reasoning community. Solutions like LSBench, SRBench and CSRBench tried to fulfill the need of shared practices for RSP engine evaluations. However, an infrastructure for the systematic comparison of existing systems is still missing. In this paper, we propose the requirements and an architecture for Heaven Test Stand, a facility to foster Systematic Comparative Research Approach (SCRA) for window-based RSP engine. Heaven allows to design and systematically execute repeatable, reproducible and comparable experiments. As further contribution a working implementation of Heaven Test Stand is released as open source.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        A Systematic Comparative Research Approach [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] (SCRA) is commonly used in
those research fields where formulating hypothesis to test is extremely hard, due
to the complexity of the research subjects. SCRA main advantage consists into
reducing cross-case studies complexity by representing the subjects as combinations
of known properties and highlight differences and similarities.
      </p>
      <p>
        Social sciences, like sociology or economy, are extremely relevant fields [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
where comparative analysis is exploited to understand the subjects, bringing
together the strengths of qualitative approaches and quantitative ones (e.g, in
situation X, the Y % of population A grows the Z% faster than the rest).
      </p>
      <p>
        Due to the multiple technology concepts involved, Stream Reasoning (SR) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
- a research field that couples Information Flow Processing approaches [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] with
reasoning techniques - clearly demands for SCRA. SR feasibility is already
proven; many RDF Stream Processing (RSP) engines - systems able to cope with
semantically annotated data flows - populate the state-of-the-art [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        The relevant challenge for the entire community1 is now the RSP engine
evaluation. To the RSP benchmarking extent are currently available RDF Streams,
Ontologies and Continuous queries [
        <xref ref-type="bibr" rid="ref11 ref16 ref7">7, 11, 16</xref>
        ]. The performance measure sets
comprise query language expressiveness [
        <xref ref-type="bibr" rid="ref11 ref16">11, 16</xref>
        ], scalability [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], throughput [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ],
query results’ mismatch [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and correctness [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. [
        <xref ref-type="bibr" rid="ref11 ref7">7, 11</xref>
        ] provide also a preliminary
      </p>
      <sec id="sec-1-1">
        <title>1 http://www.w3.org/community/rsp/</title>
        <p>testing facility, but an infrastructure for systematically compare the RSP engine
execution under controlled conditions is still missing.</p>
        <p>
          In related research areas like databases, the results of the evaluation is
know given a schema of the data , the data, and a query. Therefore, there
is no need to study the systems dynamics at once. Unfortunately, this is not
valid for RSP engines where the execution semantic is different from system to
system [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. In [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] problem of modeling the system execution semantics was faced
for window-based, in memory RSP engines; it depends on the relation between
RDF Streams [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]; continuous extensions of SPARQL [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] and streaming-adapted
reasoning techniques [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. However, even when the model is completely available,
the intrinsic complexity of the RSP engine is still high and it requires to analyze
the dynamics at once. An SCRA is preferable and, thus, our research question is
How to enable a systematic comparative research approach for RSP engines?
        </p>
        <p>In this paper we answer such research question presenting Heaven Test Stand
an infrastructure to enable experiment design and execution for RSP engines.</p>
        <p>Outline: Section 2 and 3 present respectively Heaven Test Stand requirements
and architecture. Section 4 provides an example of experiment design an some
details regarding an open source implementation of the Heaven Test Stand2.
Finally, Section 5 comes to conclusion and presents the future works.
2</p>
        <sec id="sec-1-1-1">
          <title>Heaven Requirements</title>
          <p>Our aim is studying the RSP engine dynamics, that requires on-line analysis
of the engine behavior. SCRA fosters cross-case analysis and, thus, we need
to guarantee the experimental conditions to be repeatable, reproducible, and
comparable and also to describe the variables involved in the evaluation.</p>
          <p>From the aerospace engineering we borrow the notion of engine test stand, a
facility for to design and systematically execute experiments over engines. With
a test stand, it will be possible to collect performance measurements during the
engine execution and enable post-hoc evaluations. In the following we state the
requirements for an RSP engine Test Stand, namely Heaven Test Stand (HTS).</p>
          <p>Experiments Reproducibility requires HTS to guarantee: (i) engine
compatibility (R.1), to allow the comparison of experiment results; (ii) data independence
(R.2), to allow the system users to choose any relevant ontologies (R.2a) and to
describe how the input data stream is defined (R.2b) (e.g. dataset/API, data
model like RDF Stream etc.); (iii) query independence (R.3), to allow the system
users to define and register a set of relevant queries from their domain of interest.</p>
          <p>Compatibility with the RSP benchmarking state-of-the-art is crucial for HTS
relevance, thus, Heaven design must be extensible at software level (R.4), i.e.
theoretically each module can be replaced with one having the same interface,
but different behavior, without affecting architecture stability. Due to (R.1),
HTS must adopt an event-based architecture (R.5) as normally done by RSP
engines and it must exploit a simple to parse RDF serialization for events (R.6)
to minimize the cost of putting an existing RSP engine on the test stand.</p>
        </sec>
      </sec>
      <sec id="sec-1-2">
        <title>2 https://github.com/streamreasoning/heaven</title>
        <p>
          A minimal measurements set for a relevant RSP engine evaluation is defined
in [
          <xref ref-type="bibr" rid="ref15 ref7">15, 7</xref>
          ]. HTS must include it, i.e (R.7a) Latency – the delay between the
event injection into the RSP engine and the system response; (R.7b) Memory
Usage – the difference between total system memory and free memory; (R.7c)
Completeness &amp; Soundness of query-answering results w.r.t the system entailment
regime [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. To allow further development, the performance measurement set that
HTS can collect must be also extensible (R.8).
        </p>
        <p>
          The RSP engines input-output relationship is non-trivial [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], due to their I/O
asynchronous nature. Indeed, experiments Repeatability requires HTS to control
the experiment execution without affecting the RSP engine evaluation. To this
extent, HTS must not be running concurrently with the RSP engine (R.9) and
HTS must have a reduced (and possibly constant) memory footprint (R.10) to
do not affect the reasoning performances.
        </p>
        <p>Finally, experiments Comparability requires HTS to support the collection of
the performance measurements for post-hoc analysis (R.11).
3</p>
        <sec id="sec-1-2-1">
          <title>Heaven Architecture &amp;</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Workflow</title>
      <p>1</p>
      <p>2
Streamer</p>
      <p>RSPEngine
TestStand</p>
      <p>Start</p>
      <p>MB
Experiment
1 Experiment 4 Heaven Response
2 Stimulus 3 Engine Response
3</p>
      <p>Stop
4</p>
      <p>MB
5</p>
      <p>ResultCollector
Data
5</p>
      <p>Disk
In this section we describe HTS architecture and also indicate which requirements
are satisfied at architectural level.</p>
      <p>The tuple &lt; E , D, T , Q &gt; describes the top-level input of HTS: an
Experiment. E is the evaluated RSP engine (satisfying R.1); D is the description of the
incoming data flow (satisfying R.2a); T is the ontology (satisfying R.2b); Q the
continuous queries set registered into E (satisfying R.3).</p>
      <p>In Step (1) HTS receives such an Experiment and it independently initializes
each module: the engine E needs to be initialized by registering into the ontology
T and all the queries in Q; the Streamer, which is the actual data stream
source, uses the description D to build the incoming information flow (e.g. an
RDF Streams) to push into E ; the Result Collector starts listening for the
results of E , that it will persist for post-hoc analysis (satisfying R.11).</p>
      <p>During experiment execution, HTS loops through the steps from (2) to (5)
until the ending condition is reached (e.g the end of the dataset). It exchanges
three kinds of events: (i) Stimulus (S) a portion of the input information flows
in which all triples have the same timestamps; (ii) Engine Response (ER) the
event format that E is required to output. It contains the answer to one of the
query in the query-set Q registered in E given the ontology T and the active
window in the RSP engine; (iii) Heaven Response (HR) which encapsulates
the ER content adding the performance measurements collected by HTS.</p>
      <p>In step (2), the Streamer builds and pushes to E an event S. Before starting
step (3), HTS starts a timer to measure latency (satisfying R.4a) and it measures
the memory load (satisfying R.4b).</p>
      <p>In step (3), HTS invokes the engine E and then it waits until E completes its
processing. We can be sure that HTS and the engine are concurrently executing,
because HTS is a finite state machine. HTS stops the timer and measures again
the memory load as soon as E returns it the control.</p>
      <p>In step (4), HTS creates a HR adding to the produced ER the collected
performance measurements. HTS pushes the HR to the Result Collector.</p>
      <p>In step (5), the Result Collector persists HR content (satisfying R.11).
4</p>
    </sec>
    <sec id="sec-3">
      <title>Experiment Design</title>
      <p>In this section we explain how to design each element of the tuple &lt; E, D, T , Q &gt;
according to the current HTS implementation. We also motivate the development
choices we did, by the means of the proposed requirements (Section 2).</p>
      <p>The E specification is realized by the means of a facade pattern [8, pp. 243].
An abstract RSP engine class allows to associate any RSP engines ensuring
engine independence (satisfying R.1), it intercepts the S and taking care of the
ER creation.</p>
      <p>To simplify the initial usage of HTS, the current implementation contains
four naïve RSP engine implementations with external time-control, that we be
natively used as E. Some results about their performances, evaluated using HTS
current implementation are already available3.</p>
      <p>D comprises all the details of the incoming input flows: (i) the actual data
to stream (e.g. a dataset); (ii) the number of the incoming data streams, (iii)
their data model (e.g. RDF Stream); (iv) their flow rate profile (e.g. Gaussian,
Poisson) and an ending condition for the experiment (e.g. max number of events).
The Streamer interface allows to describe all these details according with the
user needs. The current HTS release comprises the RDF2RDFStream, that
adapts any RDF dataset to a streaming scenario (RDF Stream) by adding to a
Stimulus the required number of triples to build such an event. Different flow
profiles can be realized by the means of the FlowRateProfiler. In our testing
experiments, we adapted one generation of LUBM(1000, 0)4 to our purpose.
3 http://streamreasoning.org/TR/2015/Heaven/iswc2015-appendix.pdf
4 LUBM(N, S) indicates the dataset with N universities generated using a seed S.
Moreover, RDF triples in S and E R are encoded in the N-Triple format5, an
easy-to-parse RDF serialization used by the majority of exiting RSP engines
(satisfying R.6).</p>
      <p>The ontology T is chosen according with the background knowledge required
for the reasoning. During the execution of an experiment, T is considered to be
static. Indeed is a good practice to reduce the reasoning complexity by executing
its materialization at setup-time. In the current implementation we used the
RDFS version of the LUBM ontology as T .</p>
      <p>
        The query set Q must be register directly to E , because HTS does not offer
API yet. For our evaluation, we used a single query for each engine for each
experiment. They were variants of the full the materialization under ρDF [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
entailment regime6. The query results are appended to an open file in order to
minimize the memory usage (satisfying R.10).
      </p>
      <p>Notably, HTS is currently implemented as a single thread application
(satisfying R.9). Completeness and Soundness (C&amp;S) of the query results and the
HTS ability to know exactly what was sent into E are evaluated post-hoc (R.7c)
by using the content of the persisted HR events. Real time verification of C&amp;S is
also possible for those engines which allow external time control, because HTS
satisfies (R.9), but it may violate requirement (R.10), due to the large memory
footprint of reasoning procedures.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>In this paper we presented the requirements and the architecture of Heaven Test
Stand, an infrastructure to enable a Systematic Comparative Research Approach
for RSP engines, by the means of experiment design and execution. A further
contribution is a working implementation of HTS, already available on GitHub7.</p>
      <p>Enabling SCRA is a crucial step towards an efficient and effective stream
reasoning, but, as first future work, we have to prove HTS usability and
effectiveness of the proposed implementation. Solving the former requires us to go
step by step to the experiment design and execution; the latter, instead, requires
to provide experimental proofs that HTS influences the engine performance in a
controlled and predictable way only and it does not affect the query results.</p>
      <p>
        Another future work consists into better comprehend the state-of-the-art
solution space, that means benchmarking mature solutions like the C-SPARQL [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
engine or CQELS [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>We want to make available the performance analysis, together with the
experiments setting we use for their evaluation (i.e. the &lt; E , D, T , Q &gt; configuration).
This is clearly necessary, because we want HTS to be adopted by the entire SR
5 http://www.w3.org/2001/sw/RDFCore/ntriples/
6 All the queries have the same sliding parameter β = 100 ms and they differ for the
duration ω. In particular, we use time-based sliding windows in which ω is an integer
multiple of the slide parameter β, i.e., it holds that ω = β ∗ S where S is a positive
integer.
7 https://github.com/streamreasoning/heaven
community. Thus, another pioneering step consists into developing a methodology
for the result analysis. Such methodology should exploits statistical techniques
to interpret the obtained results and allows us to finally answer questions like
Qualitatively, which is the best solution? or Quantitatively, what distinguish a
solution from other ones? or again Why solution A performs better than B under
a certain experimental condition?</p>
      <p>Acknowledgments. This work has been partially funded by the IBM faculty
award 2013 granted to prof. Emanuele Della Valle and by the IBM PhD fellowship
award granted to Daniele Dell’Aglio.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <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>
          </string-name>
          , M.:
          <string-name>
            <surname>C-SPARQL</surname>
          </string-name>
          :
          <article-title>A continuous query language for RDF data streams</article-title>
          .
          <source>IJSC</source>
          <volume>4</volume>
          (
          <issue>1</issue>
          ),
          <fpage>3</fpage>
          -
          <lpage>25</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Botan</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Derakhshan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dindar</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haas</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>R.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tatbul</surname>
          </string-name>
          , N.:
          <article-title>Secret: A model for analysis of the execution semantics of stream processing systems</article-title>
          .
          <source>PVLDB</source>
          <volume>3</volume>
          (
          <issue>1</issue>
          ),
          <fpage>232</fpage>
          -
          <lpage>243</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Calbimonte</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corcho</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>A.J.G.</given-names>
          </string-name>
          :
          <article-title>Enabling ontology-based access to streaming data sources</article-title>
          .
          <source>In: ISWC</source>
          . pp.
          <fpage>96</fpage>
          -
          <lpage>111</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Creswell</surname>
            ,
            <given-names>J.W.</given-names>
          </string-name>
          : Research Design:
          <article-title>Qualitative, Quantitative, and Mixed Methods Approaches</article-title>
          . Sage Publications Ltd.,
          <volume>3</volume>
          <fpage>edn</fpage>
          . (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cugola</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Margara</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Processing flows of information: From data stream to complex event processing</article-title>
          .
          <source>ACM Comput. Surv</source>
          .
          <volume>44</volume>
          (
          <issue>3</issue>
          ),
          <volume>15</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
          :
          <fpage>62</fpage>
          (Jun
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Della</given-names>
            <surname>Valle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Ceri</surname>
          </string-name>
          , S., van
          <string-name>
            <surname>Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fensel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>It's a streaming world! reasoning upon rapidly changing information</article-title>
          .
          <source>IEEE Intelligent Systems</source>
          <volume>24</volume>
          (
          <issue>6</issue>
          ),
          <fpage>83</fpage>
          -
          <lpage>89</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dell'Aglio</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calbimonte</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balduini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corcho</surname>
          </string-name>
          , Ó.,
          <string-name>
            <surname>Della Valle</surname>
          </string-name>
          , E.:
          <article-title>On correctness in RDF stream processor benchmarking</article-title>
          .
          <source>In: ISWC</source>
          . pp.
          <fpage>326</fpage>
          -
          <lpage>342</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Freeman</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Freeman</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bates</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sierra</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Head First Design Patterns</surname>
          </string-name>
          . O' Reilly &amp; Associates, Inc. (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Komazec</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cerri</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fensel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Sparkwave: continuous schema-enhanced pattern matching over RDF data streams</article-title>
          .
          <source>In: DEBS</source>
          . pp.
          <fpage>58</fpage>
          -
          <lpage>68</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Le-Phuoc</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dao-Tran</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Xavier</given-names>
            <surname>Parreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Hauswirth</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A native and adaptive approach for unified processing of linked streams and linked data</article-title>
          .
          <source>In: ISWC</source>
          . pp.
          <fpage>370</fpage>
          -
          <lpage>388</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Le-Phuoc</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dao-Tran</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pham</surname>
            ,
            <given-names>M.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boncz</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eiter</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fink</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Linked stream data processing engines: Facts and figures</article-title>
          .
          <source>In: ISWC</source>
          . pp.
          <fpage>300</fpage>
          -
          <lpage>312</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Margara</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urbani</surname>
          </string-name>
          , J., van
          <string-name>
            <surname>Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bal</surname>
            ,
            <given-names>H.E.</given-names>
          </string-name>
          :
          <article-title>Streaming the web: Reasoning over dynamic data</article-title>
          .
          <source>J. Web Sem</source>
          .
          <volume>25</volume>
          ,
          <fpage>24</fpage>
          -
          <lpage>44</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Muñoz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pérez</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gutiérrez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Minimal deductive systems for RDF</article-title>
          . In: ESWC. pp.
          <fpage>53</fpage>
          -
          <lpage>67</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Rihoux</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ragin</surname>
            ,
            <given-names>C.C.</given-names>
          </string-name>
          :
          <article-title>Configurational comparative methods: Qualitative comparative analysis (QCA) and related techniques</article-title>
          .
          <source>Sage</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Scharrenbach</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urbani</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Margara</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Della Valle</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bernstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Seven commandments for benchmarking semantic flow processing systems</article-title>
          .
          <source>In: ESWC</source>
          . pp.
          <fpage>305</fpage>
          -
          <lpage>319</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duc</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corcho</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calbimonte</surname>
            ,
            <given-names>J.P.:</given-names>
          </string-name>
          <article-title>SRBench: A Streaming RDF/SPARQL Benchmark</article-title>
          . In: ISWC. pp.
          <fpage>641</fpage>
          -
          <lpage>657</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>