<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Extending the Combined Approach Beyond Lightweight Description Logics?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Cristina Feier</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Carral</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giorgio Stefanoni</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bernardo Cuenca Grau</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ian Horrocks</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, University of Oxford</institution>
          ,
          <addr-line>Oxford</addr-line>
          <country country="UK">UK</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Computer Science, Wright State University</institution>
          ,
          <addr-line>Dayton</addr-line>
          <country country="US">US</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Combined approaches have become a successful technique for CQ answering over ontologies. Existing algorithms, however, are restricted to the logics underpinning the OWL 2 profiles. Our goal is to make combined approaches applicable to a wider range of ontologies. We focus on RSA: a class of Horn ontologies that extends the profiles while ensuring tractability of standard reasoning. We show that CQ answering over RSA ontologies without role composition is feasible in NP. Our reasoning procedure generalises the combined approach for E LHO and DL-LiteR using an encoding of CQ answering into fact entailment w.r.t. a Logic Program with function symbols and stratified negation. Our results are significant in practice since many out-of-profile Horn ontologies are RSA.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Answering conjunctive queries (CQs) over ontology-enriched datasets is a core
reasoning task for many applications. CQ answering is computationally expensive: for
expressive description logics it is at least doubly exponential in combined complexity
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], and it remains single exponential even when restricted to Horn ontologies [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        Recently, there has been a growing interest in ontology languages with favourable
computational properties, such as E L [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], DL-Lite [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] or the rule language datalog,
which provide the foundation for the EL, QL and RL profiles of OWL 2, resp. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
Standard reasoning tasks (e.g., satisfiability checking) are tractable for all three profiles.
CQ answering is NP-complete (in combined complexity) for the QL and RL profiles,
and PSPACE-complete for OWL 2 EL [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]; PSPACE-hardness of CQ answering in EL
is due to role composition axioms and the complexity further drops to NP if these
are restricted to express role transitivity and reflexivity [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Furthermore, in all these
cases CQ answering is tractable in data complexity. Such complexity bounds are rather
benign, and this has spurred the development of a wide range of practical algorithms.
      </p>
      <p>
        A technique that is receiving increasing attention is the combined approach [
        <xref ref-type="bibr" rid="ref11 ref12 ref17 ref7 ref8">12, 7,
8, 11, 17</xref>
        ]. Data is augmented in a query-independent way to build (in polynomial time)
a canonical interpretation that might not be a model, but that can be exploited for CQ
answering in two alternative ways: either the query is rewritten and then evaluated against
the interpretation [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or the query is first evaluated over the interpretation and unsound
answers are discarded by means of a filtration process [
        <xref ref-type="bibr" rid="ref11 ref17">17, 11</xref>
        ]. With the exception of
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] who focus on decidable classes of existential rules, algorithms based on
the combined approach are restricted to (fragments of) the OWL 2 profiles.
      </p>
      <p>Our goal is to push the boundaries of the logics underpinning the OWL 2 profiles
while retaining their nice complexity for CQ answering. Furthermore, we aim to devise
algorithms that seamlessly extend the combined approach and which can be applied to
a wide range of ontologies.</p>
      <p>
        Recently, a class of Horn ontologies, called role safety acyclic (RSA), has been
proposed [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]. RSA extends the profiles while ensuring tractability of standard reasoning
tasks: it allows the use of all language constructs in the profiles, while establishing
polynomially checkable conditions that preclude their harmful interaction. Roles in an RSA
ontology are partitioned into safe and unsafe depending on the way they are used, where
the latter ones are involved in potentially harmful interactions which could increase
complexity; an acyclicity condition is imposed on unsafe roles to ensure tractability. A
recent evaluation revealed that over 60% of out-of-profile Horn ontologies are RSA [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        In this paper, we investigate CQ answering over RSA ontologies and show its
feasibility in NP. This result has significant implications in practice as it shows that CQ
answering over a wide range of out-of-profile ontologies is no harder (in combined
complexity) than over a database. Our procedure generalises the combined approach
for E LHO [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and DL-LiteR [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] in a seamless way by means of a declarative
encoding of CQ answering into fact entailment w.r.t. a logic program (LP) with function
symbols and stratified negation. The least Herbrand model of this program can be
computed in time polynomial in the ontology size and exponential in query size. We have
implemented our encoding using the LP engine DLV [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and tested its feasibility with
encouraging results. Proofs can be found in a TR (http://tinyurl.com/pqmxa5u).
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>Logic Programs We use the standard notions of constants, terms and atoms in
firstorder logic (FO). A literal is an atom a or its negation not a. A rule r is an expression
of the form '(~x; ~z) ! (~x) with '(~x; ~z) a conjunction of literals with variables ~x [ ~z,
and (~x) a non-empty conjunction of atoms over ~x.3 We denote with vars(r) the set
~x [ ~z. With head(r) we denote the set of atoms in , body+(r) is the set of atoms in ',
and body (r) is the set of atoms which occur negated in r. Rule r is safe iff vars(r) all
occur in body+(r). We consider only safe rules. Rule r is definite if body (r) is empty
and it is datalog if it is definite and function-free. A fact is a rule with empty body and
head consisting of a single function-free atom.</p>
      <p>A program P is a finite set of rules. Let preds(X) denote the predicates in X, with
X a (set of) atoms or a program. A stratification of P is a function str : preds(P) !
f1; : : : ; kg, where k jpreds(P)j, s.t. for every r 2 P and P 2 preds(head(r)) it
holds that: (i) for every Q 2 preds(body+(r)): str(Q) str(P ), and (ii) for every
Q 2 preds(body (r)): str(Q) &lt; str(P ). The stratification partition of P induced</p>
      <sec id="sec-2-1">
        <title>3 We assume rule heads non-empty, and allow multiple atoms.</title>
        <p>by str is the sequence (P1; : : : ; Pk), with Pi consisting of all rules r 2 P such that
maxa2head(r)(str(pred(a))) = i. The programs Pi are the strata of P . A program is
stratified if it admits a stratification. All definite programs are stratified.</p>
        <p>Stratified programs have a Least Herbrand Model (LHM), which is constructed
using the immediate consequence operator TP . Let U and B be the Herbrand Universe
and Base of P, and let S B. Then, TP (S) consists of all facts in head(r) with r 2 P
and a substitution from vars(r) to U satisfying body+(r) S and body (r) \
TS !=(S;).=ThSe1powers of TP are as follows: TP0 (S) = S, T Pi+1(S) = TP (TPn(S)), and</p>
        <p>P i=0 TPn(S). Let str be a stratification of P, and let (P1; : : : ; Pk) be its
stratification partition. Also, let U1 = TP!1 (;) and for each 1 i k let Ui+1 = TP!i+1 (Ui).
Then, the LHM of P is Uk and is denoted M [P]. A program P entails a positive
existential sentence (P j= ) if M [P] seen as a FO structure satisfies .</p>
        <p>We use LPs to encode FO theories. For this, we introduce rules axiomatising the
built-in semantics of the equality ( ) and truth (&gt;) predicates. For a finite signature ,
we denote with F &gt; the smallest set with a rule p(x1; x2; : : : ; xn) ! &gt;(x1) ^ &gt;(x2) ^
: : : ^ &gt;(xn) for each n-ary predicate p in , and with F the usual axiomatisation of
as a congruence over . For an LP P, we denote with P ;&gt; the extension of P to
P [ F &gt; [ F with the signature of P.</p>
        <p>
          Ontologies and Queries We define Horn-ALCHOIQ and specify its semantics via
translation to definite programs. W.l.o.g. we consider a normal form close to that in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
Let NC, NR and NI be countable pairwise disjoint sets of concept names, role names
and individuals. We assume f&gt;; ?g NC. A role is an element of NR[fR jR 2 NRg,
where the roles in the latter set are called inverse roles. The function Inv( ) is defined
as follows, where R 2 NR: Inv(R) = R and Inv(R ) = R. An RBox R is a finite set
of axioms (R2) in Table 1, where R and S are roles and vR is the minimal
reflexivetransitive relation over roles s.t. Inv(R) vR Inv(S) and R vR S hold if R v S 2 R.
A TBox T is a finite set of axioms (T1)-(T5) where A; B 2 NC and R is a role.4 An
ABox A is a finite set of axioms of the form (A1) and (A2), with A 2 NC and R 2 NR.
An ontology is a finite set of axioms O = R [ T [ A.
        </p>
        <p>OWL 2 specifies the EL, QL, and RL profiles, which are all fragments of
HornALCHOIQ with the exception of property chain axioms and transitivity, which we do
not consider here. An ontology is: (i) EL if it does not contain inverse roles or axioms
(T4); (ii) RL if it does not contain axioms (T5); and (iii) QL if it does not contain axioms
(T2) or (T4), each axiom (T1) satisfies n = 1, and each axiom (T3) satisfies A = &gt;.</p>
        <p>A conjunctive query (CQ) Q is a formula 9~y: (~x; ~y) with (~x; ~y) a conjunction
of function-free atoms over ~x [ ~y, where ~x are the answer variables. We denote with
terms(Q) the set of terms in Q. Queries with no answer variables are Boolean (BCQs)
and for convenience are written as a set of atoms.</p>
        <p>We define the semantics by a mapping into definite rules as in Table 1: (O) =
f ( ) j 2 Og 5. An ontology O is satisfiable if (O) ;&gt; 6j= 9y:?(y). A tuple of
constants ~c is an answer to Q if O is unsatisfiable, or (O) ;&gt; j= 9~y: (~c; ~y). The set
of answers is written cert(Q; O). This semantics is equivalent to the usual one.
4 Axioms A v n R:B can be simulated by (T1) and (T5).
5 By abuse of notation we say that R 2 O whenever R occurs in O.</p>
        <p>Axioms</p>
        <p>R</p>
        <p>R v S
(R1)
(R2)
(T1) dn</p>
        <p>i=1 Ai v B
(T2) A v fag
(T3) 9R:A v B
(T4) A v 1R:B
(T5) A v 9R:B
(A1) A(a)
(A2) R(a; b)</p>
        <p>Definite LP rules ( )
R(x; y) ! R (y; x); R (y; x) ! R(x; y)</p>
        <p>R(x; y) ! S(x; y)
Vin=1 Ai(x) ! B(x)</p>
        <p>A(x) ! x a</p>
        <p>R(x; y) ^ A(y) ! B(x)
A(x) ^ R(x; y) ^ B(y) ^ R(x; z) ^ B(z) ! y</p>
        <p>
          A(x) ! R(x; fRA;B (x)) ^ B(fRA;B (x))
! A(a)
! R(a; b)
CQ answering is EXPTIME-complete for Horn-ALCHOIQ ontologies [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], and the
EXPTIME lower bound holds already for satisfiability checking. Intractability is due to
and-branching: owing to the interaction between axioms in Table 1 of type (T5) with
either axioms (T3) and (R1), or axioms (T4) an ontology may only be satisfied by large
(possibly infinite) models which cannot be succinctly represented.
        </p>
        <p>
          RSA is a class of ontologies where all axioms in Table 1 are allowed, but their
interaction is restricted s.t. model size can be polynomially bounded [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. We recapitulate
RSA ontologies and their properties; let O be an arbitrary Horn-ALCHOIQ ontology.
        </p>
        <p>Roles in O are divided into safe and unsafe. The intuition is that unsafe roles may
participate in harmful interactions.</p>
        <p>Definition 1. A role R is unsafe if it occurs in an axiom of the form A v 9R:B, and
there is a role S s. t. either: 1. R vR Inv(S) and S occurs in an axiom of the form
9S:A v B with A 6= &gt;, or 2. R vR S or R vR Inv(S) and S occurs in an axiom of
the form A v 1S:B. A role R in O is safe, if it is not unsafe.</p>
        <p>It follows from Definition 1 that RL, QL, and EL ontologies contain only safe roles.
Example 1. Let OEx be the (out-of-profile) ontology with the following axioms:</p>
        <p>A(a)
A v D
(1)
(2)</p>
        <p>A v 9S :C
9S:A v D
(3)
(4)</p>
        <p>D v 9R:B
B v 9S:D
(5)
(6)</p>
        <p>R v T
S v T
(7)
(8)</p>
        <p>Roles R, S, T , and T are safe; however, S is unsafe as it occurs in an axiom
(T5) while S occurs in an axiom (T3). We will OEx use as a running example.
The distinction between safe and unsafe roles makes it possible to strengthen the
translation in Table 1 while preserving satisfiability and entailment of unary facts. The
translation of axioms (T5) with R safe can be realised by replacing the functional term
fRA;B (x) with a Skolem constant vRA;B unique to A, R and B. The modified
transformation generally leads to a smaller LHM: if all roles are safe then O is mapped into a
Datalog program whose LHM is polynomial in the size of O.</p>
        <p>Definition 2. Let vRA;B be a fresh constant for each concept A, B, and each safe role R
in O. Then safe maps each 2 O to (i) A(x) ! R(x; vRA;B) ^ B(vRA;B) if is of type
(T5) with R safe;(ii) ( ), otherwise. Let P = f safe( ) j 2 Og and PO = P ;&gt;.</p>
        <sec id="sec-2-1-1">
          <title>Example 2. Mapping safe differs from</title>
          <p>D(x) ! R(x; vRD;B) ^ B(vRD;B).</p>
          <p>on ax. (5) and (6). For instance, (5) yields
Theorem 1. [4, Theorem 2] Ontology O is satisfiable iff PO 6j= 9y:?(y). If O is
satisfiable, then O j= A(c) iff A(c) 2 M [PO] for each unary predicate A and individual c
in O.</p>
          <p>If O has unsafe roles the model M [PO] might be infinite. We next define a Datalog
program PRSA by introducing Skolem constants for all axioms (T5) in O. PRSA
introduces also a predicate PE which ‘tracks’ all binary facts generated by the application
of Skolemised rules over unsafe roles. A unary predicate U is initialised with the
constants associated to unsafe roles and a rule U(x) ^ PE(x; y) ^ U(y) ! E(x; y) stores
the PE-facts originating from unsafe roles using a predicate E. Then, M [PO] is of
polynomial size when the graph induced by the extension of E is an oriented forest (i.e., a
DAG whose underlying undirected graph is a forest). When this condition is fulfilled
together with some additional conditions which preclude harmful interactions between
equality-generating axioms and inverse roles, we say that O is RSA.</p>
          <p>Definition 3. Let PE and E be fresh binary predicates, U be a fresh unary predicate,
and uAR;B be a fresh constant for each concept A; B and each role R in O. Function</p>
          <p>RSA maps each (i) 2 O to A(x) ! R(x; uAR;B) ^ B(uAR;B) ^ PE(x; uAR;B), if is of
type (T5), and to (ii) ( ), otherwise. The program PRSA consists of RSA( ), for each
2 O, a rule U(x) ^ PE(x; y) ^ U(y) ! E(x; y), and a fact U(uAR;B) for each uAR;B
with R unsafe.</p>
          <p>Let MRSA be the LHM of PRSA ;&gt;. Then, GO is the digraph with an edge (c; d)
for each E(c; d) in MRSA. Ontology O is equality-safe if: 1. for each pair of atoms
w t (with w and t distinct) and R(t; uAR;B) in MRSA and each role S s.t. R v
Inv(S), it holds that S does not occur in an axiom (T4); and 2. for each pair of atoms
R(a; uAR;B); S(uAR;B; a) in MRSA, with a 2 NI, there does not exist a role T such that
both R vR T and S vR Inv(T ) hold.</p>
          <p>We say that O is RSA if it is equality-safe and GO is an oriented forest.</p>
          <p>The fact that GO is a DAG ensures that the LHM M [PO] is finite, whereas the lack
of ‘diamond-shaped’ subgraphs in GO guarantees polynomiality of M [PO]. The safety
condition on will ensure that RSA ontologies enjoy a special form of forest-model
property that we exploit for CQ answering. Every ontology in QL (which is
equalityfree), RL (where PRSA has no Skolem constants) and EL (no inverse roles) is RSA.
Theorem 2. [4, Theorem 3] If O is RSA, then jM [PO]j is polynomial in jOj.</p>
          <p>Tractability of standard reasoning for RSA ontologies follows from Theorems 1, 2.
It can be checked that OEx is RSA.
a)</p>
          <p>A; D a</p>
          <p>R; T
S</p>
          <p>R; T
f(a) C; D
vRD;B B
S; T R; T
B
vS;D D
b)</p>
          <p>A; D a</p>
          <p>vRD;B B
(S )f T b</p>
          <p>Rf</p>
          <p>T b TSff T b Rf
f(a) C; D</p>
          <p>B
vS;D D
We next present our combined approach with filtration to CQ answering over RSA
ontologies, which generalises existing techniques for DL-LiteR and E LHO.</p>
          <p>
            In Section 4.1 we take the LHM for RSA ontologies given in Section 3 as a starting
point and extend it to a more convenient canonical model over an extended signature. In
order to deal with the presence of inverse roles in RSA ontologies, the extended model
captures the “directionality” of binary atoms; this will allow us to subsequently extend
the filtration approach from [
            <xref ref-type="bibr" rid="ref17">17</xref>
            ] in a seamless way. The canonical model is captured
declaratively as the LHM of an LP program over the extended signature.
          </p>
          <p>
            As usual in combined approaches, this model is not universal and the evaluation of
CQs may lead to spurious, i.e. unsound answers. In Section 4.2, we specify our filtration
approach for RSA ontologies as the LHM of a stratified program. In the following, we
fix an arbitrary RSA ontology O = R [ T [ A and an input CQ Q, which we use to
parameterise all our technical results.
The LHM M [PO] in Sec. 3 is a model of O that preserves entailment of unary facts.
It generalises the canonical model in [
            <xref ref-type="bibr" rid="ref17">17</xref>
            ], which is specified as the LHM of a datalog
program obtained by Skolemising all axioms (T5) into constants and hence coincides
with M [PO] when O is EL. However, RSA ontologies allow for unsafe roles and hence
M [PO] may contain also functional terms.
          </p>
          <p>A main source for spurious matches when evaluating Q over the canonical model
of an EL ontology is the presence of ‘forks’ — confluent chains of binary atoms —
in the query which map to ‘forks’ in the model over Skolem constants. This is also
problematical in our setting since RSA ontologies have the forest-model property.
(a; vRD;B) and (vSB;D; vRD;B) in M [POEx ], which form a fork over vRD;B.
Example 3. Fig. 1 a) depicts the LHM M [POEx ] of OEx (the function fS;C is
abbreviated with f ). We see models as digraphs where the direction of edges reflects the
satisfaction of axioms (T5). Consider Q1 = fA(y1); R(y1; y2); R(y3; y2)g.
Substitution (y1 7! a; y2 7! vRD;B; y3 7! vSB;D) is a spurious match of Q1 as it relies on edges</p>
          <p>In EL, only queries which contain forks can be mapped to forks in the model. This
is no longer the case for RSA ontologies, where forks in the model can lead to spurious
answers even for linearly-shaped queries due to the presence of inverse roles.</p>
          <p>Rf
y
t</p>
          <p>Sf
s</p>
          <p>Rf
y
t</p>
          <p>s
Sb</p>
          <p>Rb
y
t</p>
          <p>Sb
R(s; y) ^ S(t; y)
a) forward/forward</p>
          <p>R(s; y) ^ S(y; t)
b) forward/backward</p>
          <p>R(y; s) ^ S(y; t)
c) backward/backward</p>
          <p>To identify such situations, we compute a canonical model over an extended
signature that contains fresh roles Rf and Rb for each role R. Annotations f (forward) and
b (backwards) are intended to reflect the directionality of binary atoms in the model,
where binary atoms created to satisfy an axiom (T5) are annotated with f . To realise
this intuition declaratively, we modify the rules in PO for axioms (T5) as follows. If R
is safe, then we introduce the rule A(x) ! Rf (x; vRA;B) ^ B(vRA;B); if it is unsafe, we
introduce rule A(x) ! Rf (x; fRA;B(x)) ^ B(fRA;B) instead.</p>
          <p>Superroles inherit the direction of the subrole, while roles and their inverses have
opposite directions. To reflect this we include the following rules where 2 ff; bg:
(i) R (x; y) ! S (x; y) for each axiom R v S in O; (ii) Rf (x; y) ! Inv(R)b(y; x)
and Rb(x; y) ! Inv(R)f (y; x) for each role R; and (iii) R (x; y) ! R(x; y) for
each role R. Rules (ii) are included only if O has inverse roles, and rules (iii) ‘copy’
annotated atoms to atoms over the original predicate. Fig. 1 b) depicts the annotated
model for POEx : solid (resp. dotted) lines represent ‘forward’ (resp. ‘backward’) atoms.</p>
          <p>Fig. 2 depicts the ways in which query matches may spuriously rely on a fork in
an annotated model. Nodes represent the images in the model of the query terms; solid
lines indicate the annotated atoms responsible for the match; and dashed lines depict
the underpinning fork. The images of s and t must not be equal; additionally, y cannot
be mapped to (a term identified to) a constant in O. For instance, the match in Ex. 4 is
spurious as it corresponds to pattern (b) in Fig. 2. Unfortunately, the annotated model
can present ambiguity: it is possible for both atoms Rf (s; t) and Rb(s; t) to hold.
Example 5. Consider Q2 from Ex. 4. (y1 7! a; y2 7! vRD;B; y3 7! vSB;D) is also a
match, where both T f (vRD;B; vSB;D) and T b(vRD;B; vSB;D) hold in the annotated model.</p>
          <p>
            Such ambiguity is problematic for the subsequent filtration step. To disambiguate,
we use a technique similar to the one in [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ] for DL-LiteR, where the idea is to unfold
certain cycles of length one and two in the canonical model. We unfold self-loops to
cycles of length three while cycles of length two are unfolded to cycles of length four.
Example 6. Fig. 3 a) shows the model expansion for OEx. Ambiguities are resolved.
Fig. 3 b) shows the unfolding of a generic self-loop over a safe role R for which T
exists s.t. both R vR T and R vR Inv(T ) hold.
          </p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>We now specify a program that yields the required model.</title>
        <p>a) A; D a
f (a) C; D</p>
        <p>Rf</p>
        <p>T b Sf ; T f
vRD;;B0 B
vSB;;D0 D</p>
        <p>T b
Rf
Definition 4. Let con (R) be the set of roles S s.t. R vR T and S vR Inv(T ) for
some T . Let be a strict total order on triples (A; R; B), with R safe and A and B
concept names B in O. For each (A; R; B), let:
– vRA;;B0 , vRA;;B1 , and vRA;;B2 be fresh constants;</p>
        <p>(D; S; C); vSD;;C1 if (D; S; C)
– self(A; R; B) be the smallest set containing vRA;;B0 and vRA;;B1 if R 2 con (R);
– cycle(A; R; B) be the smallest set containing, for each S 2 con (R), vSD;;C0 if
(A; R; B)
(A; R; B); fSD;C (vRA;;B0) and every
fTF;E (vRA;;B0 ) s. t. uSD;C uTF;E is in MRSA, if S is unsafe.</p>
        <p>– unfold(A; R; B) = self(A; R; B)[ cycle(A; R; B).</p>
        <p>Let Rf and Rb be fresh binary predicates for each role R in O, NI be a fresh unary
predicate, and notIn be a built-in predicate which holds when the first argument is an
element of second argument. Let P be the smallest program with a rule ! NI(a) for
each constant a and all rules in Fig. 4 and EO = P ;&gt;.
symbols/axioms in O
ax. not of type (T5)</p>
        <p>R v S, 2 ff; bg</p>
        <sec id="sec-2-2-1">
          <title>R role, 2 ff; bg</title>
          <p>ax. (T5), R unsafe
ax. (T5), R safe</p>
          <p>Logic Programming Rules</p>
          <p>( )
R (x; y) ! S (x; y)</p>
          <p>R (x; y) ! R(x; y)
Rf (x; y) ! Inv(R)b(y; x)</p>
          <p>Rb(x; y) ! Inv(R)f (y; x)</p>
          <p>A(x) ! Rf (x; fRA;B(x)) ^ B(fRA;B(x))
A(x) ^ notIn(x; unfold(A; R; B)) ! Rf (x; vRA;;B0) ^ B(vRA;;B0)</p>
          <p>if R 2 con (R), for every i = 0; 1:
A(vRA;;Bi) ! Rf (vRA;;Bi; vRA;;Bi+1) ^ B(vRA;;Bi+1)</p>
          <p>for every x 2 cycle(A; R; B):</p>
          <p>A(x) ! Rf (x; vRA;;B1) ^ B(vRA;;B1)</p>
          <p>Fig. 4: Rules in the program EO</p>
          <p>The set con (R) contains roles that may cause ambiguity in conjunction with R.
The ordering determines how cycles are unfolded using auxiliary constants. Each
axiom A v 9R:B with R safe is Skolemised by default using vRA;;B0 , except when the
axiom applies to a term in unfold(A; R; B) where we use vRA;;B1 or vRA;;B2 instead.
Theorem 3. The following holds: (i) M [EO] is polynomial in jOj (ii) O is satisfiable
iff EO 6j= 9y:?(y) (iii) if O is satisfiable, O j= A(c) iff A(c) 2 M [EO] and (iv) there
are no terms s; t and role R s.t. EO j= Rf (s; t) ^ Rb(s; t).
(1) (~x; ~y) ! QM(~x; ~y)
(2) ! named(a) for each constant a in O
(3a) QM(~x; ~y); not NI(yi) ! id(~x; ~y; i; i), for each 1 i j~yj
(3b) id(~x; ~y; u; v) ! id(~x; ~y; v; u)
(3c) id(~x; ~y; u; v) ^ id(~x; ~y; v; w) ! id(~x; ~y; u; w)
for all R(s; yi), S(t; yj ) in Q with yi; yj 2 ~y
(4a) Rf (s; yi) ^ Sf (t; yj ) ^ id(~x; ~y; i; j) ^ not s t ! fk (~x; ~y)
for all R(s; yi), S(yj ; t) in Q with yi; yj 2 ~y:
(4b) Rf (s; yi) ^ Sb(yj ; t) ^ id(~x; ~y; i; j) ^ not s t ! fk (~x; ~y)
for all R(yi; s), S(yj ; t) in Q with yi; yj 2 ~y:
(4c) Rb(yi; s) ^ Sb(yj ; t) ^ id(~x; ~y; i; j) ^ not s t ! fk (~x; ~y)
for all R(yi; yj ), S(yk; yl) in Q with yi; yj ; yk; yl 2 ~y:
(5a) Rf (yi; yj ) ^ Sf (yk; yl) ^ id(~x; ~y; j; l) ^ yi yk ^ not NI(yi) ! id(~x; ~y; i; k)
(5b) Rf (yi; yj ) ^ Sb(yk; yl) ^ id(~x; ~y; j; k) ^ yi yl ^ not NI(yi) ! id(~x; ~y; i; l)
(5c) Rb(yi; yj ) ^ Sb(yl; yk) ^ id(~x; ~y; i; l) ^ yj yk ^ not NI(yj ) ! id(~x; ~y; j; k)
for each R(yi; yj ) in Q with yi; yj 2 ~y, and 2 ff; bg:
(6) R (yi; yj ) ^ id(~x; ~y; i; v) ^ id(~x; ~y; j; w) ! AQ (~x; ~y; v; w)
(7a) AQ (~x; ~y; u; v) ! T Q (~x; ~y; u; v), for each 2 ff; bg
(7b) AQ (~x; ~y; u; v) ^ T Q (~x; ~y; v; w) ! T Q (~x; ~y; u; w), for each 2 ff; bg
(8a) QM(~x; ~y) ^ not named(x) ! sp(~x; ~y), for each x 2 ~x
(8b) fk (~x; ~y) ! sp(~x; ~y)
(8c) T Q (~x; ~y; v; v) ! sp(~x; ~y), for each 2 ff; bg
(9) QM(~x; ~y) ^ not sp(~x; ~y) ! Ans(~x)
We now define a program PQ that can be used to eliminate all spurious matches of Q
over the annotated model of O. The rules of the program are summarised in Table 2. We
will refer to all terms in the model that are not equal to a constant in O as anonymous.</p>
          <p>Matches where an answer variable is not mapped to a constant in O are spurious.
We introduce a predicate named and populate it with such constants (rules (2)); then,
we flag answers as spurious using a rule with negation (rules (8a)).</p>
          <p>To detect forks we introduce a predicate fk , whose definition in datalog encodes the
patterns in Fig. 2 (rules (4)). If terms s and t in Fig. 2 are existential variables mapping
to the same anonymous term, further forks might be recursively induced.
Example 7. Let Q3 = fA(y1); R(y1; y2); T (y2; y3); C(y4); R(y4; y5); S(y5; y3)g be
a BCQ over OEx, with (y1 7! a; y2 7! vRD;;B0 ; y3 7! vSB;;D0 ; y4 7! f (a); y5 7! vRD;;B0 )
being its only match over the model in Fig. 3a). The identity of y2, y5 induces a fork on
the match of R(y1; y2) and R(y4; y5).</p>
          <p>We track identities in the model relative to a match using a fresh predicate id. It is
initialised as the minimal congruence relation over the positions of the existential variables
in the query which are mapped to anonymous terms (rules (3)). Identity is recursively
propagated (rules (5)). Matches involving forks are marked as spurious by rule (8b).</p>
          <p>Spurious matches can also be caused by cycles in the model and query
satisfying certain requirements. First, the positions of existential variables of the query must
be cyclic when considering also the id relation. Second, the match must involve only
anonymous terms. Finally, all binary atoms must have the same directionality.
Example 8. Consider the following BCQs over OEx: Q4 = fS(y1; y2); R(y2; y3); S(y3;
y4); R(y4; y1)g; Q5 = fT (y1; y2); S(y2; y3); R(y3; y1)g; and Q6 = fS(y1; y2); R(y2;
y3); S(y3; y4); R(y4; y5)g: Then, (y1 7! vRD;;B0 ; y2 7! vSB;;D0 ; y3 7! vRD;;B1 ; y4 7! vSB;;D1 ) is
a match of Q4 inducing a cycle: all binary atoms are mapped ‘forward’ and the cycle
involves only anonymous terms. In contrast, match (y1 7! vRD;;B0 ; y2 7! f (a); y3 7! a)
over Q5 does not satisfy the requirements as it involves constant a. Note that Q4 and Q5
are cyclic. Q6 is not cyclic; thus, although the match (y1 7! vRD;;B0 ; y2 7! vSB;;D0 ; y3 7!
vRD;;B1 ; y4 7! vSB;;D1 ; y5 7! vRD;;B0 ) involves a cycle in the model, it is not spurious.</p>
          <p>Such cycles are recognised by rules (6) and (7). Rule (6) defines potential individual
arcs in the cycle with their directionality using fresh predicates AQ with 2 ff; bg.
Rules (7) detect the cycles recursively using predicates T Q . Matches involving cycles
are marked as spurious by rules (8c). All correct answers are collected by rule (9) using
predicate Ans. We next define program PQ and its extension PO;Q with EO in Def. 4,
which can be exploited to answer Q w.r.t. O.</p>
          <p>Definition 5. Let Q = 9~y: (~x; ~y) be a CQ, let QM, sp, and fk be fresh predicates
of arity j~xj + j~yj, let id, AQ , and T Q , with 2 ff; bg, be fresh predicates of arity
j~xj + j~yj + 2, let Ans be a fresh predicate of arity j~xj, let named be a fresh unary
predicate, and let U be a set of fresh variables s.t. jU j j~yj. Then, PQ is the smallest
program with all rules in Table 2, and PO;Q is defined as EO [ PQ.</p>
          <p>Note that, to distinguish between constants in O (recorded by named in PQ) and their
closure under equality (recorded by NI in EO), we do not axiomatise equality w.r.t. PQ.
Theorem 4. (i) PO;Q is stratified; (ii) M [PO;Q] is polynomial in jOj and exponential
in jQj; and (iii) if O is satisfiable, ~x 2 cert(Q; O) iff PO;Q j= Ans(~x).</p>
          <p>Theorem 4 suggests a worst-case exponential algorithm that, given O and Q,
materialises PO;Q and returns the extension of predicate Ans. This procedure can be modified
to obtain a ‘guess and check’ algorithm applicable to BCQs. This algorithm first
materialises EO in polynomial time; then, it guesses a match to Q over the materialisation;
finally, it materialises (PO;Q) , where variables ~x and ~y are grounded by . The latter
step can also be shown to be tractable.</p>
          <p>Theorem 5. Checking whether O j= Q is NP-complete in combined complexity.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Proof of Concept</title>
      <p>
        We implemented our approach using the DLVsystem,6 which supports function
symbols and stratified negation. For testing, we used the LUBM ontology [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] (which
contains only safe roles) and the Horn fragments of the Reactome and Uniprot (which are
RSA, but contain also unsafe roles).7 LUBM comes with a data generator; Reactome
      </p>
      <sec id="sec-3-1">
        <title>6 http://www.dlvsystem.com/dlv/ 7 http://www.ebi.ac.uk/rdf/platform</title>
        <p>and Uniprot come with large datasets, which we sampled. Test queries are given in the
appendix. We measured (M1) number of facts of the given data; (M2) materialisation
times for the canonical model; (M3) model size; (M4) materialisation times for PQ;
(M5) number of candidate query answers; and (M6) percentage of spurious answers.
Experiments were performed on a MacBook Pro laptop with 8GB RAM and an Intel
Core 2.4 GHz processor.</p>
        <p>
          Table 3 summarises our results. Computation times for the models scale linearly in
data size. Model size is at most 6 times larger than the original data, which is a
reasonable growth factor in practice. As usual in combined approaches (e.g. see [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]), query
processing times depend on the number of candidate answers; thus, the applicability
of the approach largely depends on the ratio between spurious and correct answers.
Queries q1-q2 in Reactome and Uniprot are realistic queries given as examples in the
EBI website. Neither of these queries lead to spurious answers, and processing times
scale linearly with data size. No query in the LUBM benchmark leads to spurious
answers (e.g., LUBM queries q3 and q4 in Table 3). We manually crafted one additional
query for Reactome and Uniprot (q3 in both cases) and two for LUBM (queries q1 and
q2), which lead to a high percentage of spurious answers. Although these queries are
challenging, we can observe that the proportion of spurious answers remains constant
with increasing data size. Finally, note that query q1 in LUBM retrieves the highest
number of candidate answers and is thus the most challenging query. Our prototype and
all test data, ontologies and queries are available at http://tinyurl.com/qcolx3w.
6
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusions and Future Work</title>
      <p>We presented an extension to the combined approaches to CQ answering that can be
applied to a wide range of out-of-profile Horn ontologies. Our theoretical results unify
and extend existing techniques for E LHO and DL-LiteR in a seamless and elegant way.
Our preliminary experiments indicate the feasibility of our approach in practice.</p>
      <p>
        We anticipate several directions for future work. First, we have not considered logics
with transitive roles. Recently, it was shown that CQ answering over EL ontologies with
transitive roles is feasible in NP [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. We believe that our techniques can be extended
in a similar way. Finally, we would like to optimise our encoding into LP and conduct
a more extensive evaluation.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Franz</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Brandt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Carsten</given-names>
            <surname>Lutz</surname>
          </string-name>
          .
          <article-title>Pushing the E L envelope</article-title>
          .
          <source>In IJCAI</source>
          , pages
          <fpage>364</fpage>
          -
          <lpage>369</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Diego Calvanese, Giuseppe De Giacomo, Domenico Lembo, Maurizio Lenzerini, and
          <string-name>
            <given-names>Riccardo</given-names>
            <surname>Rosati</surname>
          </string-name>
          .
          <article-title>Tractable reasoning and efficient query answering in description logics: The DL-Lite family</article-title>
          .
          <source>J. Automated Reasoning (JAR)</source>
          ,
          <volume>39</volume>
          (
          <issue>3</issue>
          ):
          <fpage>385</fpage>
          -
          <lpage>429</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>David</given-names>
            <surname>Carral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Cristina</given-names>
            <surname>Feier</surname>
          </string-name>
          , Bernardo Cuenca Grau, Pascal Hitzler, and
          <string-name>
            <given-names>Ian</given-names>
            <surname>Horrocks</surname>
          </string-name>
          .
          <article-title>E Lifying ontologies</article-title>
          .
          <source>In IJCAR</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>David</given-names>
            <surname>Carral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Cristina</given-names>
            <surname>Feier</surname>
          </string-name>
          , Bernardo Cuenca Grau, Pascal Hitzler, and
          <string-name>
            <given-names>Ian</given-names>
            <surname>Horrocks</surname>
          </string-name>
          .
          <article-title>Pushing the boundaries of tractable ontology reasoning</article-title>
          .
          <source>In ISWC</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Georg</given-names>
            <surname>Gottlob</surname>
          </string-name>
          , Marco Manna, and
          <string-name>
            <given-names>Andreas</given-names>
            <surname>Pieris</surname>
          </string-name>
          .
          <article-title>Polynomial combined rewritings for existential rules</article-title>
          .
          <source>In KR</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Yuanbo</given-names>
            <surname>Guo</surname>
          </string-name>
          , Zhengxiang Pan, and
          <string-name>
            <given-names>Jeff</given-names>
            <surname>Heflin</surname>
          </string-name>
          .
          <article-title>LUBM: A benchmark for OWL knowledge base systems</article-title>
          .
          <source>J. Web Semantics</source>
          ,
          <volume>3</volume>
          (
          <issue>2</issue>
          -3):
          <fpage>158</fpage>
          -
          <lpage>182</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Roman</given-names>
            <surname>Kontchakov</surname>
          </string-name>
          , Carsten Lutz, David Toman,
          <string-name>
            <given-names>Frank</given-names>
            <surname>Wolter</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Zakharyaschev</surname>
          </string-name>
          .
          <article-title>The combined approach to query answering in DL-Lite</article-title>
          .
          <source>In KR</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Roman</given-names>
            <surname>Kontchakov</surname>
          </string-name>
          , Carsten Lutz, David Toman,
          <string-name>
            <given-names>Frank</given-names>
            <surname>Wolter</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Zakharyaschev</surname>
          </string-name>
          .
          <article-title>The combined approach to ontology-based data access</article-title>
          .
          <source>In IJCAI</source>
          , pages
          <fpage>2656</fpage>
          -
          <lpage>2661</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Nicola</given-names>
            <surname>Leone</surname>
          </string-name>
          , Gerald Pfeifer, Wolfgang Faber, Thomas Eiter, Georg Gottlob, Simona Perri, and
          <string-name>
            <given-names>Francesco</given-names>
            <surname>Scarcello</surname>
          </string-name>
          .
          <article-title>The DLV system for knowledge representation and reasoning</article-title>
          .
          <source>ACM Trans. Comput. Log.</source>
          ,
          <volume>7</volume>
          (
          <issue>3</issue>
          ):
          <fpage>499</fpage>
          -
          <lpage>562</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Carsten</given-names>
            <surname>Lutz</surname>
          </string-name>
          .
          <article-title>Inverse roles make conjunctive queries hard</article-title>
          .
          <source>In DL</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Carsten</surname>
            <given-names>Lutz</given-names>
          </string-name>
          , Inanc¸ Seylan, David Toman,
          <string-name>
            <given-names>and Frank</given-names>
            <surname>Wolter</surname>
          </string-name>
          .
          <article-title>The combined approach to OBDA: Taming role hierarchies using filters</article-title>
          .
          <source>In ISWC</source>
          , pages
          <fpage>314</fpage>
          -
          <lpage>330</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Carsten</surname>
            <given-names>Lutz</given-names>
          </string-name>
          , David Toman,
          <string-name>
            <given-names>and Frank</given-names>
            <surname>Wolter</surname>
          </string-name>
          .
          <article-title>Conjunctive query answering in the description logic E L using a relational database system</article-title>
          .
          <source>In IJCAI</source>
          , pages
          <fpage>2070</fpage>
          -
          <lpage>2075</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Boris</surname>
            <given-names>Motik</given-names>
          </string-name>
          , Bernardo Cuenca Grau, Ian Horrocks, Zhe Wu, Achille Fokoue, and Carsten Lutz, editors.
          <source>OWL 2 Web Ontology Language: Profiles. W3C Recommendation</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Magdalena</surname>
            <given-names>Ortiz</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Rudolph</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Mantas</given-names>
            <surname>Simkus</surname>
          </string-name>
          .
          <article-title>Worst-case optimal reasoning for the Horn-DL fragments of OWL 1 and 2</article-title>
          .
          <string-name>
            <surname>In</surname>
            <given-names>KR</given-names>
          </string-name>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Magdalena</surname>
            <given-names>Ortiz</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Rudolph</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Mantas</given-names>
            <surname>Simkus</surname>
          </string-name>
          .
          <article-title>Query answering in the Horn fragments of the description logics SHOIQ and SROIQ</article-title>
          .
          <string-name>
            <surname>In</surname>
            <given-names>IJCAI</given-names>
          </string-name>
          , pages
          <fpage>1039</fpage>
          -
          <lpage>1044</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>Giorgio</given-names>
            <surname>Stefanoni</surname>
          </string-name>
          and
          <string-name>
            <given-names>Boris</given-names>
            <surname>Motik</surname>
          </string-name>
          .
          <article-title>Answering conjunctive queries over E L knowledge bases with transitive and reflexive roles</article-title>
          .
          <source>In AAAI</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Giorgio</surname>
            <given-names>Stefanoni</given-names>
          </string-name>
          , Boris Motik, and
          <string-name>
            <given-names>Ian</given-names>
            <surname>Horrocks</surname>
          </string-name>
          .
          <article-title>Introducing nominals to the combined query answering approaches for E L</article-title>
          .
          <string-name>
            <surname>In</surname>
            <given-names>AAAI</given-names>
          </string-name>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Giorgio</surname>
            <given-names>Stefanoni</given-names>
          </string-name>
          , Boris Motik, Markus Kro¨tzsch, and
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Rudolph</surname>
          </string-name>
          .
          <article-title>The complexity of answering conjunctive and navigational queries over OWL 2 EL knowledge bases</article-title>
          .
          <source>J. Artif. Intell. Res. (JAIR)</source>
          ,
          <volume>51</volume>
          :
          <fpage>645</fpage>
          -
          <lpage>705</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Michae¨l Thomazo and
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Rudolph</surname>
          </string-name>
          .
          <article-title>Mixing materialization and query rewriting for existential rules</article-title>
          .
          <source>In ECAI</source>
          , pages
          <fpage>897</fpage>
          -
          <lpage>902</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>