<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Challenges &amp; Opportunities of RSP-QL Implementations</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Riccardo</forename><surname>Tommasini</surname></persName>
							<email>riccardo.tommasini@polimi.it</email>
							<affiliation key="aff0">
								<orgName type="institution">Politecnico di Milano</orgName>
								<address>
									<addrLine>DEIB</addrLine>
									<settlement>Milan</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Emanuele</forename><forename type="middle">Della</forename><surname>Valle</surname></persName>
							<email>emanuele.dellavalle@polimi.it</email>
							<affiliation key="aff0">
								<orgName type="institution">Politecnico di Milano</orgName>
								<address>
									<addrLine>DEIB</addrLine>
									<settlement>Milan</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Challenges &amp; Opportunities of RSP-QL Implementations</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">CC43DFB54312A30ECE85B805ACE5E8D0</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T08:42+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The RSP-QL model explains and unifies RDF Stream Processing (RSP) approaches into a more general semantics. It was successfully applied to model C-SPARQL, CQELS-QL and SPARQLstream taking into account the operational semantics of the existing implementations. In this paper, we present Yasper 1.0, an RSP engine that implements RSP-QL semantics. Moreover, we present the challenges we found during our implementation experience and we discuss the research opportunities they imply. For each of these challenges, we also formulate some hypotheses that will drive our future work empirical studies on RSP.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The Stream Reasoning (SR) community is reaching an agreement on RSP-QL .the reference model proposed by Dell'Aglio et al <ref type="bibr" target="#b8">[9]</ref> -as a unifying semantics of existing continuous SPARQL extensions and the operational semantics. Moreover, RSP-QL was successfully applied to explain the operational semantics of three popular RSP engines, i.e., C-SPARQL engine, CQELS, and Morph stream and the semantics of the continuous extensions of SPARQL, they implement, i.e., respectively C-SPARQL, CEQLS-QL, and SPARQL stream .</p><p>These RSP engines had a crucial role in fostering the popularity of SR research. Their adoption also supported empirical comparative research and consequently more foundational investigations <ref type="bibr" target="#b9">[10]</ref> ( § 2). Similarly, we believe that an RSP-QL engine that fully supports RSP-QL will push the model towards its limits, unveiling new challenges and opportunities.</p><p>In this paper, we introduce Yasper 1.0 (Yet Another RSP Engine) <ref type="foot" target="#foot_0">1</ref> , i.e. an RSP engine that implements RSP-QL semantics. We present the challenges that we found during our implementation experience and we discuss research opportunities that these challenges unveiled. Moreover, for each challenge we formulate some hypotheses that we aim at empirically testing as future work.</p><p>The remainder of the paper is organized as follow. Section 2 presents the background information required to understand this work. Section 3 discusses Yasper architecture and implementation details. Section 4 presents the challenges and Section 5 discusses the research opportunities w.r.t. the presented challenges and Section 6 concludes the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Background</head><p>In this section, we present the background information required to understand the content of the paper.</p><p>We adopt a generic definition of RDF Stream, i.e. a sequence of pairs (O i , t i ), where t i is a non-decreasing timestamp and O i is either a named RDF Graph or a timestamped RDF triple. <ref type="bibr" target="#b8">[9]</ref> is a unifying model for RSP dialects and engines. RDF Stream are pair of named RDF Graph as O i and timestamps.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>RSP-QL</head><p>A time-based sliding window operator W is a Stream-to-Relation (S2R) operator <ref type="bibr" target="#b1">[2]</ref> defined by the triple (α, β, t 0 ). W determines a series of windows of width (α) and sliding parameter (β) starting from t 0 . A Time-Varying Graph (TVG) is a function that takes a time instant as input and outputs an Instantaneous RDF Graph. The application of W on a RDF Stream is a Time-Varying Graph that for any given time instant t at which W is defined coalesces the RDF Graphs in the current window 2 into an Instantaneous RDF Graph.</p><p>A streaming dataset SDS is a set composed by an optional default element A 0 , n (n ≥ 0) named Time-Varying Graphs and m (m ≥ 0) named sliding window operators over k (k ≤ m) streams.</p><p>RSP-QL evaluation semantics is defined as eval(SDS(G), SE, t), where SDS is a streaming dataset having G as active Time-Varying Graph, SE is an algebraic expression and t is a time instant. Accordingly, the extension to multiwindow queries involves more than one active Time-Varying Graphs, i.e. eval(SDS(G i ... G n ), SE, t). The evaluation is computed over the instantaneous graphs G i (t), i.e., eval(SDS(G i , t), SE). An RSP-QL query is continuously evaluated against a SDS by an RSP engine. The set ET of evaluation time instants is determined by the RSP engine according to a reporting policy that, in RSP-QL, consists of the composition of the following strategies: CC Content Change -the engine reports if the content of the current window changes -, WC Window Closethe engine reports if the current window closes -, NC Non-empty Content -the engine reports if the current window is not empty -, and P Periodic -the engine reports at regular intervals.</p><p>The output of the RSP-QL query evaluation is an instantaneous multiset of solution mappings for each evaluation time instant in "ET". Time-aware operators called Relation-to-Stream (R2S) are required to transform the instantaneous multiset of solution mappings into a Time-Varying multiset of solution mappings. RSP-QL comprises the following R2S operators: the RStream, which emits each solution mappings; the IStream, which emits the difference between the current solution mappings and previous ones, and; the DStream, which emits the difference between the previous solution mappings and the current ones. <ref type="bibr" target="#b5">[6]</ref> is a continuous extension of SPARQL for registering queries over RDF Streams represented as timestamped RDF triples, i.e., O i is an RDF Triple. Queries written C-SPARQL are executed by an RSP engine<ref type="foot" target="#foot_1">3</ref> that pipes a Data Stream Management System (DSMS) with a SPARQL engine. The C-SPARQL engine delegates the window execution to the DSMS and the remainder of the query to the SPARQL engine. C-SPARQL reporting policy is on window close and non-empty content (WCNC). C-SPARQL provides only the RStream operator.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C-SPARQL</head><p>SPARQL stream <ref type="bibr" target="#b6">[7]</ref> is an extension of SPARQL to query virtual RDF streams where O i is an RDF triple. Morph stream translates SPARQL stream queries into several DSMSs queries by means of mappings. The mapping language is S2O, and ad-hoc extension of R2O to include the time semantics (windows). Morph stream reporting policy is on window close and non-empty content (WC.NC.). Morph stream provides all the R2S operators.</p><p>CQELS-QL <ref type="bibr" target="#b11">[12]</ref> extends SPARQL with continuous semantics adding special operators to deal with streams and define windows. RDF streams are represented by timestamped RDF triples as O i . CQELS ports DSMS concepts into a SPARQL engine and, thus, it not only executes CQELS-QL queries but also applies optimizations by adapting the execution of the query to the stream velocity. CQELS reports results on content change (CC). CQELS provides only the IStream operator.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">YASPER: Yet Another RDF Stream Processing Engine</head><p>In this section, we introduce Yasper's architecture and how it implements RSP-QL concepts. Figure <ref type="figure" target="#fig_0">1</ref> shows the following modules of Yasper 1.0 Streams, Windowing, SDS, Querying and Reasoning. Modules that exposes Yasper as a REST service <ref type="bibr" target="#b2">[3]</ref> are also available but not discussed.</p><p>The Stream module, Figure <ref type="figure" target="#fig_0">1</ref> (a), contains the classes to represent a Stream. Yasper adopts a generic data stream model <ref type="bibr" target="#b4">[5]</ref>. Each stream is identified by an URI and its content is a generic stream item si=&lt; t i , t e , O &gt; where t i is the time when s entered the system (ingestion time); t e is the time when s occurred (event time) and O is a generic data element.</p><p>Thanks to this representation, Yasper can replicate the two RDF stream models<ref type="foot" target="#foot_2">4</ref> studied in RSP, i.e. unbounded sequence of timestamped RDF triples as in C-SPARQL vs. unbounded sequence of RDF graphs as in SLD <ref type="bibr" target="#b3">[4]</ref>.</p><p>The Windowing module, Figure <ref type="figure" target="#fig_0">1</ref> (b), is based on Esper <ref type="foot" target="#foot_3">5</ref> , an open-source DSMS that relies on the Event Processing Language (EPL) and special objects called listeners that continuously receive the EPL queries outputs. We represent the RSP-QL Time-Based Sliding Window Operator (henceforth referred to as window operator) as an EPL statement on an RDF Stream plus a listener that continuously receives its results. Each window operator maintains a The content of an instantaneous RDF graph g i belongs to the current window identified by their window operator w i at time t; w i might be a sub-window <ref type="bibr" target="#b1">[2]</ref>. Notably, slowly evolving RDF graphs are represented as a (named) Time-Varying Graph too. The SDS implementation extends Apache Jena 3 in-memory Dataset.</p><p>As described in Section 2, RSP-QL comprises four strategies to define an RSP engine reporting policy. As of the time of the submission, Yasper reports the results on Window Close (WC) and Non-empty Content (NC). However, how policies work with multi window queries is not obvious. RSP-QL <ref type="bibr" target="#b8">[9]</ref> implies that any reporting policies could be mixed and introduces also the notion of sub-windows to support this claim. It is worth to notice that the set ET of evaluation time instants is tightly coupled with the arrival of new data, unless the RSP engine exploits an internal clock. In a real streaming setting, this is true even if the reporting policy define ET a-priori, e.g. periodic. For this reason, the creation of the SDS and the query evaluation are computed reactively to the arrival of a new Stream Item. This simple difference unveils several issues that we will discuss in the next section. The Querying module, Figure <ref type="figure" target="#fig_0">1</ref> (d), contains the elements for query instantiation and continuous execution. At this stage of development, Yasper accepts only SELECT and CONSTRUCT queries; the R2S operators R-, I-and DStream are available <ref type="bibr" target="#b1">[2]</ref> and it also supports multi-window queries. Listing 1.1 presents the currently supported syntax, which is inspired to <ref type="bibr" target="#b7">[8]</ref> and the W3C RSP CG <ref type="foot" target="#foot_4">6</ref> .</p><p>The reasoning module, Figure <ref type="figure" target="#fig_0">1</ref> (e), supports continuous query answering under entailment regime. For each evaluation time instant t, before evaluating an RSP-QL query q, Yasper computes the closure under the entailment e of each instantaneous RDF Graph in SDS(t) using the Jena Generic Rule Reasoner. Future work in this direction comprise the integration of RDFox and Ontop.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Challenges</head><p>In this section, we present the challenges unveiled by our implementation experience. Yasper relies on some design decisions that require to be discussed with the SR/RSP community. In particular, we found issues about the streams item representation, stream item order, and multi-window queries evaluation, which relates to the notion of RSP-QL dataset SDS. We summarize these issues with the following questions:</p><p>(Q1) What is the best way to model the stream content? (Q2) How does the time model impact the processing? (Q3) What does define the current SDS at time t? (Q4) Is there an efficient way to maintain the SDS? (C1) Stream Content. RSP-QL assumes that stream items are timestamped (named) RDF Graphs. Actually, this assumption contrasts with how most of the existing RSP approaches work in practice. Indeed, <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b6">7,</ref><ref type="bibr" target="#b11">12]</ref> adopt timestamped RDF triples and only SLD <ref type="bibr" target="#b3">[4]</ref> uses timestamped named graphs. Moreover, Balduini et al. <ref type="bibr" target="#b4">[5]</ref> recently highlighted the benefits of a generic data model combined to a lazy-transformation approach.</p><p>Although the theoretical equivalence between the two approaches has been proved <ref type="bibr" target="#b8">[9]</ref>, we still have to identify their impact on performance. (Q1) highlights the need to identify an optimum if any. To support this investigation, we propose the following hypotheses:</p><p>-Hp.0 Streams represented as RDF statement and those represented as Named graph are equal under the assumptions of non-decreasing timestamps for the RDF statement stream.</p><p>-Hp.1 The cost of translating a stream of timestamped RDF statement to a stream of named RDF graph is negligible.</p><p>(C2) Stream Ordering. RSP approaches typically assume the stream items arrive with non-decreasing timestamps. Although this assumption is reasonable for monolithic infrastructure, it does not hold for distributed or federated architectures <ref type="bibr" target="#b0">[1]</ref>. (Q2) highlights the need to study the consequences of alternative time representations <ref type="bibr" target="#b0">[1]</ref>, especially in those settings where is not possible to guarantee synchronization nor absence of out-of-order arrivals. To support this investigation, we propose the following hypotheses:</p><p>-Hp.2 Event-time and ingestion-time are equivalent for partially ordered streams. -Hp.3 Event-time and ingestion-time are not equivalent for totally ordered streams.</p><p>(C3) SDS Consolidation &amp; Maintenance. RSP-QL assumes that an Instantaneous Graph IG can be generated by a Time-Varying Graph TVG for any instant t for which the window operator W is defined. This assumption implies that IG can be accessed even if the window is not closed. Although this approach theoretically promises always up-to-date results, it requires the RSP engine to maintain sub-windows accessible <ref type="bibr" target="#b0">[1]</ref>. This surely has an impact on performance in terms of operations and memory. Moreover, if we consider existing RSP dialect syntaxes or RSP-QL proposals <ref type="bibr" target="#b7">[8]</ref>, the sub-window definition is transparent to the system user. This introduces ambiguity in the intended semantics. (Q3) highlights this issue from the point of view of the dataset SDS.</p><p>We name the problem SDS Consolidation and we introduce the notion of Active SDS -i.e. the SDS against which an RSP-QL query q is evaluated at time t. Dell'Aglio et al. <ref type="bibr" target="#b8">[9]</ref> defined an SDS that relies on the notion of subwindows. Since this consolidation semantics always considers the current status of all the windows, we refer to it as Current Active SDS. We identified two consolidations semantics that do not rely on sub-windows: (1.) the Closed Active SDS, as the name suggests, considers only the instantaneous RDF graphs that were derived from closed active windows. (2.) The Cached Active SDS considers the instantaneous RDF graphs that were derived from the latest closed active window. To support this investigation we formulate the following hypotheses:</p><p>-Hp. <ref type="bibr" target="#b3">4</ref> The Current Active SDS is always more efficient in terms of resource usage than Closed and the Cached. -Hp. <ref type="bibr" target="#b4">5</ref> The Current Active SDS is not more responsive than the Closed and the Cached ones.</p><p>In order to better understand the impact on the results of the different SDS consolidations semantics, let us consider the example illustrated in Figure <ref type="figure" target="#fig_2">2</ref>: :w1 and :w2 are two window operators applied to two streams. By definition, they define many windows with opening and closing time instants (o,c). Let us consider now the SDS at three relevant time instants: t = 30 where only a window defined by :w1 is closed; t = 35 where both :w1 and :w2 define two closed windows, and; t = 36 where neither :w1 nor :w2 defines a closed windows Table <ref type="table" target="#tab_0">1</ref> summarizes the results for each different SDS consolidations semantics and the reader can observe big differences for t = 30 and t = 36. A second issues that arose from our implementation experience, summarized by (Q4), regards the problem of SDS maintenance. Once fixed the consolidation semantics, we need to identify an efficient<ref type="foot" target="#foot_5">7</ref> way to set up the Active SDS.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>SDS(t) Current</head><p>To this extent, we introduce the notion of Maintenance Strategy, i.e. the procedure to apply the SDS consolidation semantics. A maintenance strategy describes how a Time-Varying Graph generates and Instantaneous Graph. We identified two alternative maintenance strategies: (i) Snapshot -i.e. Time-Varying Graph the trashes the whole Instantaneous Graph content -and (ii) Deltas -i.e. the Time-Varying Graph updates the Instantaneous Graph considering the differences between the current content and the previous one in terms of additions and deletions. To support this investigation, we formulate the following hypotheses -Hp.6 Once fixed the SDS consolidation approach, the Maintenance Strategy does not influence the correctness of an RSP-QL query. -Hp.7 the performance of the delta Maintenance Strategy is always comparable to those of the snapshot. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Discussion</head><p>In this section we discuss the research opportunities that each of the presented challenges highlights. Challenge C1, and partially C3, indicate that the RSP solution space is not yet systematically explored and there is room for optimization driven by RSP-QL insights. The community efforts on empirical research should continue, also supported by new resources like Yasper and the recent RSPLab <ref type="bibr" target="#b13">[14]</ref>. Moreover, we need to define uniform evaluation methodologies based on choke-points <ref type="bibr" target="#b10">[11]</ref>, that guide the evaluation of new approaches.</p><p>Challenge C2 suggests that some typical SR/RSP assumptions are inadequate for distributed or federated environments. The management of out-of-order data arrival is an open challenge for mature systems like Spark<ref type="foot" target="#foot_6">8</ref> and Flink<ref type="foot" target="#foot_7">9</ref> and so should be for the SR/RSP community. Federated RSP is another appealing idea; networks of engines that exchange data and queries require to relax these assumptions and rethink the model.</p><p>We advocate the use of reasoning to deal with the challenges, i.e. out-oforder data arrival and federation and planning. Moreover, correctness must be redefined to include relevant notions such as maximum delay, watermark and multiple active windows <ref type="bibr" target="#b0">[1]</ref>.</p><p>Challenge C3 reveals that designing a syntax that takes into account all the aspects of RSP is hard. Especially because we, as a community, did not investigate what is the intended semantics of a query. A universal syntax might not exist, while task-specific syntaxes that capture fragments of RSP-QL semantics can better fit the user needs.</p><p>Specifically for querying, we must focus on usability. For a query language, we need to reduce ambiguity and improve efficiency as much as possible even if it means trading expressiveness and usability if necessary.</p><p>Our intuition is that some window operators are easier to use in combination with specific policies and our proposal is to reflect these preferred relations in the RSP-QL syntax. In Listing 1.2 we present three alternative syntaxes that we believe are tightly coupled. The window at line 1 suggests that the reporting will happen on window close (i.e. when the window slides). The window at line 2 is meaningful only when the system reports on content change. The window at line 3 might be a possible syntax that highlights that sub-windows of a given size are allowed. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion</head><p>In this paper we presented Yasper 1.0, i.e. an RSP-QL compliant RSP engine, and the challenges we faced during our implementation experience.</p><p>At the moment of writing, Yasper supports the proposed syntax <ref type="bibr" target="#b7">[8]</ref> and can answer multi-stream SELECT and CONSTRUCT queries. The support of ASK queries is a work in progress whereas the DESCRIBE clause requires further investigation. Yasper supports all the RSP-QL streaming operators while it's reporting policy is On Window Close and Non-Empty Content. We are working to make the reporting policy also configurable in order to support all the combinations.</p><p>Regarding the presented challenges and our hypotheses, our goals is to perform a descriptive study on RSP engines. To this extent, we will formulate statistical tests to investigate our hypotheses and we will extensively evaluate Yasper 1.0 and the other relevant RSP engines <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b8">9]</ref>.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 :</head><label>1</label><figDesc>Fig. 1: Yasper's Modules: (a) Streams, (b) Windowing, (c) SDS, (d) Querying and (e) Reasoning. Only relevant architectural details are represented.</figDesc><graphic coords="4,152.06,116.83,311.25,149.49" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>REGISTERListing 1 . 1 :</head><label>11</label><figDesc>STREAM &lt;example&gt; AS CONSTRUCT ISTREAM {? s ?p ? o } FROM NAMED WINDOW : w1 [RANGE 5 s , SLIDE 2 s ] ON STREAM : s t r e a m 1 FROM NAMED WINDOW : w2 [RANGE 5 s , SLIDE 5 s ] ON STREAM : s t r e a m 2 WHERE { WINDOW ?w1 {? s ?p ? o } WINDOW ?w2 {? s ?p ? o } FILTER ( ? w1 != ?w2 ) } An example of RSP-QL Query.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 2 :</head><label>2</label><figDesc>Fig. 2: Windowing Examples: (a) Window [RANGE 5s STEP 5s], (b) Window [RANGE 5s STEP 2s]. Cfr Listing 1.1.</figDesc><graphic coords="7,152.06,116.83,311.24,124.18" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>1 3 Listing 1 . 2 :</head><label>312</label><figDesc>FROM NAMED WINDOW : a [RANGE 5 s , STEP 2 s ] ON STREAM : s t r 1 2 FROM NAMED WINDOW : b [RANGE 5 s ] ON STREAM : s t r 2 3 FROM NAMED WINDOW : c [RANGE 5 s , SLIDE 5 s , SPLIT 1 s ] ON STREAM : s t r An example of RSP-QL Query.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 :</head><label>1</label><figDesc>Differences between Active SDS respectively Current, Closed and Cached.</figDesc><table><row><cell></cell><cell></cell><cell cols="2">Closed</cell><cell>Cached</cell></row><row><cell cols="5">w1 w2 w1 w2 w1 w2</cell></row><row><cell cols="3">SDS(30) x1 y1,y2 x1</cell><cell>∅</cell><cell>x1</cell><cell>y1</cell></row><row><cell cols="5">SDS(35) x2,x3 y3,y4 x2,x3 y3,y4 x2,x3 y3,y4</cell></row><row><cell>SDS(36) x4</cell><cell>y5</cell><cell>∅</cell><cell cols="2">∅ x2,x3 y3,y4</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2 :</head><label>2</label><figDesc>Five challenges in the RSP-QL model and variants to them.</figDesc><table><row><cell>Challenges</cell><cell>RSP-QL</cell><cell cols="2">Variants</cell></row><row><cell>C1 Stream Content</cell><cell cols="3">Named Graph RDF Statement Virtual</cell></row><row><cell cols="2">C2 Stream Ordering Non-Decreasing</cell><cell>Monotonic</cell><cell>Late Items</cell></row><row><cell>C3 SDS Consolidation</cell><cell>Current</cell><cell>Closed</cell><cell>Cached</cell></row><row><cell>SDS Maintenance</cell><cell>/</cell><cell>Snapshot</cell><cell>Deltas</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://github.com/streamreasoning/yasper.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_1">https://github.com/streamreasoning/CSPARQL-engine</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_2">The current implementation uses Apache Jena 3.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_3">www.espertech.com</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_4">https://github.com/streamreasoning/rsp-ql</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_5">We consider efficient an approach that performs better than a naive solution that rebuild SDS.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_6">https://spark.apache.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="9" xml:id="foot_7">https://flink.apache.org/</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgments. We thank Daniele Dell'Aglio for the supporting discussions and brainstorming regarding RSP-QL.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">The dataflow model: A practical approach to balancing correctness, latency, and cost in massivescale, unbounded, out-of-order data processing</title>
		<author>
			<persName><forename type="first">T</forename><surname>Akidau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Bradshaw</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Chambers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Chernyak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Fernández-Moctezuma</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lax</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Mcveety</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Mills</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Perry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Schmidt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Whittle</surname></persName>
		</author>
		<ptr target="http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf" />
	</analytic>
	<monogr>
		<title level="j">PVLDB</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">12</biblScope>
			<biblScope unit="page" from="1792" to="1803" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">The CQL continuous query language: semantic foundations and query execution</title>
		<author>
			<persName><forename type="first">A</forename><surname>Arasu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Babu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Widom</surname></persName>
		</author>
		<idno type="DOI">10.1007/s00778-004-0147-z</idno>
		<ptr target="https://doi.org/10.1007/s00778-004-0147-z" />
	</analytic>
	<monogr>
		<title level="j">VLDB J</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="121" to="142" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A restful interface for RDF stream processors</title>
		<author>
			<persName><forename type="first">M</forename><surname>Balduini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/Vol-1035/iswc2013_poster_8.pdf" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the ISWC 2013 Posters &amp; Demonstrations Track</title>
				<meeting>the ISWC 2013 Posters &amp; Demonstrations Track<address><addrLine>Sydney, Australia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2013-10-23">October 23, 2013. 2013</date>
			<biblScope unit="page" from="209" to="212" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Social listening of city scale events using the streaming linked data framework</title>
		<author>
			<persName><forename type="first">M</forename><surname>Balduini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Dell'aglio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Tsytsarau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Palpanas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Confalonieri</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Semantic Web Conference (2</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2013">2013</date>
			<biblScope unit="volume">8219</biblScope>
			<biblScope unit="page" from="1" to="16" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">SLD Revolution: A Cheaper, Faster yet more Accurate Streaming Linked Data Framework</title>
		<author>
			<persName><forename type="first">M</forename><surname>Balduini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Tommasini</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/Vol-1870/#paper-01" />
		<imprint>
			<biblScope unit="page" from="1" to="15" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">C-SPARQL: a continuous query language for RDF data streams</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">F</forename><surname>Barbieri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Braga</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ceri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Grossniklaus</surname></persName>
		</author>
		<idno type="DOI">10.1142/S1793351X10000936</idno>
		<ptr target="https://doi.org/10.1142/S1793351X10000936" />
	</analytic>
	<monogr>
		<title level="j">Int. J. Semantic Computing</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="3" to="25" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Enabling ontology-based access to streaming data sources</title>
		<author>
			<persName><forename type="first">J</forename><surname>Calbimonte</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ó</forename><surname>Corcho</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">J G</forename><surname>Gray</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-642-17746-0_7</idno>
		<ptr target="https://doi.org/10.1007/978-3-642-17746-0_7" />
	</analytic>
	<monogr>
		<title level="m">The Semantic Web -ISWC 2010 -9th International Semantic Web Conference, ISWC 2010</title>
				<meeting><address><addrLine>Shanghai, China</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010">November 7-11, 2010. 2010</date>
			<biblScope unit="page" from="96" to="111" />
		</imprint>
	</monogr>
	<note>Revised Selected Papers. Part I</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Towards a unified language for RDF stream query processing</title>
		<author>
			<persName><forename type="first">D</forename><surname>Dell'aglio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Calbimonte</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ó</forename><surname>Corcho</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ESWC 2015 Satellite Events Portorož</title>
				<meeting><address><addrLine>, Slovenia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2015-06-04">May 31 -June 4, 2015. 2015</date>
			<biblScope unit="page" from="353" to="363" />
		</imprint>
	</monogr>
	<note>Revised Selected Papers</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">RSP-QL semantics: A unifying query model to explain heterogeneity of RDF stream processing systems</title>
		<author>
			<persName><forename type="first">D</forename><surname>Dell'aglio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Calbimonte</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ó</forename><surname>Corcho</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Int. J. Semantic Web Inf. Syst</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="17" to="44" />
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Stream reasoning: A survey and outlook</title>
		<author>
			<persName><forename type="first">D</forename><surname>Dellaglio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Van Harmelen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bernstein</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Data Science</title>
		<imprint>
			<biblScope unit="page" from="1" to="24" />
		</imprint>
	</monogr>
	<note type="report_type">Preprint</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Benchmarking RDF query engines: The LDBC semantic publishing benchmark</title>
		<author>
			<persName><forename type="first">V</forename><surname>Kotsev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Minadakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Papakonstantinou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Erling</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Fundulaki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kiryakov</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/Vol-1700/paper-01.pdf" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Workshop on Benchmarking Linked Data (BLINK 2016) co-located with the 15th International Semantic Web Conference (ISWC)</title>
				<meeting>the Workshop on Benchmarking Linked Data (BLINK 2016) co-located with the 15th International Semantic Web Conference (ISWC)<address><addrLine>Kobe, Japan</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016-10-18">October 18, 2016. 2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">A native and adaptive approach for unified processing of linked streams and linked data</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">L</forename><surname>Phuoc</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dao-Tran</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">X</forename><surname>Parreira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hauswirth</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-642-25073-6_24</idno>
		<ptr target="https://doi.org/10.1007/978-3-642-25073-6_24" />
	</analytic>
	<monogr>
		<title level="m">The Semantic Web -ISWC 2011 -10th International Semantic Web Conference</title>
				<meeting><address><addrLine>Bonn, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2011">October 23-27, 2011. 2011</date>
			<biblScope unit="page" from="370" to="388" />
		</imprint>
	</monogr>
	<note>Proceedings, Part I</note>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Heaven: A framework for systematic comparative research approach for RSP engines</title>
		<author>
			<persName><forename type="first">R</forename><surname>Tommasini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Balduini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Dell'aglio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The 13th International ESWC</title>
				<meeting><address><addrLine>Heraklion, Crete, Greece</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016">2016. 2016</date>
			<biblScope unit="page" from="250" to="265" />
		</imprint>
	</monogr>
	<note>Proceedings.</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Rsplab: Rdf stream processing benchmarking made easy</title>
		<author>
			<persName><forename type="first">R</forename><surname>Tommasini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">D</forename><surname>Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Mauri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Brambilla</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web 16th International Semantic Web Conference</title>
				<meeting><address><addrLine>Vienna, Austria</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2017">October 21-25, 2017</date>
		</imprint>
	</monogr>
	<note>Proceedings, Part II</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
