<?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">Progressive Semantic Query Answering</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Giorgos</forename><surname>Stamou</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">School of Electrical and Computer Engineering</orgName>
								<orgName type="institution">National Technical University of Athens</orgName>
								<address>
									<addrLine>Zographou Campus</addrLine>
									<postCode>15780</postCode>
									<settlement>Athens</settlement>
									<country key="GR">Greece</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Despoina</forename><surname>Trivela</surname></persName>
							<email>despoina@image.ntua.gr</email>
							<affiliation key="aff0">
								<orgName type="department">School of Electrical and Computer Engineering</orgName>
								<orgName type="institution">National Technical University of Athens</orgName>
								<address>
									<addrLine>Zographou Campus</addrLine>
									<postCode>15780</postCode>
									<settlement>Athens</settlement>
									<country key="GR">Greece</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alexandros</forename><surname>Chortaras</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">School of Electrical and Computer Engineering</orgName>
								<orgName type="institution">National Technical University of Athens</orgName>
								<address>
									<addrLine>Zographou Campus</addrLine>
									<postCode>15780</postCode>
									<settlement>Athens</settlement>
									<country key="GR">Greece</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Progressive Semantic Query Answering</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">5AE84AE06AACF3E92E47266356402C6D</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T20:17+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>
			<textClass>
				<keywords>
					<term>scalable query answering</term>
					<term>tractable reasoning</term>
					<term>approximate query answering</term>
					<term>semantic queries over relational data</term>
					<term>OWL 2 Profiles</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Ontology-based semantic query answering algorithms suffer from high computational complexity and become impractical in most cases that OWL is used as a framework for data access in the Semantic Web. For this reason, most semantic query answering systems prefer to lose some possible correct answers of user queries rather than being irresponsible. Here, we present a method that follows an alternative direction that we call progressive semantic query answering. The idea is to start giving the most relevant correct answers to the user query as soon as possible and continue by giving additional answers with decreasing relevance until you find all the correct answers. We first present a systematic analysis that formalises the notion of answer relevance and that of query answering sequences that we call strides, providing a formal framework for progressive semantic query answering. Then, we describe a practical algorithm performing sound and complete progressive query answering for the W3C's OWL 2 QL Profile.</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 use of ontologies in data access is based on semantic query answering, in particular on answering user queries expressed in terms of a terminology (that is connected to the data) and usually represented in the form of conjunctive queries (CQs) <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b0">1]</ref>. The main restriction of the applicability of the specific approach is that the problem of answering CQs in terms of ontologies represented in description logics (the underlying framework of the W3C's Web Ontology Language -OWL) has been proved to be difficult, suffering from very high worst-case complexity (higher than other standard reasoning problems) that is not relaxed in practice <ref type="bibr" target="#b5">[6]</ref>. This is the reason that methods and techniques targeting the development of practical systems mainly follow two distinct directions. The first suggests the reduction of the ontology language expressivity used for the representation of CQs vocabulary, while the second sacrifices the completeness of the CQ answering process, providing as much expressivity as possible. Methods of the first approach mainly focus on decoupling CQ answering into (a) the use of terminological knowledge provided by the ontology (the reasoning part of query answering) and (b) the actual query execution (the data retrieval), thus splitting the problem into two independent steps <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b9">10]</ref>. During the first step (usually called query rewriting) the CQ is analysed with the aid of the ontology and expanded into a (hopefully finite) set of conjunctive queries, using all the constrains provided by the ontology. Then, the CQs of the above set are processed with traditional query answering methods on databases or triple stores, since terminological knowledge is no longer necessary. The main objective is to reduce the expressivity of the ontology language until the point that the procedure guarantees completeness. Late research in the area, introduced the DL-Lite family of description logics, underpinning W3C's OWL 2 QL Profile <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b2">3]</ref>, in which the CQ answering problem is AC 0 w.r.t. data. Despite the obvious advantage of using the mature technology (more than 40 years research) of relational databases, there are also other major technological advantages of the specific approach, most of them connected with the use of first-order resolution-based reasoning algorithms <ref type="bibr">[7][5,</ref><ref type="bibr">Ch.2]</ref>. The main restriction is that in the presence of large terminologies, the algorithm becomes rather impractical, since the exponential behaviour (caused by the exponential query complexity) affects the efficiency of the system.</p><p>The attempts to provide scalable semantic query answering over ontologies expressed in larger fragments of OWL introduced the notion of approximation. Approximate reasoning usually implies unsoundness and/or incompleteness, however in the case of semantic query answering most systems are sound. Typical examples of incomplete query answering systems are the well-known triple stores (Sesame, OWLIM, Virtuoso, AllegroGraph, Mulgara etc). The two main characteristics distinguishing incomplete semantic CQ answering systems is how efficient and how incomplete they are. The efficiency of semantic query answering is usually tested with the aid of real data of a specific application or using standard benchmarks <ref type="bibr" target="#b7">[8]</ref>. Lately, a systematic approach of the study of incompleteness of semantic query answering systems has been also presented <ref type="bibr" target="#b8">[9]</ref>. A major issue here is that the user should be aware of the type of lost correct answers, i.e. there should be a general deterministic criterion expressing a type of relevance, indicating how crucial is the loss of each correct answer.</p><p>Within the above framework, herein we present an alternative direction in scalably solving the problem of semantic query answering ensuring a safe approximation process that hopefully converges to a complete solution. The idea is to provide the user with correct answers as soon as they are derived and continue until all the correct answers are found, ensuring that the relevant correct answers will be first given. For example, in the case of the query rewriting approach this means that instead of clearly splitting the steps of query rewriting and query processing, whenever a new rewriting is found it can be evaluated against the database and the results can be presented to the user. In order for this idea to be successfully applied, several intuitive requirements should be fulfilled: the first correct answers should be given very fast; an important amount of correct answers should be found in a first small percentage of execution time; complete-ness should be ideally reached (or at least approximated); correct answers should be given following a degree of importance, according to a semantic preference criterion; the results should not be widely replicated.</p><p>In the present paper, we provide a systematic approach formalising the above idea. We introduce progressive semantic query answering based on the notion of CQ answering strides that are flows of correct answers with specific properties that formalise the intuitive meaning of the above criteria. We then provide a practical progressive semantic CQ answering algorithm that has some nice properties and is complete in OWL 2 QL and present the results of its implementation and evaluation (we call the implemented system ProgRes). The algorithm is based on a query rewriting resolution-based procedure that computes a sequence of rewritings, the elements of which have a decreasing importance according to a query similarity criterion (measuring the similarity of the rewriting with the user CQ). The order is proved to be ensured under a specific resolution rule application strategy that ProgRes follows. It is interesting that although the results are ordered (ranked) and given during the execution, the efficiency of the algorithm is not worse than other similar ones (like the one implemented in Requiem <ref type="bibr" target="#b6">[7]</ref>).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Preliminaries</head><p>The most relevant with the problem of query answering OWL QL Profile is based on DL-Lite R <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b3">4]</ref>. A DL-Lite R ontology is a tuple T , A , where T is the terminology (usually called TBox) representing the entities of the domain and A is the assertional knowledge (usually called ABox) describing the objects of the world in terms of the above entities. Formally, T is a set of terminological axioms of the form C 1 C 2 or R 1 R 2 , where C 1 , C 2 are concept descriptions and R 1 , R 2 are role descriptions, employing atomic concepts, atomic roles and individuals that are elements of the denumerable, disjoint sets C, R, I, respectively. The ABox A is a finite set of assertions of the form A(a) or R(a, b), where a, b ∈ I, A ∈ C and R ∈ R. A DL-Lite R -concept can be either an atomic one or ∃R. . Negations of DL-Lite R -concepts can be used only in the right part of subsumption axioms. A DL-Lite R -role is either an atomic role R ∈ R or its inverse R − . A conjunctive query (CQ) has the form q : Q(x) ← n i C i (x; y), where Q(x) is the answering predicate (the head of the CQ), employing a finite set of variables, called distinguished, and the conjuncts C i (x; y) (forming the body of the CQ) are predicates possibly employing non-distinguished variables. We say that a CQ q is posed over an ontology O iff all the conjuncts of its body are concept or role names occurring in the ontology. A tuple of constants a is a certain answer of a conjunctive query Q posed over the ontology O = T , A iff O ∪ q |= Q(a), considering q as a universally quantified implication under the usual FOL semantics. The set containing all the answers of the query q over the ontology O is denoted with cert(q, O). A union of CQs q is a rewriting of q over a TBox T iff cert(q , ∅, A ) = cert(q, O), with O = T , A and A any ABox. We will denote the set of all CQs in the rewriting of q over the TBox T by rewr(q, T ). With a little abuse of notation we write rewr(q, O), meaning rewr(q, T ) (T is the TBox of O).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Semantic query answering strides</head><p>Semantic CQ answering systems are based on sophisticated algorithms that try to find as many certain answers of CQs as possible. Formally, any procedure A(q, O) that computes a set of tuples a for a CQ q posed over an ontology O is a CQ answering algorithm (CQA algorithm). A(q, O) is sound iff res(A(q, O)) ⊆ cert(q, O) and complete iff cert(q, O) ⊆ res(A(q, O)) (res( ) is the result of any algorithm ). Any procedure R(q, T ) computing a set of rewritings of q over a TBox T is a CQ rewriting algorithm. R(q, T ) can be the basis of a CQ answering algorithm A(q, O) with the aid of a procedure E(q, A) that evaluates the query and retrieves the data from the database. In this case, we write</p><formula xml:id="formula_0">A(q, O) = [R | E] (q, O). Obviously, it is res([R | E] (q, O)) = res (E(res (R(q, T )), A)).</formula><p>With a little abuse of notation, we freely write A(U, O), R(U, T ) and E(U, A) for procedures computing answers to sets U of CQs. A natural question arising in cases where scalability is a major requirement is how to split the execution of a CQ query answering algorithm into parts enabling a progressive extraction of certain answers. Also, how to control the progress of the algorithm ensuring that certain answers extracted until any specific time have desirable characteristics. Let us now proceed to the definitions that form the framework of progressive CQ answering, covering the above intuition. Definition 1. Progressive CQ answering (PCQA) Any sequence P(q, O; i) = {A j } i , i ∈ N, i &gt; 1 where A j are CQA algorithms for a query q posed over an ontology O = T , A , is a progressive CQ answering algorithm. The elements of P are its componets. If P is finite, we write</p><formula xml:id="formula_1">P(q, O) = [A 1 ; A 2 ; • • • ; A n ] (q, O).</formula><p>It is important to notice that the components of PCQA algorithms can freely change inputs and outputs in a forward manner, leaving the sequence P(i) to possibly have a recursive character. The restriction is that any component should be considered as a CQA algorithm meaning that, at any time point, we can ask for the result of any subset of the components being able to compute it (possibly using the output of the previous components). We say that P(q, O) is sound iff res(P) ⊆ cert(q, O) and complete iff cert(q, O) ⊆ res(P). Since our intention is to provide users with correct answers during the execution of P, we need refer to the result set of a subset of components of P stratifying the desired answer flow. Definition 2. PCQA Strides Let P(q, O) be a PCQA algorithm. A stride s(P; i : j), i, j ∈ N, i ≤ j of P (if it is infinite j can be equal to ∞) is the result of the execution of its components</p><formula xml:id="formula_2">A i to A j , i.e. s(P; i : j) = [i,j] res(A k ).</formula><p>Let Σ(P) denote the set of all strides of P. Obviously, res(A) ∈ Σ(P), for any component A of P and also res(P) ∈ Σ(P). We will refer to the former as a single stride and to the latter as the total stride. A stratification of P is a sequence s 1 , s 2 , ..., s k of strides of P. Now, we turn our attention to the study of PCQA algorithms the strides of which provide answers with decreasing relevance to the user query posed. The first step is to rank the elements of the strides according to the query posed by the user. Let σ(O; a, q) be a relevance measure expressing the importance of the tuple a ∈ s, with s ∈ Σ(P), i.e. the degree in which the specific tuple ideally (and with the less risk) fits to the user query.</p><p>The nature of the relevance measure may differ from one application to another. In the present paper we consider the case of a measure representing the possibility of correctness of a specific answer. Similar measures play an important role in information retrieval systems, in the process of ranking the results of query answering (see for example <ref type="bibr" target="#b11">[12,</ref><ref type="bibr" target="#b13">[14]</ref><ref type="bibr" target="#b14">[15]</ref><ref type="bibr" target="#b15">[16]</ref>). Intuitively, here we consider that some axioms of the TBox are not always valid for the specific data, i.e. some exceptions may exist in the large data set making the specific axiom typically inconsistent. The effect is that some answers derived from the query answering process are not correct. This could be a result of untrusted knowledge or by the nature of the specific axiom that is only usually valid. For example, although we know that all professors are teaching some courses, there could be the case that some professors (for some reasons) are not teaching. The problem could be solved if we had some additional information about the correctness of the TBox axioms (the provenance of the specific axiom implying a degree of trust etc). If we do not have any additional information, the only rule that we could follow is that the answer is more safe if we use less knowledge to derive it, i.e. the less reasoning the most relevance. We will further clarify this later that we focus to query rewriting PCQAs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Definition 3. Stride Ordering</head><p>Let P(q, O) be a PCQA algorithm and Σ(P) the set of its strides after the execution of the query q over the ontology O. Let also σ(a, q) be a relevance measure of the elements of the total stride and the CQs. We say that a stride s 1 (P; i : j) σ-precedes a stride s 2 (P; i : j ) for the query q and we write s 1 q σ s 2 iff for all a 1 ∈ s 1 , a 2 ∈ s 2 we have σ(a 1 , q) ≥ σ(a 2 , q). If σ(a 1 , q) &gt; σ(a 2 , q), we say that s 1 strictly σ-precedes s 2 and we write s 1 ≺ q σ s 2 . If neither s 1 q σ s 2 nor s 2 q σ s 1 , we have s 1 ⊀ q σ s 2 (they are σ-irrelevant for q). It is not difficult to see that Σ(P) forms a lattice under any ≺ q σ operator, where ∅ is its infimum and cert(q, O) is its supremum (supposing that P is sound and complete). Now that we have an ordering of strides, we are ready to proceed to the definition of progressive algorithms the strides of which are ordered. Algorithms of this type ensure that the answer blocks are ordered according to a specific relevance measure. Therefore, they can be considered as approximation algorithms with deterministically controllable behaviour. Definition 4. Sorted PCQA Algorithms Let P(q, O) be a PCQA algorithm, = s 1 , s 2 , ..., s k a stratification of P and ≺ q σ an ordering relation over Σ(P). We say that P is σ-sorted under iff for any successive strides s i , s j of it is s i q σ s j . It is strictly σ-sorted iff s i ≺ q σ s j otherwise it is σ-unsorted for q.</p><p>Example 1. Consider the simple DL-Lite R ontology O = T , A , with PCQA algorithms ensure that the results are given in a specific order that the user knows before the query answering process, according to a specific relevance criterion. For example, we could develop P = A 1 ; A 2 ; A 3 ; A 4 ; A 5 with a stratification s 1 ; s 2 ; s 3 , where s 1 (P; 1 : 1)) = res(A 1 ) = {John}, s 2 (P; 2 : 3) = res(A 3 ) ∪ res(A 4 ) = {John, Alan} and s 3 (P; 4 : 5) = res(A 5 ∪ A 5 ) = {John, Sofia, Ema}.</p><formula xml:id="formula_3">T = {PhDStudent</formula><p>Here, we consider that data is more strong than the knowledge, meaning that there could be possible exceptions in some restrictions expressed as TBox axioms. Thus, an obvious solution is that John should be the first answer (explicitly given), Alan employs a bit more risk (some reasoning is needed), while Sofia and Ema are the most risky answers (for example it could be the case that Sofia does not advise anyone for some reasons). It is not difficult to see that P is sorted according to the above intuitive measure.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Practical progressive query answering</head><p>The problem of progressive query answering is more difficult than the nonprogressive one, since the extracted results should be ranked according to a specific criterion and the ranking should be ensured during the query answering process (without knowledge of all the results). Obviously, the difficulty strongly depends on the expressivity of the ontology language and the specific relevance measure. Here, we focus on query rewriting PCQA algorithms for DL-Lite R , i.e. on cases where the components of P are based on query rewriting algorithms. We follow a resolution-based FO rewriting strategy (more details can be found in <ref type="bibr" target="#b6">[7]</ref>). Intuitively, algorithms of this category are based on the translation of the terminology into a set of FOL axioms and the repeated application of a set of resolution rules employing the query and the FOL axioms until no rule can be applied. It is ensured that when the algorithm stops it has produced all the rewritings of the user query. The idea is to stratify the application of the resolution rules in order to ensure that the rewritings will be extracted according to a specific order, following a similarity criterion in comparison to the user query. Thus, we can evaluate against the database the fresh queries (rewritings) as they are derived and provide the user with a set of fresh answers. The proposed algorithm remains sound and complete and, although it solves a more difficult problem, in several cases it is more efficient than the respective non-progressive algorithm proposed in <ref type="bibr" target="#b6">[7]</ref>.</p><p>We will use a graph representation of the CQs that is more convenient for the definition of similarity measures. Let q : Q(x) ← n i C i (x; y) posed over an ontology O. Since the conjuncts of q are entities of the terminology, they can only employ one (if they are concepts) or two (if they are roles) variables (distinguished or not). A non-distinguished variable that appears only once in the query body is called unbound, otherwise it is bound. We represent a CQ as an undirected graph G q (V q , E q , L Vq , L Eq ), where V q is the set of nodes representing the variables of the query, E q is the set of edges, L Vq is the set of node labels (representing the set of concept conjuncts employing each variable) and L Eq = L + Eq , L − Eq is the tuple of sets of edge labels (representing the set of role conjuncts employing each variable pair in L + Eq and its inverse in L − Eq ). The nodes corresponding to unbound variables are called blank nodes. Moreover, let</p><formula xml:id="formula_4">V (b) q (V (u)</formula><p>q ) denote the set of bound (unbound) variable nodes and</p><formula xml:id="formula_5">E (b) q (E (u)</formula><p>q ) denote the set of edges employing two bound (at least one unbound) variable node(s). Obviously,</p><formula xml:id="formula_6">L Vq (x) = ∅ and |L + Eq (x, y) ∪ L − Eq (x, y)| = 1, for each x ∈ V (u)</formula><p>q , y ∈ V q . We can easily extend the above notations to represent general terms instead of simple variables. The only issue that needs more attention is that in this case a node is blank only if it represents a term employing functions and variables that do not appear in any other term. For simplicity, we can delete the blank nodes of the graph and add the role name that appears in L + Eq (x, y) (or its inverse if it appears in L − Eq (x, y)) in the label of the node x that is connected with the specific blank node. In this case, the node label sets can also include role names (or inverse role names). We will make use of this simplifying convention in the sequel, in the description of our algorithm. There are several graph similarity measures (relations between graphs that are reflexive and symmetric) proposed in the literature, especially in the framework of ontology matching <ref type="bibr" target="#b10">[11,</ref><ref type="bibr" target="#b12">13]</ref>. Here, we will introduce a new measure that captures the intuitive meaning of the query similarity that is useful in query rewriting PCQA algorithms. Definition 5. Query Similarity Let q 1 and q 2 be two non-empty conjunctive queries and G q1 (V q1 , E q1 , L Vq 1 , L Eq 1 ), G q2 (V q2 , E q2 , L Vq 2 , L Eq 2 ) their graph representations. Their similarity can be defined as follows (up to variable renaming):</p><formula xml:id="formula_7">σ(q 1 , q 2 ) = 1 − λv+λ vmin+ min + (δ v + δ ) |V (b) q 1 | + |V (b) q 2 | + |E (b) q 1 | + |E (b) q 2 | + 1 (1)</formula><p>where v min = min (|V (b)</p><formula xml:id="formula_8">q 1 |, |V (b) q 2 |), min = min (|E (b) q 1 |, |E (b) q 2 |), δ v = |V (b) q 1 V (b) q 2 |, δ = |E (b) q1 E (b) q2 | ( computes the non-common elements of the two sets), λ v = | x : x ∈ V (b) q 1 ∧ x ∈ V (b) q 2 ∧ L Vq 1 (x) = L Vq 2 (x) ∨ L (u) q 1 (x, y) = L (u) q 2 (x, y) | and λ = |{(x, y) : (x, y) ∈ E (b) q1 ∧ (x, y) ∈ E (b) q2 ∧ L Eq 1 (x, y) = L Eq 2 (x, y)}|.</formula><p>The first term of the numerator of the similarity measure (Eq. 1) captures the node and edge labeling differences, the second term the structure difference, while the denominator normalises the values between 0 and 1. The main intuition behind Eq. 1 is that the labeling differences should be counted as a secondary dissimilarity cause, while the primer one should be the difference in structure. Thus, the maximum value of the first term of the fraction should not exceed the value of the second term (cannot exceed the value 1, which is the lowest structural difference). The computation of differences ignores all the unbound variables (the blank nodes of the graph), that are only involved in the computation of λ v (summarising the node label differences). The intuition behind this is that blank nodes are introduced only by unqualified existentials (∃R. ) and thus the specific unbound variable could be rejected without any problem if we just remember the role of the existential. It is important to notice that in the presence of role inverse, the bound variable could be either in the subject or in the filler part of the role; this is the reason why we consider undirected graphs and L (u) q (considering both L (u)+ q and L (u)− q ) is involved in the computation of λ v . Finally, we should notice that with a little abuse of notation, we introduced the similarity between two queries and not between queries and answers (as imposed in the previous section), implicitly meaning that the similarity is between the first query and the answers of the second one. In this way, we significantly simplified the notation in the case of query rewriting based PCQA algorithms. </p><formula xml:id="formula_9">P R − S(x, y) ← P (y, x) R P R − P ∃P A A(x) ← P (x, y) (3) ∃P − A A(x) ← P (y, x) A ∃P P (x, f (x)) ← A(x) (4) A ∃P − P (f (x), x) ← A(x) A ∃P.B P (x, f (x)) ← A(x) (4) A ∃P − .B P (f (x), x) ← A(x) B(f (x)) ← A(x) (5) B(f (x)) ← A(x)<label>(2)</label></formula><p>We are now ready to introduce a PCQA algorithm, which we call ProgResAns and is sorted according to σ(q 1 , q 2 ). In order to compute the query rewritings of a user query q, the algorithm employs a set of resolution rules. The main premise is always a query (q or a subsequently computed query rewriting) and the side premise a clause of Ξ(O). Ξ(O) is obtained from ontology O as described in Table 1 <ref type="bibr" target="#b6">[7]</ref>. The idea of the algorithm is the following: start from the user query; apply the resolution rule using side premises that preserve the structure of the query (we call this step structure preserving resolution or sp-resolution); apply the resolution rule using side premises that minimally change the structure of the query (we call this step structure reducing resolution or sr-resolution); apply anew sp-resolution to the query rewritings produced by sr-resolution, and so on; at each step evaluate the queries against the database and provide the user with the results. sp-and sr-resolution are performed by procedures sp-Resolve and sr-Resolve, respectively. sp-Resolve takes as input a query q and an element s of G q (i.e. either a node or an edge), and computes all possible rewritings of q, by iteratively applying the resolution rule using as side premises the clauses of Ξ(O) that are of type ( <ref type="formula">1</ref>)-( <ref type="formula">4</ref>) (see Table <ref type="table" target="#tab_1">1</ref>). Initially, the main premise is q and the resolution rule is applied for all atoms in q that correspond to s. The same process is iteratively applied to all the resulting rewritings, until no more rewritings can be obtained. The clauses of type ( <ref type="formula">4</ref>) are used only if the skolemized term f (x) unifies with an unbound variable of the main premise. sp-Resolve preserves the query structure, since resolution with clauses of type ( <ref type="formula">1</ref>) or ( <ref type="formula" target="#formula_9">2</ref>) affects only the sets L V and L E , respectively. Clauses of type ( <ref type="formula">3</ref>) and ( <ref type="formula">4</ref>) introduce and eliminate blank nodes.</p><p>sr-Resolve takes as input a query q and an element s of G q (i.e. either a node or an edge) and computes all possible rewritings of q, by iteratively applying the resolution rule using as side premises the clauses of Ξ(O) that are of type ( <ref type="formula">4</ref>) and <ref type="bibr" target="#b4">(5)</ref>. Clauses of type ( <ref type="formula">4</ref>) are used only if f (x) unifies with a bound variable of the query. In terms of graphs, sr-Resolve deletes a node together with the edges that connect it to the rest of the graph. ProgResAns applies sr-Resolve only on selected atoms (the atoms that correspond to the elements s of G q mentioned above) of q, called the sink node atoms of q. Sink nodes s correspond to non distinguished terms and are determined by the following condition concerning their labels: L ± E (s, y) = ∅ and L ∓ E (s, y) ≥ 1. The selective application of the resolution rule only to the sink node atoms is proved to suffice for the production of eventually all the possible query rewritings which can be evaluated against the database (i.e. query rewritings that do not contain functional terms).</p><p>We now provide the full definition of ProgResAns. Its components are the query rewriting procedures (sp-Rewrite and sr-Rewrite) and the procedure Eval, which evaluates a set of rewritings against the database:</p><formula xml:id="formula_10">ProgResAns = Eval ; {{[sp-Rewrite | Eval ]} nj i=1 ; [sr-Rewrite | Eval ]} m j=1</formula><p>sp-Rewrite and sr-Rewrite are defined by algorithms 1 and 2. sp-Rewrite employs sp-Resolve to perform exhaustive sp-resolution for all queries in the input set Q sp in . Therefore, the queries in res(sp-Resolve) have the same structure (up to blank nodes) with the queries in Q sp in , but each one of them is the result of the exhaustive application of sp-resolution on a single node or edge. The node or edge whose label is modified is annotated, so that by recursively applying sp-Resolve we can compute all possible rewritings that have the same number of different has changed only sink node atoms, so that, as mentioned before, sr-resolution is applied only on these atoms. As soon as sp-Rewrite or sr-Rewrite return, Eval computes cert(res(sp-Rewrite), O) and cert(res(sr-Rewrite), O), respectively. The following theorem can be proved: Theorem 1. ProgResAns terminates and it is sound, complete and σ-sorted.</p><p>Proof. The proof is omitted due to restricted space.</p><p>Example 2. (continued) Table <ref type="table" target="#tab_2">2</ref> summarises the results of applying ProgResAns to the input of Example 1 (all the single strides are shown). </p><formula xml:id="formula_11">Q(x) ← advise(x, y) ∧ advise(y, z) 1.000 John 2 Q(x) ← supervise(x, y) ∧ advise(y, z) 0.952 Q(x) ← advise(x, y) ∧ ResCoordinator(y) 0.952 John Q(x) ← advise(x, y) ∧ ResDirector(y) 0.952 Q(x) ← advise(x, y) ∧ supervise(y, z) 0.952 Alan Q(x) ← advise(x, y) ∧ SeniorResearcher(y) 0.952 Alan Q(x) ← advise(x, y) ∧ Professor(y) 0.952 3 Q(x) ← supervise(x, y) ∧ ResCoordinator(y) 0.905 Q(x) ← supervise(x, y) ∧ ResDirector(y) 0.905 Q(x) ← supervise(x, y) ∧ supervise(y, z) 0.905 Q(x) ← supervise(x, y) ∧ SeniorResearcher(y) 0.905 Q(x) ← supervise(x, y) ∧ Professor(y) 0.905 4 Q(x) ← ResDirector(x) 0.400 John 5 Q(x) ← Professor(x) 0.400 Sofia, Emma</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">System evaluation</head><p>We now present an empirical evaluation of ProgRes, which implements the ProgResAns algorithm, assuming that ABoxes are stored in a relational database. Our goal is to evaluate the performance of ProgRes and investigate whether the ranked computation of the answers introduces a significant time overhead. Given the progressive nature of ProgRes, meaning that each rewriting should be evaluated against the database upon its computation, our implementation follows a producer/consumer approach: A thread computes the rewritings and adds them to an execution queue, while another thread implementing the Eval procedure, retrieves the rewritings from the queue, translates them into SQL, dispatches them to the database, and collects the answers. We compare ProgRes with Requiem (implementation of the algorithm in <ref type="bibr" target="#b6">[7]</ref>), which is the most similar non-progressive DL-Lite R query answering system. We should point out, however, that a fair comparison is not possible since we are comparing a ranking, progressive algorithm with a non-ranking, non-progressive one. For an as fair as possible comparison, we reimplemented the greedy unfolding strategy of Requiem within our programming framework. This was mainly done for the comparison of the time performance to be done on equal terms and did not alter in any way the Requiem algorithm (although as we shall see in the sequel in one case our implementation performed significantly better than the original one). Nevertheless, we have to notice that the results should be interpreted only as indicative of the relative performance of the two systems.</p><p>An important issue our system had to face is the fact that, due to the realtime orientation of ProgRes, many redundant rewritings (i.e. rewritings that are structurally subsumed by subsequent, not yet computed rewritings) may be obtained. If all of them are dispatched to the database, performance may be significantly compromised. For this reason we slightly delay the addition of the new rewritings to the execution queue, by computing first all the rewritings of a stride, check for redundancies and add only the non-redundant ones to the queue. The structure of the Requiem algorithm does not allow for a directly comparable optimization strategy. In fact, the last step of Requiem is precisely a final query redundancy check step, in which any redundant queries are discarded all together. Therefore, in our evaluation of Requiem, following the original implementation, all the queries are added to the queue after the entire algorithm has finished and the final redundancy check has been performed.</p><p>We present the results for the A and S ontologies <ref type="bibr" target="#b6">[7]</ref>, as well as for P5S, a modified version of P5, in which we have included some subconcepts for the PathX concepts of P5. Briefly, ontology A is an ontology that models information about abilities, disabilities and related devices developed for the South African National Accessibility Portal. Ontology S is an ontology that models information about European Union financial institutions. Ontology P5 is a synthetic ontology developed by the authors of <ref type="bibr" target="#b6">[7]</ref> that models information about graphs (nodes and vertices) and contains classes that represent paths of length 1-5.</p><p>We evaluate ontology A with queries AQ4 and AQ5 (of size 3 and 5, respectively), ontology S with query SQ5 (of size 7) and P5S with queries PQ4 and PQ5 (of size 4 and 5, respectively). Due to restricted space we do not present the results of all ontologies and queries in <ref type="bibr" target="#b6">[7]</ref>, we choose the particular combinations as most representative of several diverse cases. We populated the ABoxes according to <ref type="bibr" target="#b8">[9]</ref>. The results are shown in Fig. <ref type="figure" target="#fig_0">1</ref>. In each row, the lhs graphs present the total number of retrieved answers vs time and the rhs graphs the evolution of similarity as new answers are retrieved. Execution time is total time, including both query rewriting computation and answer retrieval time. The small vertical bars at the two horizontal dotted lines on the top of the lhs graphs indicate the time points at which one or more new rewritings become available for execution. The upper line corresponds to ProgRes, the lower to Requiem. Table <ref type="table" target="#tab_3">3</ref> presents the number of rewritings and inferences. Within parentheses are the no. of inferences during sp-resolution (which corresponds roughly to the unfolding of Requiem) and the no. of inferences during sr-resolution (which corresponds roughly to the saturation step of Requiem). Note that some of the inferences  <ref type="table" target="#tab_3">3</ref> presents the time required for the computation of the rewritings (not including the query execution) for ProgRes and Requiem. For Requiem two times are given: the first refers to our implementation of Requiem (which we used in all other parts of the evaluation), and the second one, within parenthesis, to the original implementation (obtained from http://www.comlab.ox.ac.uk/projects/requiem). We note that in one case, in particular for ontology S, our implementation performs significantly better. This is due to the fact that it handles more effectively and removes at an earlier stage atoms that happen to be redundant within a single rewriting; as we shall also mention in the sequel, SQ5 happens to be a query that produces a lot of rewritings that contain several redundant atoms. Ontology A is to a large extent taxonomic. Both queries AQ4 and AQ5 produce many non-redundant rewritings, after a long sp-resolution/unfolding phase. In AQ4, ProgRes produces more queries (some redundant ones) and in AQ5 it performs more inferences than Requiem. This is due to the structured pattern followed in the computation of the rewritings, which as mentioned before may introduce more redundancies. This is more obvious in ontology S, where ProgRes produces a lot of redundant queries. This is however an extreme degenerate case: SQ5 is a bad query, as half of its atoms are essentially redundant. Back to ontology A, we note that although ProgRes needs slightly more time to compute the rewritings, it terminates faster. This is due to the progressive nature of ProgRes. While the producer thread computes the query rewritings, the consumer thread executes the already available ones, so there is no significant idle time for the consumer thread. In contrast, in Requiem the rewritings are obtained at the end, all together. This demonstrates the significant benefit from progressively computing and evaluating the query rewritings. The situation is quite different in ontology P5S, in which the inference procedure consist mainly of a chain of sr-reduction/saturation steps. Here, the strategy of ProgRes is much more efficient and scalable. It avoids a very large number of inference sequences that are guaranteed to give no new queries, by applying sr-resolution only on sink atoms. As a result, it finishes almost instantly, while for query PQ5 Requiem needs significantly more time and inferences. It is important to note, that in this case the performance of Requiem is not scalable in the size of the query, as it is easy to see by comparing the results for queries PQ4 and PQ5 (in PQ5 we search for all graph paths of length 5, while in PQ4 for paths of length 4). In contrast to Requiem, almost the entire execution time of ProgRes is answer retrieval time. The synthetic nature of P5S allows us to comment also on the evolution of the similarity of the answers. In (the original) ontology P5, only sr-resolution/saturation steps are involved, hence we expect ProgRes and Requiem to compute the rewritings in the same order (but not the same fast). In ontology P5S, however, for each rewriting produced at a sr-reduction step, ProgRes computes immediately all its sp-resolutions, and so the progressive decrease of similarity is achieved. Requiem computes first all the rewritings resulting from the saturation step and then all the unfoldings, hence no ranking of the answers is possible. Similar is the situation for query AQ4. In the case of AQ5, all the rewritings have the same graph structure, so the slight fluctuations in the similarity graph for Requiem are due to the non-ordered computation of the unfoldings. A steep decrease in the similarity measure occurs only when the structure of a rewriting w.r.t the original query changes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusions and future work</head><p>We have presented a systematic approach to the problem of stratifying over time the execution of CQA algorithms. We introduced the notions of progressive CQA algorithms (sequences of CQAs -its components), of strides (result sets of subsets of the components), of ordering of strides measuring the relevance of the answers with the user query and of sorted progressive CQAs ensuring a controllable approximation of the correct answer set. We have also presented a practical algorithm for progressive CQA in DL-Lite R that implements the above ideas and showed that it is possible to develop progressive algorithms that are efficient. Actually, it has been found that in the presence of large queries and TBoxes that are not simple taxonomies of atomic concepts the proposed algorithm can be much more efficient than the similar non-progressive ones (overcoming a strong limitation of some DL-Lite R CQA systems). An obvious advantage of the specific approach is the ability to be responsive even in cases of huge databases under a predetermined approximation strategy. A second advantage is that in case of inconsistency and considering data as stronger than theory (in information retrieval this is reasonable), PCQAs ensure a decreased possibility of incorrect answers. Finally, PCQA have ideal structure for parallel processing. The main disadvantage is that it is difficult to reduce the redundancies, since the complete set of answers is not available before the output. The present work can be extended in several directions. We could take advantage of the ideas presented in <ref type="bibr" target="#b9">[10]</ref> and dramatically improved the performance of DL-Lite R CQAs. Also, we could develop PCQA algorithms and systems for more expressive DLs. Finally, we could try to stratify smaller strides in ProgRes avoiding wide replications by applying sophisticated redundancy checking.</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. Execution time and similarity. From top to bottom the graphs in each row correspond to the ontology-query pairs A-AQ4, A-AQ5, S-SQ5, P5S-PQ4 and P5S-PQ5. The thick and thin lines correspond to ProgRes and Requiem, respectively</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>It is not difficult to see that cert(q, O) = {Alan, John, Sofia, Ema}. John is a direct result from the ABox, since it is explicitly given that he advises Bill, who advises Mary. It is a bit more difficult to derive Alan since some of the knowledge should be employed. Specifically, we should consider that Alan advises Peter that supervises George (who is a PhDStudent and thus a Researcher), which means that Peter advises George. More complex deductions lead to the conclusion that Sofia and Ema are also answers of the query.</figDesc><table><row><cell>Researcher, Professor ResDirector,</cell></row><row><cell>SeniorResearcher ResCoordinator, ResCoordinator ∃advise.Researcher, ResDirector ∃advise.SeniorResearcher, supervise advise}</cell></row></table><note>A = {Mary : Researcher, Bill : ResCoordinator, John : ResDirector Alan : Researcher, George : PhDSudent, Peter : SeniorResearcher, Sofia : Professor, Ema : Professor, (Bill, Mary) : advise, (John, Bill) : advise, (Peter, George) : supervise, (Alan, Peter) : advise}A represents a materialisation of a relational database or a triple store. Let q(x) ← advise(x, y) ∧ advise(y, z).</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 .</head><label>1</label><figDesc>Translation of DL-LiteR axioms into clauses of Ξ(O). (Note: A different function f must be used for each axiom involving an existential quantifier.)</figDesc><table><row><cell>Axiom</cell><cell>Clause</cell><cell>Type</cell><cell>Axiom</cell><cell>Clause</cell></row><row><cell>A B P R</cell><cell>B(x) ← A(x) S(x, y) ← P (x, y)</cell><cell>(1)</cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 2 .</head><label>2</label><figDesc>Results of ProgRes in the data of Example 1</figDesc><table><row><cell>Stride Query rewritings</cell><cell>Similarity Answers</cell></row><row><cell>1</cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 3 .</head><label>3</label><figDesc>Number of rewritings, number of inferences and query rewriting time for ProgRes and Requiem.</figDesc><table><row><cell cols="3">ontology/ no. of rewritings</cell><cell cols="2">no. of inferences</cell><cell cols="3">rewriting time (ms)</cell></row><row><cell cols="3">query ProgRes Requiem</cell><cell>ProgRes</cell><cell>Requiem</cell><cell>ProgRes</cell><cell cols="2">Requiem</cell></row><row><cell>A AQ4</cell><cell>320</cell><cell>224</cell><cell cols="2">532 (507/25) 540 (507/25)</cell><cell>188</cell><cell>78</cell><cell>(156)</cell></row><row><cell>A AQ5</cell><cell>624</cell><cell>624</cell><cell cols="2">1326 (1324/2) 1017 (811/206)</cell><cell>750</cell><cell cols="2">484 (625)</cell></row><row><cell>S SQ5</cell><cell>128</cell><cell>8</cell><cell cols="2">892 (891/1) 1457 (1433/24)</cell><cell>156</cell><cell cols="2">5250 (21062)</cell></row><row><cell>P5 PQ5</cell><cell>16</cell><cell>16</cell><cell cols="2">25 (5/20) 11350 (0/11350)</cell><cell>31</cell><cell cols="2">657 (687)</cell></row><row><cell>P5S PQ5</cell><cell>76</cell><cell>76</cell><cell cols="2">95 (75/20) 11424 (74/11350)</cell><cell>47</cell><cell cols="2">17015 (16860)</cell></row></table></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgements</head><p>This work has been funded by ECP 2008 DILI 518002 EUscreen (Best Practice Networks).</p></div>
			</div>

			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>labels. In particular, the queries computed by the k-th recursive application of sp-Resolve differ in k labels w.r.t the queries Q sp in of the first application. Finally, sr-Rewrite uses sr-Resolve to compute the rewritings that have a single structural change w.r.t. Q sr in .</p><p>Data: Set of annotated conjunctive queries Q sp in , ontology O Result: Set of annotated query rewritings Q := {}; foreach query q in Q sp in do foreach s in Vq ∪ Eq that is not annotated do</p><p>Algorithm 2: Procedure sr-Rewrite ProgResAns, after evaluating first the user query, enters an (outer) loop, part of which is the (inner) loop [sp-Rewrite | Eval]. The outer loop is executed (let's say m times) until sr-Rewrite can make no further structural change to the query. The j-th time the outer loop is executed, the inner loop is executed n j times, where n j is the number of nodes and edges of the queries in Q sp in j (all have the structure and m ≤ n 1 ) and Q sp in j is the input of the first application of sp-Rewrite at the j-th iteration of the outer loop. Q sp in j contains only the user query when j = 1, otherwise it is equal to res(sp-Rewrite) obtained at iteration j − 1. The input Q sr in j of sr-Rewrite contains the rewritings that are computed by the execution of sp-Rewrite. Before entering its main body, sr-Rewrite calls procedure filter on Q sr in j , which keeps only the rewritings in which sp-Rewrite</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Linking data to ontologies</title>
		<author>
			<persName><forename type="first">A</forename><surname>Poggi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Lembo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>De Giacomo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lenzerini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Rosati</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. on Data Semantics</title>
		<imprint>
			<biblScope unit="page" from="133" to="173" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><forename type="first">F</forename><surname>Baader</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Mcguinness</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Nardi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">F</forename><surname>Patel-Schneider</surname></persName>
		</author>
		<title level="m">editors. The Description Logic Handbook: Theory, Implementation, and Applications</title>
				<imprint>
			<publisher>Cambridge University Press</publisher>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">OWL 2 web ontology language profiles</title>
	</analytic>
	<monogr>
		<title level="j">W3C Recommendation</title>
		<editor>B. Motik et al</editor>
		<imprint>
			<biblScope unit="volume">27</biblScope>
			<date type="published" when="2009-10">October (2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">The DL-Lite family and relations</title>
		<author>
			<persName><forename type="first">A</forename><surname>Artale</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Kontchakov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zakharyaschev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Artificial Intelligence Research</title>
		<imprint>
			<biblScope unit="page" from="36" to="69" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m">Handbook of Automated Reasoning</title>
				<editor>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Robinson</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Voronkov</surname></persName>
		</editor>
		<imprint>
			<publisher>Elsevier and MIT Press</publisher>
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
	<note>in 2 volumes</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Conjunctive query answering for the description logic SHIQ</title>
		<author>
			<persName><forename type="first">B</forename><surname>Glimm</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Lutz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Sattler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. of Artificial Intelligence Research</title>
		<imprint>
			<biblScope unit="volume">31</biblScope>
			<biblScope unit="page" from="157" to="204" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Efficient query answering for OWL 2</title>
		<author>
			<persName><forename type="first">H</forename><surname>Perez-Urbina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Motik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">8th International Semantic Web Conference (ISWC 2009)</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">5823</biblScope>
			<biblScope unit="page" from="489" to="504" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">An Evaluation of Knowledge Base Systems for Large OWL Datasets</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Guo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Pan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Heflin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Third International Semantic Web Conference</title>
				<meeting><address><addrLine>Hiroshima, Japan</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">3298</biblScope>
			<biblScope unit="page" from="274" to="288" />
		</imprint>
	</monogr>
	<note>LNCS</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">How Incomplete is your Semantic Web Reasoner?</title>
		<author>
			<persName><forename type="first">G</forename><surname>Stoilos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">Cuenca</forename><surname>Grau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">20th Nat. Conf. on Artificial Intelligence (AAAI)</title>
				<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Improving Query Answering over DL-Lite Ontologies</title>
		<author>
			<persName><forename type="first">Riccardo</forename><surname>Rosati</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alessandro</forename><surname>Almatelli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Twelfth International Conference on Principles of Knowledge Representation and Reasoning</title>
				<meeting><address><addrLine>KR</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2010">2010. 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Graph matching: theoretical foundations, algorithms, and applications</title>
		<author>
			<persName><forename type="first">H</forename><surname>Bunke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Vision Interface 2000</title>
				<meeting><address><addrLine>Montreal/Canada</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="82" to="88" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Measuring the structural similarity of web-based documents: a novel approach</title>
		<author>
			<persName><forename type="first">M</forename><surname>Dehmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Emmert-Streib</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Mehler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kilian</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Comp. Intell</title>
		<imprint>
			<biblScope unit="page" from="1" to="7" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<author>
			<persName><forename type="first">J</forename><surname>Euzenat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Shvaiko</surname></persName>
		</author>
		<title level="m">Ontology Matching</title>
				<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">A Survey of Top-k Query Processing Techniques in Relational Database Systems</title>
		<author>
			<persName><forename type="first">I</forename><surname>Ilyas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Beskales</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Soliman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Computing Surveys</title>
		<imprint>
			<biblScope unit="volume">40</biblScope>
			<biblScope unit="issue">4</biblScope>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Top-k Query Processing in Uncertain Databases</title>
		<author>
			<persName><forename type="first">M</forename><surname>Soliman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Ilyas</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ICDE</title>
		<imprint>
			<biblScope unit="page" from="896" to="905" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Top-k retrieval in description logic programs under vagueness for the Semantic Web</title>
		<author>
			<persName><forename type="first">T</forename><surname>Lukasiewicz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Straccia</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. SUM-2007</title>
				<meeting>SUM-2007</meeting>
		<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="16" to="30" />
		</imprint>
	</monogr>
</biblStruct>

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