<?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">Incremental SPARQL Evaluation for Query Answering on Linked Data</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Florian</forename><surname>Schmedding</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">Albert Ludwig University of Freiburg</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Incremental SPARQL Evaluation for Query Answering on Linked Data</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">7B257AA5BFB05234F130DEC8C4259C38</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T11:48+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>SPARQL is the standard query language for RDF data. However, its application to Linked Data is challenging because the assumption that all necessary data is present at the beginning of the evaluation does not apply. Some relevant data sources may only be discovered by processing available data. Existing approaches provide implementations that compute results for basic graph patterns incrementally while retrieving the data. We contribute to this area by a formal analysis of the SPARQL algebra to provide incremental adaptions of the operations. This enables us to evaluate the costs of the incremental evaluation for the design of optimizers that choose the presumably best computation depending on the number of insertions and deletions. In addition, we propose a construction of the SPARQL dataset from Linked Data resources that enables the usage of the Graph-operator in query answering for Linked Data.</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>On the Semantic Web, data publishing according to the Linked Data <ref type="bibr" target="#b3">[4]</ref> principles gained significant importance. The numerous projects mentioned in the Linking Open Data cloud diagram <ref type="foot" target="#foot_0">1</ref> and recent ones in librarianship <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b16">17]</ref> show its broad adaption by private, public, and governmental initiatives. Apart from its appealing simplicity in data publication, its inherent distribution can forward the demanded decentrality of the Web <ref type="bibr" target="#b1">[2]</ref> by allocating data at many sites rather than in centralized stores. However, Linked Data raises new challenges for query answering. In our research, we investigate these problems and contribute novel approaches for SPARQL <ref type="bibr" target="#b18">[19]</ref> evaluation over Linked Data.</p><p>By interweaving name and address (cf. <ref type="bibr" target="#b4">[5]</ref>), resources become dereferenceable in Linked Data and return an RDF description <ref type="bibr" target="#b13">[14]</ref> on request. To put it simply, each resource can be perceived as data source. This has three implications:</p><p>1. The number of data sources is proportional to the number of resources. 2. Creating and deleting resources changes the number of data sources. 3. Data sources cannot be classified without retrieving their content because resource names are not related to the content.</p><p>Accordingly, query answering on Linked Data is quite different from traditional distributed query answering. On the one hand, in general it is not possible to specify all relevant data sources for a query in advance. Even in the case that all relevant sources have been identified for some query, another query may require different sources, and any new resource in the data may be an additional relevant source. On the other hand, subqueries cannot be delegated to the remote sources because Linked Data does not require the presence of query processors. Thus concepts like the Service-operator from the federation extension 2 <ref type="bibr" target="#b5">[6]</ref> of SPARQL 1.1 cannot be used to distribute parts of the query, for instance. We illustrate our scenario in a small example with the query 'Select ?x, ?n Where {alice knows ?x. ?x name ?n}' to find out the names of Alice's friends. Applying the "follow your nose"-approach from Hartig et al. <ref type="bibr" target="#b10">[11]</ref> to discover relevant data sources, we start by dereferencing alice. We may receive the triples {(alice, knows, bob), (alice, knows, charlie), (bob, name, "Bobby")}, and compute the result {{?x → bob, ?n → "Bobby"}}. Next, we request data about charlie receiving {(charlie, name, "Charlie")}, and extend the result with {?x → charlie, ?n → "Charlie"}. Searching for more results, we request also bob and get {(bob, name, "Bob")}. Having traversed all links 3 , the final result is {{?x → bob, ?n → "Bobby"}, {?x → charlie, ?n → "Charlie"}, {?x → bob, ?n → "Bob"}}. In the present work, we investigate the suggested incremental computation of the results formally.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.1">Related Work</head><p>Recent work has presented different strategies and implementations to evaluate queries over Linked Data. In terms of Ladwig et al. <ref type="bibr" target="#b14">[15]</ref>, Hartig et al. <ref type="bibr" target="#b10">[11]</ref> follow a bottom-up approach, i. e., a query is evaluated without any prior information. Dereferencing the query constants and then following some links in the data, the result is computed incrementally, similar to our above example. However, their implementation with so-called non-blocking iterators may miss some results depending on the evaluation order. Hartig alleviates this problem in <ref type="bibr" target="#b9">[10]</ref> with heuristic adjustments. In contrast, Harth et al. <ref type="bibr" target="#b8">[9]</ref> employ a top-down (cf. <ref type="bibr" target="#b14">[15]</ref>) strategy. Acquired knowledge about sources is organized in a special index before queries are processed. The index is used to select the most promising sources for a given query. For our example their index would recommend alice, bob, and charlie at best letting the result be generated in a single run. Corresponding to our arguments, Harth et al. also mention that the query completeness can increase when data sources which are encountered in the evaluation but are not indexed are considered during the evaluation (e. g., retrieve charlie if only alice and bob are indexed). Ladwig et al. elaborate this idea and propose a mixed resp. explorationbased approach. They propose strategies for query-specific source selection, and use a symmetric hash join for the incremental computation that, unlike the nonblocking iterators, generates all results. In <ref type="bibr" target="#b15">[16]</ref> they refine their join method with the intention to consider a local storage beside the remote sources. However, the implementations are not based on an analysis of the SPARQL semantics. They consider only basic graph patterns, a subset of SPARQL and do not deal with decrements potentially induced by optional graph patterns.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.2">Contribution</head><p>We are interested in the incremental SPARQL evaluation over increasing datasets generated by bottom-up Linked Data query answering. In accordance to <ref type="bibr" target="#b9">[10]</ref> and <ref type="bibr" target="#b14">[15]</ref>, our assumption is that the solutions should be generated after each addition-we speak of an immediate processing-because an exhaustive link traversal prior to returning the first results seems unfeasible. The contrary, deferred processing, would delay the result computation until all data has been loaded. However, we need to investigate whether an incremental computation, i. e. modifying current results when the data changes, is superior to a direct computation, i. e. deriving all results from scratch in this case. At a first glance, this seems true for monotonically increasing results, and questionable for optional graph patterns that can introduce negation by failure. Therefore we study each SPARQL operator in detail to provide adaptions that enable incremental computation. By an estimation of the processing costs we get evidences for criteria that render one computation method preferable over the other, and make a step towards optimized immediate query processing for Linked Data.</p><p>Outline. Next, we introduce RDF, SPARQL, Linked Data, and some algebraic equivalences that are necessary for our approach. In Sec. 3 we elaborate on our approach and show the incremental adaptions of the SPARQL operators. We compare our approach to the direct computation in Sec. 4. In Sec. 5, we conclude our work and sketch a possible further development, the application of the HTTP cache mechanism in query answering for Linked Data.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Preliminaries</head><p>We introduce the RDF data model and the SPARQL query language under special attention to the construction of the dataset by link traversal and to the relation between the Graph-operator and Linked Data resources.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">RDF</head><p>The RDF data format <ref type="bibr" target="#b11">[12]</ref> describes essentially graphs with directed labeled edges. We consider RDF terms T comprising three pairwise disjoints sets I (IRIs), B (blank nodes), and L (literals). An RDF triple (s, p, o) ∈ I ∪ B × I × T connects node s (subject) through the directed labeled edge p (predicate) with node o (object). A finite set of triples is called RDF graph. The blank nodes in an RDF graph G are denoted by blank(G). We distinguish blank nodes with the prefix '_:' and literals with double quotes (e. g., _:bn01, "Rain") from IRIs.</p><p>A named graph G <ref type="bibr" target="#b6">[7]</ref> is an entity u, G with a name u ∈ I and an RDF graph G. It holds name(G) = u and gr(G) = G. Distinct named graphs do not share any blank nodes.</p><p>An RDF dataset D (cf. <ref type="bibr" target="#b0">[1]</ref>) is a set containing a possibly empty default graph dg(D) = G 0 and zero or more named graphs, ngs</p><formula xml:id="formula_0">(D) = ∅ or ngs(D) = {G 1 , . . . , G n } with G i = u i , G i , where for i = j (i) name(G i ) = name(G j ), and (ii) blank(G i ) ∩ blank(G j ) = ∅. We write names(D) to denote {name(G i ) | G i ∈ ngs(D)}, and gr(u) D = gr(G i ) if name(G i ) = u and G i ∈ ngs(D), otherwise it is the empty RDF graph.</formula><p>We use the operator ' ' to merge two RDF graphs and define the operator '+' as follows. For a dataset D and a named graph</p><formula xml:id="formula_1">G, D + G = D ∪ G with G 0 = dg(D) gr(G) if name(G) / ∈ names(D), else D + G = D.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">SPARQL</head><p>SPARQL is a W3C-recommended <ref type="bibr" target="#b18">[19]</ref> query language for RDF data. We follow the compositional semantics in <ref type="bibr" target="#b17">[18,</ref><ref type="bibr" target="#b19">20]</ref> and include the Graph-operator as in <ref type="bibr" target="#b0">[1]</ref>. Like there, our syntax differs from the W3C syntax in the previous example.</p><p>Syntax. Let V be a set of variables, V ∩ T = ∅. We indicate variables with a leading question mark (e. g., ?x). A triple pattern (s, p, o) ∈ IV × IV × ILV is a SPARQL expression. <ref type="foot" target="#foot_1">4</ref> The variables of a triple pattern t are denoted by vars(t).</p><p>If P 1 and P 2 are SPARQL expressions, so are P 1 Filter R, P 1 Union P 2 , P 1 And P 2 , P 1 Opt P 2 , u Graph P 1 (u ∈ I), and ?x Graph P 1 . R means a filter condition: ?x =?y, ?x = c (c ∈ L ∪ I), and bnd(?x) are filter conditions; if R 1 and R 2 are filter conditions then ¬R 1 , R 1 ∧ R 2 , and R 1 ∨ R 2 are, too. Finally, a query has the form Select S,F1,F2 (P ) where S is a finite subset of V , P is a SPARQL expression, and the dataset specifications F 1 and F 2 are possibly empty finite subsets of I (cf. From and From Named in Sec. 8 of <ref type="bibr" target="#b18">[19]</ref>).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Semantics.</head><p>A mapping µ is a partial function µ : V → T ; the domain of µ is denoted by dom(µ). There is an empty mapping µ 0 with dom(µ 0 ) = ∅. Two mappings µ 1 , µ 2 are compatible if for all ?x ∈ dom(µ 1 )∩dom(µ 2 ) holds µ 1 (?x) = µ 2 (?x), written as</p><formula xml:id="formula_2">µ 1 ∼ µ 2 . A mapping µ 1 is subsumed by a mapping µ 2 , denoted µ 1 µ 2 , if µ 1 ∼ µ 2 and dom(µ 1 ) ⊆ dom(µ 2 )</formula><p>. Mappings can be applied to triple patterns, written as µ(t), and replace all ?x ∈ dom(µ) ∩ vars(t) in t by µ(?x).</p><p>A mapping µ satisfies the filter condition R, denoted µ R, iff one of the following six conditions holds: (i) R is bnd(?x) and ?x ∈ dom(µ), or (ii) R is ?x =?y and bnd(?x) ∧ bnd(?y) ∧ µ(?x) = µ(?y), or (iii) R is ?x = c and bnd(?</p><formula xml:id="formula_3">x) ∧ µ(?x) = c, or (iv) R is ¬R 1 and ¬(µ R 1 ), or (v) R is R 1 ∧ R 2 , µ R 1 , and µ R 2 , or (vi) R is R 1 ∨ R 2 , and µ R 1 or µ R 2 . 5</formula><p>The solution of a SPARQL expression or query is a set of mappings. Let R be a filter condition and S a finite set of variables. For mapping sets Ω 1 , Ω 2 , the SPARQL set algebra defines the operations join ( ), union (∪), minus (\), left join ( ¯ ), selection (σ), and projection (π):</p><formula xml:id="formula_4">Ω1 Ω2 := {µ1 ∪ µ2 | µ1 ∈ Ω1, µ2 ∈ Ω2 : µ1 ∼ µ2} Ω1 ∪ Ω2 := {µ | µ ∈ Ω1 ∨ µ ∈ Ω2} Ω1 \ Ω2 := {µ1 ∈ Ω1 | ∀µ2 ∈ Ω2 : µ1 ∼ µ2} Ω1 ¯ Ω2 := (Ω1 Ω2) ∪ (Ω1 \ Ω2) σR(Ω1) := {µ ∈ Ω1 | µ R} πS(Ω1) := {µ | dom(µ) ⊆ S ∧ ∃µ : dom(µ ) ∩ S = ∅ ∧ µ ∪ µ ∈ Ω1}</formula><p>The evaluation semantics is defined by the help of a function <ref type="bibr">[[.]</ref>] that transfers a query Q into set algebra, written as [[Q]]. For expressions P , the same function is used with two additional arguments to indicate the dataset D and an active graph G for the evaluation, written [[P ]] D G . Let t be a triple pattern, P 1 , P 2 SPARQL expressions, u ∈ I, and R, S as before.</p><formula xml:id="formula_5">[[t]] D G := {µ | dom(µ) = vars(t) ∧ µ(t) ∈ G} [[P1 Filter R]] D G := σR([[P1]] D G ) [[P1 Union P2]] D G := [[P1]] D G ∪ [[P2]] D G [[P1 And P2]] D G := [[P1]] D G [[P2]] D G [[P1 Opt P2]] D G := [[P1]] D G ¯ [[P2]] D G [[u Graph P1]] D G := [[P1]] D gr(u) D [[?x Graph P1]] D G := u i ∈names(D) [[ui Graph P1]] D G {{?x → ui}} [[SelectS,F 1 ,F 2 (P1)]] := πS([[P1]] D * G 0 ) if F1 = F2 = ∅ πS([[P1]] D G 0 ) else</formula><p>According to <ref type="bibr" target="#b18">[19]</ref>, queries without dataset specification are evaluated over a default dataset D * available to the query processor. Otherwise the dataset is constructed as</p><formula xml:id="formula_6">D := ui∈F1 deref(u i ) ∪ vi∈F2 { v i , deref(v i ) } .</formula><p>The function deref maps an IRI to its corresponding graph.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Linked Data</head><p>The term Linked Data <ref type="bibr" target="#b2">[3]</ref> refers to several conventions that integrate data publication into the Web's HTTP stack as well as to the published data itself. We focus on a key aspect, the identification of non-information (e. g., a person, cf. <ref type="bibr" target="#b12">[13]</ref>) resources with URLs though their essence is not a transmittable message. A request for such a resource u ∈ I is thus redirected to an information resource f(u) which serves a description (e. g., RDF graph or HTML page) for u. So the references to other resources in descriptions are traversable and carry over the "follow your nose"-principle from the Web of Documents to the Web of Data.</p><p>Graphs. Among others, the SPARQL Graph-operator is useful for restricting mappings to authoritative information (the information provided by the URI owner of a resource, cf. Sec. 2.2.2.1 in <ref type="bibr" target="#b12">[13]</ref> and Sec. 5.1 in <ref type="bibr" target="#b2">[3]</ref>). Unfortunately, the rather intuitive adaption of our introductory example, Select {?x,?n},∅,∅ ((alice, knows, ?x) And (?x Graph (?x, name, ?n))), is inconsistent because non-information resources (friends of Alice here) are not RDF graphs. Therefore, we define the dataset D := ui∈F1 deref(u i ) ∪ vi∈F2 { f(v i ), deref(v i ) } to beware the equation of non-information resources with named graphs. Consequently, however, graph names in D are unpredictable before evaluating a query, so add (u, f, f(u)) to G 0 for each dereferenced resource u to make the relation between u and its description f(u) explicitly available.</p><p>Of course, triples t with t.p = f got from external sources are not inserted into D to prevent tampering. Hence the previous query can be expressed as Select {?x,?n},∅,∅ (((alice, knows, ?x) And (?x, f, ?y)) And (?y Graph (?x, name, ?n))) and does not return Alice's nickname for Bob, Bobby.</p><p>Query Answering. We follow the bottom-up approach from <ref type="bibr" target="#b10">[11]</ref> to illustrate our approach. First, for all dereferenceable constants c ∈ I in a query we add f(c) to F 1 and F 2 and compute the mapping sets for this dataset. Second, we consider each dereferenceable c occurring in a mapping as a relevant source and insert f(c) into F 1 and F 2 . The results over the extended dataset are computed incrementally based on the present mapping sets. We repeat the second step until F 1 and F 2 remain unchanged.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.4">Algebraic Equivalences</head><p>Our approach is based on transformations of SPARQL algebra expressions. We define difference (−) and intersection (∩) for mapping sets as usual (cf. union above) and introduce two new equivalence rules additional to those from the synoptical table in <ref type="bibr" target="#b19">[20]</ref> shown in Tab. 1. With 'P 1 ≡ P 2 ' we denote the equivalence between the algebra expressions P 1 and P 2 . Note that minus is indeed distinct from difference: Consider Ω 1 = {{?x → a, ?y → b}, {?x → a}} and Ω 2 = {{?x → a, ?y → b}}, then Ω 1 \ Ω 2 = ∅ as against Ω 1 − Ω 2 = {{?x → a}}.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Lemma 1 (FDPush).</head><p>Let Ω 1 , Ω 2 be mapping sets and R a filter condition,</p><formula xml:id="formula_7">then σ R (Ω 1 − Ω 2 ) ≡ σ R (Ω 1 ) − σ R (Ω 2 ).</formula><p>Proof. We fix a mapping µ and show that it is contained in left hand side iff it is contained in the right hand side. "⇒": Suppose</p><formula xml:id="formula_8">µ ∈ σ R (Ω 1 − Ω 2 ). It holds that µ ∈ Ω 1 , thus µ ∈ Ω 1 − Ω 2 because selection does not add mappings and µ / ∈ Ω 2 . It follows immediately that µ ∈ σ R (Ω 1 ) but µ / ∈ σ R (Ω 2 ). "⇐": Suppose µ ∈ σ R (Ω 1 ) − σ R (Ω 2 )</formula><p>. Then it holds that µ ∈ Ω 1 and µ R. We distinguish two cases. Case (1): We assume µ /</p><p>∈ Ω 2 and are done. Case (2): We assume µ</p><formula xml:id="formula_9">∈ Ω 2 . Then µ ∈ σ R (Ω 2 ) because µ R and so µ / ∈ σ R (Ω 1 ) − σ R (Ω 2 )</formula><p>. This contradicts the first presumption. </p><formula xml:id="formula_10">(A ∪ B) ∪ C ≡ A ∪ (B ∪ C) (UAss) (A B) C ≡ A (B C) (JAss) A ∪ B ≡ B ∪ A (UComm) A B ≡ B A (JComm) (A ∪ B) C ≡ (A C) ∪ (B C) (JUDistR) A (B ∪ C) ≡ (A B) ∪ (A C) (JUDistL) (A ∪ B) \ C ≡ (A \ C) ∪ (B \ C) (MUDistR) (A \ B) \ C ≡ A \ (B ∪ C) (MMUCorr)</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Lemma 2 (MDReord).</head><p>Let Ω 1 , Ω 2 , Ω 3 be mapping sets, then</p><formula xml:id="formula_11">(Ω 1 −Ω 2 )\Ω 3 ≡ (Ω 1 \ Ω 3 ) − Ω 2 .</formula><p>Proof. We proceed like above. "⇒": Suppose</p><formula xml:id="formula_12">µ ∈ (Ω 1 − Ω 2 ) \ Ω 3 . Then for all µ ∈ Ω 3 holds µ ∼ µ , and µ / ∈ Ω 2 but µ ∈ Ω 1 . It follows that µ ∈ Ω 1 \ Ω 3 , and thus also µ ∈ (Ω 1 \Ω 3 )−Ω 2 . "⇐": Suppose µ ∈ (Ω 1 \Ω 3 )−Ω 2 . Then µ / ∈ Ω 2 , and for all µ ∈ Ω 3 holds µ ∼ µ . So µ ∈ Ω 1 − Ω 2 and finally µ ∈ (Ω 1 − Ω 2 ) \ Ω 3 .</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Incremental SPARQL Evaluation</head><p>We want to evaluate SPARQL over an increasing dataset while we are interested in the result of a query after each addition to the data as outlined in the introduction. This can certainly be achieved by a complete evaluation over the whole data. However, we think that an approach that takes previously computed results into account might perform better. Therefore we provide an incremental adaption for each algebra operation to compute the result based on the changes of the operands between the dataset D and the increased dataset D + ∆ D . We consider also the mechanism to select the active graph (Graph) and the evaluation of triple patterns.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Definition 1 (Insertions and Deletions). For a SPARQL expression P , an RDF dataset D, and a named graph</head><formula xml:id="formula_13">∆ D , let A = [[P ]] D G and A = [[P ]] D+∆ D G . We define insertions ∆ + A := A − A and deletions ∆ − A := A − A . It follows that (i) ∆ + A ∩∆ − A = ∅, (ii) ∆ + A ∩A = ∅, (iii) ∆ − A ∩A = ∅, (iv) ∆ − A ⊆ A, and (v) A = (A − ∆ − A ) ∪ ∆ + A .</formula><p>This must hold in the following transformations.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Algebra operations</head><p>For the transformations of union, join, and minus assume that</p><formula xml:id="formula_14">A = [[P 1 ]] D G , B = [[P 2 ]] D G , A = [[P 1 ]] D+∆ D G , and B = [[P 2 ]] D+∆ D G</formula><p>have already been computed.</p><formula xml:id="formula_15">Projection. Given C π = [[Select S,F1,F2 (P )]], A = [[P ]] D G0 , A = [[P ]] D+∆ D G0 , and ∆ D = f(u), G , we are interested in C π = [[Select S,F1∪{u},F2∪{u} (P )]]. ∆ − π , ∆ +</formula><p>π can be used when projections are pushed down in query optimizations.</p><p>[</p><formula xml:id="formula_16">[Select S,F1∪{u},F2∪{u} (P )]] = π S ([[P ]] D+∆ D G0 ) = π S (A ) = {µ | dom(µ) ⊆ S ∧ ∃µ : dom(µ ) ∩ S = ∅ ∧ µ ∪ µ ∈ A } = {µ | dom(µ) ⊆ S ∧ ∃µ : dom(µ ) ∩ S = ∅ ∧ µ ∪ µ ∈ (A − ∆ − A )} ∪ {µ | dom(µ) ⊆ S ∧ ∃µ : dom(µ ) ∩ S = ∅ ∧ µ ∪ µ ∈ ∆ + A } = (π S (A) − {µ ∈ π S (∆ − A ) | ¬∃µ ∈ A : µ µ }) ∪ π S (∆ + A ) ∆ − π = {µ ∈ π S (∆ − A ) | ¬∃µ ∈ A : µ µ } ∆ + π = {µ ∈ π S (∆ + A ) | µ / ∈ π S (A)} Selection. Given C σ = [[P Filter R]] D G , we are interested in C σ = [[P Filter R]] D+∆ D G . Assume A = [[P ]] D G and A = [[P ]] D+∆ D G have been computed yet. [[P Filter R]] D+∆ D G = σ R ((A − ∆ − A ) ∪ ∆ + A ) = σ R (A − ∆ − A ) ∪ σ R (∆ + A ) (FUPush) = (σ R (A) − σ R (∆ − A )) ∪ σ R (∆ + A ) (FDPush) ∆ − σ = σ R (∆ − A ) ∆ + σ = σ R (∆ + A )</formula><p>= A ¯ B can be expressed by join and minus, thus</p><formula xml:id="formula_17">C ¯ = C ∪ C , ∆ − ¯ = ∆ − ∪ ∆ − , and ∆ + ¯ = ∆ + ∪ ∆ + .</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Active Graph Selection and Triple Patterns</head><p>The selection of the active graph propagates to the subexpressions and finally takes effect in the evaluation of triple patterns. The active graph can also be changed inside the scope of a Graph-operator, yet it is not possible to reactivate the default graph. . with ∆ D = u , G . The expression is rewritten like above.</p><formula xml:id="formula_18">[[t]] D+∆ D dg(D+∆ D ) = [[t]] D+ u,G dg(D+ u,G ) = [[t]] D+ u,G dg(D) G = {µ | dom(µ) = vars(t) ∧ t ∈ dg(D) G} = {µ | dom(µ) = vars(t) ∧ t ∈ dg(D)} ∪ {µ | dom(µ) = vars(t) ∧ t ∈ G} = [[t]] D dg(D) ∪ [[t]] u,G G ∆ + DG = {µ ∈ [[t]] u,G G | µ / ∈ [[t]] D dg<label>(</label></formula><formula xml:id="formula_19">[[t]] D+∆ D gr(u) D+∆ D = [[t]] D gr(u) D if u ∈ names(D) [[t]] { u ,G } gr(u) ∆ D if u = u ∆ + FG = [[t]] { u ,G } gr(u) ∆ D if u = u ∅ else</formula><p>Variable Graph. With variable graph name, ?x Graph P is evaluated as </p><formula xml:id="formula_20">A i {{x → u i }} =B i ∪ [[P ]] D+∆ D G {{x → u}} ∆ − VG = i ∆ − Bi ∆ + VG = i ∆ + Bi ∪ [[P ]] D+∆ D G {{x → u}} ∆ −</formula><p>Bi and ∆ + Bi are composed as in Sec. 3.1 and thus disjoint. It holds</p><formula xml:id="formula_21">∆ + VG ∩∆ − VG = ∅ because µ 1 (?x) = µ 2 (?x) for µ 1 ∈ ∆ + Bi , µ 2 ∈ ∆ − Bj where i = j.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Comparing Incremental and Direct Computation</head><p>We evaluate our approach by comparing the incremental computation to the direct computation. We exemplify these considerations for projection and leave out the other operations due to space limitations. Union behaves similarly, join and minus are slightly more complicated, and selection is easier. Costs of Projection. Let sets with the operations insert, delete, and fsub to check for a subsuming mapping be given. We do not assume a specific order for the sets. The costs of evaluating an operation op are denoted by op . The direct computation of the projection simply performs 'for µ ∈ A do µ ←− µ[S]; C π insert µ end', so its costs can be estimated at |A | • ( µ[S] + C π insert µ ). An achievable proceeding for the incremental case is shown in Alg. 1. Its approximated costs are given in the following sum where α is the number of successful subsumption checks and β the number of changes to C π .</p><formula xml:id="formula_22">|∆ − A | • µ[S] + A fsub µ + (|∆ − A | − α) C π delete µ + ∆ − π insert µ + |∆ + A | • µ[S] + C π insert µ + β ∆ + π insert µ</formula><p>Overestimating the insertions into ∆ + π we can conclude that the incremental adaption has fewer costs if</p><formula xml:id="formula_23">∆ − A = ∅ and |A | &gt; 2 • |∆ + A |.</formula><p>Otherwise it depends on the size of ∆ − A and opens the way for optimizations.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Algorithm 1: Compute</head><formula xml:id="formula_24">C π = π S (A ) incrementally Data: Mapping sets Cπ = πS(A), A , ∆ − A , ∆ + A , variable set S Result: C π = πS(A ) begin ∆ − π ←− ∅; ∆ + π ←− ∅ for µ in ∆ − A do µ ←− µ[S]; if not A fsub µ then Cπ delete µ ; ∆ − π insert µ for µ in ∆ + A do µ ←− µ[S]; if Cπ insert µ changes Cπ then ∆ + π insert µ</formula><p>Towards an optimizer. A useful cost estimation is subject to the data and especially to the chosen implementation. If the direct evaluation is presumably cheaper, an optimizer may choose to compute C π only from A . However, to support the incremental computation for operations that use C π as input, the costs to compute ∆ − π := C π − C π and ∆ + π := C π − C π must be considered, too. A different improvement can be achieved by using mapping multi-sets (cf. <ref type="bibr" target="#b19">[20]</ref>) that combine a mapping µ with a multiplicity m(µ). In the computation of ∆ − π , it must be checked for each mapping µ ∈ ∆ − A whether there are still justifications for µ[S] in A . By contrast, the multiplicities in a mapping multi-set are evidences for the number of justifications. By defining −A as A with each multiplicity multiplied by −1, we can compute C π = {µ ∈ π S (A) ∪ (−π S (∆ − A ) ∪ π S (∆ + A )) | m(µ) &gt; 0} (assuming that the operations cover multiplicities). ∆ − π and ∆ + π can be assigned during the computation of the leftmost union for deletions (µ with m(µ) &lt; 0) and insertions (µ with m(µ) &gt; 0).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion and Future Work</head><p>We have presented a novel analysis of incremental SPARQL evaluation. Our results show means to design an optimizer that is able to choose the presumably best computation in the described Linked Data query answering scenario where the immediate processing of new data is desired. We have also proposed an integration of Linked Data resources and the Graph-operator based on specific construction of the SPARQL dataset. We think that our findings provide a sound formal basis for further research in this area.</p><p>Future Work. Next, we want to transfer the presented analysis to the SPARQL bag semantics and implement our approach with the described possibilities for optimization, and generalize ∆ D in order to let it contain more than one named graph. Our approach may also be useful in combination with local caches. As Linked Data is built on top of HTTP, the cache-control mechanism<ref type="foot" target="#foot_3">6</ref> could be used to detect and update outdated data on the fly in order to integrate the latest information during the query processing.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>For example, [[u 1 Graph (P 1 And (u 2 Graph P 2 )]] D G is equivalent to [[P 1 ]] D gr(u1) D [[P 2 ]] D gr(u2) D , u i ∈ I. Default Graph. Let t be a triple pattern and ∆ D = u, G . Given C DG = [[t]] D dg(D) , we are interested in C DG = [[t]] D+∆ D dg(D+∆ D )</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>D) } Fixed Graph. The expression u Graph P with fixed graph name u is evaluated as [[P ]] D gr(u) D . Let t be a triple pattern and C FG = [[t]] D gr(u) D . We are interested in C FG = [[t]] D+∆ D gr(u) D+∆ D</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head></head><label></label><figDesc>ui∈names(D) [[u i Graph P ]] D G {{x → u i }} .Unlike before, it cannot be completely pushed down to the subexpressions. Let be∆ D = u, G as above. Given C VG = [[P ]] D gr(u1) D {{x → u 1 }} ∪ . . . ∪ [[P ]] D gr(un) D {{x → u n }} and A i = [[P ]] D gr(ui) D , A i = [[P ]] D+∆ D gr(ui) D for u i ∈ names(D) we are interested in C VG = ui∈names(D+∆ D ) [[u i Graph P ]] D+∆ D G {{x → u i }} . ui∈names(D+∆ D ) [[P ]] D+∆ D gr(ui) D+∆ D {{x → u i }} = ui∈names(D)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Definition 2 (</head><label>2</label><figDesc>Projection of mappings). Let µ be a mapping and S a finite set of variables. The mapping µ[S] is the projection of µ onto S where (i) dom(µ[S]) := dom(µ) ∩ S and (ii) µ[S](?x) := µ(?x).</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>Algebraic Equivalences, where A, B, C denote mapping sets.</figDesc><table /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">See http://richard.cyganiak.de/2007/10/lod/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_1">Blank nodes are not considered because they act as anonymous variables and can be replaced w. l. o. g. by unselected variables in a query.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_2">The distinction between false and error in case of µ R can be safely ignored in our context.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_3">RFC #2616 Draft Standard at http://tools.ietf.org/html/rfc2616</note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Union. Given C</head></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">The Expressive Power of SPARQL</title>
		<author>
			<persName><forename type="first">R</forename><surname>Angles</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Gutierrez</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 7th Int&apos;l Semantic Web Conference (ISWC)</title>
				<meeting>the 7th Int&apos;l Semantic Web Conference (ISWC)<address><addrLine>Karlsruhe, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Long Live the Web: A Call for Continued Open Standards and Neutrality</title>
		<author>
			<persName><forename type="first">T</forename><surname>Berners-Lee</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Scientific American Magazine</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">C</forename><surname>Bizer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Cyganiak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Heath</surname></persName>
		</author>
		<ptr target="http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/" />
		<title level="m">How to Publish Linked Data on the Web</title>
				<imprint>
			<date type="published" when="2007-08-15">2007. Aug 15, 2011</date>
		</imprint>
		<respStmt>
			<orgName>Freie Universität Berlin ; The Open University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Tech. Rep.</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Linked Data -The Story So Far</title>
		<author>
			<persName><forename type="first">C</forename><surname>Bizer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Heath</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Berner-Lee</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal on Semantic Web and Information Systems (IJSWIS)</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">3</biblScope>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Booth</surname></persName>
		</author>
		<ptr target="http://www.w3.org/2002/11/dbooth-names/dbooth-names_clean.htm" />
		<title level="m">Four uses of a url: Name, Concept, Web Location and Document Instance</title>
				<imprint>
			<date type="published" when="2003-01">Jan 2003. Aug 15, 2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Semantics and Optimization of the SPARQL 1.1 Federation Extension</title>
		<author>
			<persName><forename type="first">C</forename><surname>Buil-Aranda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Arenas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Corcho</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 8th Extended Semantic Web Conference (ESWC)</title>
				<meeting>the 8th Extended Semantic Web Conference (ESWC)<address><addrLine>Heraklion, Greece</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Named Graphs</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J</forename><surname>Carroll</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bizer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hayes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Stickler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Web Semantics: Science, Services and Agents on the World Wide Web</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="issue">4</biblScope>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Linked Data for Libraries</title>
		<author>
			<persName><forename type="first">J</forename><surname>Hannemann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kett</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">World Library and Information Congress: 76th IFLA Gen. Conf. and Assy</title>
				<meeting><address><addrLine>Gothenburg, Sweden</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Data Summaries for On-Demand Queries over Linked Data</title>
		<author>
			<persName><forename type="first">A</forename><surname>Harth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Hose</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Karnstedt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Polleres</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">U</forename><surname>Sattler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Umbrich</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 19th Int&apos;l Conference on World Wide Web (WWW)</title>
				<meeting>the 19th Int&apos;l Conference on World Wide Web (WWW)<address><addrLine>Raleigh, NC, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversal Based Query Execution</title>
		<author>
			<persName><forename type="first">O</forename><surname>Hartig</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 8th Extended Semantic Web Conference (ESWC)</title>
				<meeting>the 8th Extended Semantic Web Conference (ESWC)<address><addrLine>Heraklion, Greece</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Executing SPARQL Queries over the Web of Linked Data</title>
		<author>
			<persName><forename type="first">O</forename><surname>Hartig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bizer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Freytag</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 8th Int&apos;l Sem. Web Conf</title>
				<meeting>of the 8th Int&apos;l Sem. Web Conf<address><addrLine>Chantilly, VA, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m" type="main">RDF Semantics. W3C Recommendation</title>
		<author>
			<persName><forename type="first">P</forename><surname>Hayes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Mcbride</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/" />
		<imprint>
			<date type="published" when="2004-02">Feb 2004. Aug 15, 2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Architecture of the World Wide Web</title>
		<author>
			<persName><forename type="first">I</forename><surname>Jacobs</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Walsh</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/2004/REC-webarch-20041215/" />
		<imprint>
			<date type="published" when="2004-12">Dec 2004. Aug 15, 2011</date>
			<publisher>W3C Rec</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Resource Description Framework (RDF): Concepts and Abstract Syntax</title>
		<author>
			<persName><forename type="first">G</forename><surname>Klyne</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J</forename><surname>Caroll</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Mcbride</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/" />
	</analytic>
	<monogr>
		<title level="m">W3C Recommendation</title>
				<imprint>
			<date type="published" when="2004-02">Feb 2004. Aug 15, 2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Linked Data Query Processing Strategies</title>
		<author>
			<persName><forename type="first">G</forename><surname>Ladwig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Tran</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 9th Int&apos;l Semantic Web Conference (ISWC)</title>
				<meeting>the 9th Int&apos;l Semantic Web Conference (ISWC)<address><addrLine>Shanghai, China</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">SIHJoin: Querying Remote and Local Linked Data</title>
		<author>
			<persName><forename type="first">G</forename><surname>Ladwig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Tran</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 8th Extended Semantic Web Conference (ESWC)</title>
				<meeting>of the 8th Extended Semantic Web Conference (ESWC)<address><addrLine>Heraklion, Greece</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Contentus -Towards Semantic Multi-Media Libraries</title>
		<author>
			<persName><forename type="first">J</forename><surname>Nandzik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Heß</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hannemann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Flores-Herr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Bossert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">World Library and Information Congress: 76th IFLA General Conf. and Assembly</title>
				<meeting><address><addrLine>Gothenburg, Sweden</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Semantics and Complexity of SPARQL</title>
		<author>
			<persName><forename type="first">J</forename><surname>Pérez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Arenas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Gutierrez</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Database Systems (TODS)</title>
		<imprint>
			<biblScope unit="volume">34</biblScope>
			<biblScope unit="issue">3</biblScope>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">SPARQL Query Language for RDF</title>
		<author>
			<persName><forename type="first">E</forename><surname>Prud'hommeaux</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Seaborne</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/" />
	</analytic>
	<monogr>
		<title level="m">W3C Recommendation</title>
				<imprint>
			<date type="published" when="2008-01">Jan 2008. Aug 15, 2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Foundations of SPARQL Query Optimization</title>
		<author>
			<persName><forename type="first">M</forename><surname>Schmidt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Meier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Lausen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 13th International Conference on Database Theory (ICDT)</title>
				<meeting>the 13th International Conference on Database Theory (ICDT)<address><addrLine>Lausanne, Switzerland</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

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