<!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>Absorption-Based Query Entailment Checking for Expressive Description Logics</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Andreas Steigmiller?</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Birte Glimm</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ulm University</institution>
          ,
          <addr-line>Ulm, Germany, &lt;first name&gt;.&lt;last</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Conjunctive query answering is an important reasoning task for logicbased knowledge representation formalisms, such as Description Logics, to query for instance data that is related in certain ways. Although there exist many knowledge bases that use language features of more expressive Description Logics, there are hardly any systems that support full conjunctive query answering for these logics. In fact, existing systems usually impose restrictions on the queries or only compute incomplete results. In this paper, we present a new approach for conjunctive query entailment checking that can directly be integrated into existing reasoning systems for expressive Description Logics and serves as basis for conjunctive query answering. The approach reminds of absorption, a well-known preprocessing step that rewrites axioms such that they can be handled more e ciently. In this sense, we rewrite the query such that entailment can dynamically be checked in the dominantly used tableau calculi with minor extensions. Our implementation in the reasoning system Konclude shows encouraging results.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Although conjunctive query answering has intensively been studied for many
expressive Description Logics (DL), most of the state-of-the-art reasoning systems for these
DLs do not support conjunctive queries or only with limitations. In fact, conjunctive
query answering is typically reduced to many query entailment checking problems for
which decidability is still open in SROIQ. Furthermore, the used techniques for
showing decidability and worst-case complexity of sub-languages (e.g., [
        <xref ref-type="bibr" rid="ref13 ref16 ref3">3,13,16</xref>
        ]) are often
not directly suitable for practical implementations. For the DLs SH IQ and SH OQ
approaches have been developed that reduce conjunctive query answering to instance
checking (e.g, [
        <xref ref-type="bibr" rid="ref10 ref4 ref6">4,6,10</xref>
        ]), which is not goal-directed, often requires many unnecessary
entailment checks, and may require language features (e.g., role conjunctions) which
are not available in OWL 2 and, hence, usually not supported by reasoning systems.
Even for queries with only answer variables, existing approaches (e.g., [
        <xref ref-type="bibr" rid="ref12 ref17 ref8">8,12,17</xref>
        ]) are
often suboptimal since they are based on the above mentioned reduction to many
instance checks. Recently, query answering has been improved by lower and upper bound
optimisations that utilise model abstractions built by a reasoner [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] or delegate work to
specialised procedures [
        <xref ref-type="bibr" rid="ref14 ref22">14,22</xref>
        ]. However, their e ectiveness is ontology dependent and,
hence, optimised and deeply integrated query entailment checking and answering
techniques for expressive DLs are still needed for further improvements.
      </p>
      <p>
        In this paper, we present an approach that encodes the query such that entailment
can e ciently be detected in the model construction process with minor extensions to
the dominantly used tableau algorithm. The encoding serves to identify individuals
involved in satisfying the query and guides the search for a model where the query is
not entailed. We refer to this technique as absorption-based query entailment checking
since it reminds of the absorption technique for nominal schemas [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. The approach is
correct and terminates for several expressive DLs for which decidability of conjunctive
query entailment is well-known (e.g., SH IQ, SH OQ). For the challenging
combination of nominals, inverse roles, and number restrictions, termination is only guaranteed
if a bounded number of new nominals is generated. The technique seems well-suited
for practical implementations since (i) it only requires minor extensions to tableau
algorithms, (ii) can easily be combined with other well-known (query answering)
optimisation techniques, and (iii) real-world ontologies hardly require the generation of (many)
new nominals. We implemented the proposed technique in the reasoning system
Konclude [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] with encouraging results. The accompanying technical report [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] sketches
extensions to query answering and contains more details as well as evaluation results.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>
        We assume readers to be familiar with DLs and conjunctive queries (see, e.g., [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]).
Since we focus on query entailment checking, we only consider Boolean queries (i.e.,
all variables are existential variables). A query Q is a set of query terms fq1; : : : ; qkg with
qi either a concept term of the form C(z) or a role term of the form r(z1; z2). We consider
r(x; y) 2 Q as equivalent to r (y; x) 2 Q and use vars(Q) to refer to the variables in Q.
W.l.o.g. we do not use individual names in query terms and we assume that all variables
are connected via role terms.
      </p>
      <p>Reasoning algorithms for SROIQ are dominantly based on (variants of) tableau
algorithms, which, roughly speaking, check the consistency of a knowledge base K by
trying to construct an abstraction of a model for K , a so-called “completion graph”. A
completion graph G is a tuple (V; E; L; ,˙ ), where each node v 2 V (edge hv; wi 2 E)
represents one or more (pairs of) individuals. Each node v (edge hv; wi) is labelled with a
set of concepts (roles), L(v) (L(hv; wi)), which the individuals represented by v (hv; wi)
are instances of. The relation ,˙ records inequalities between nodes. We call C 2 L(v)
(r 2 L(hv; wi)) a concept (role) fact, which we write as C(v) (r(v; w)). A node v is a
nominal node if fag 2 L(v) for some individual a and a blockable node otherwise.</p>
      <p>
        A completion graph is initialised with one node for each individual in the input
knowledge base. Concepts and roles are added to the node and edge labels as specified
by concept and role assertions. Complex concepts are then decomposed using expansion
rules, where each rule application can add new concepts to node labels and/or new
nodes and edges, thereby explicating the structure of a model. The rules are applied
until either the graph is fully expanded (no more rules are applicable), in which case the
graph can be used to construct a model that is a witness to the consistency of K , or an
obvious contradiction (called a clash) is discovered (e.g., a node v with C; :C 2 L(v)),
proving that the completion graph does not correspond to a model. K is consistent if the
rules (some of which are non-deterministic) can be applied such that they build a fully
w
t
s
x
z
r
s
expanded, clash-free completion graph. Cycle detection techniques such as pairwise
blocking [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] prevent the infinite generation of new nodes.
      </p>
      <p>
        For handling axioms of the form A v C, where A is atomic, one typically uses
special lazy unfolding rules in the tableau algorithm, which add C to a node label if
it contains the concept A. Axioms of the form C v D, where C is not atomic, cannot
directly be handled with lazy unfolding rules. Instead, they are internalised to &gt; v
:C t D. Given that &gt; is satisfied at each node, the disjunction is then present in all node
labels. To avoid the non-determinism introduced by internalisation, one typically uses
a preprocessing step called absorption to rewrite axioms into (possibly several) simpler
concept inclusion axioms that can be handled by lazy unfolding. Binary absorption
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] utilises axioms of the form A1 u A2 v C for absorbing more complex axioms. This
requires a binary unfolding rule that adds C to node labels if A1 and A2 are present.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Absorption-Based Query Entailment Checking</title>
      <p>
        With the exception of role relationships between nominals/individuals, DLs allow only
for expressing tree-shaped structures [
        <xref ref-type="bibr" rid="ref21 ref7">7,21</xref>
        ]. Even with nominals/individuals,
forestshaped models exists [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Hence, we can check query entailment by “folding” the
relational structure of (parts of) the query into a tree-shaped form by identifying
variables. The resulting queries (query parts), called foldings, can then be expressed as DL
concepts (possibly using role conjunctions). Such query concepts can be used to check
query entailment: we have that a query (part) is not entailed if a completion graph exists
that satisfies none of its foldings.
      </p>
      <p>Example 1. Consider the (cyclic) query Q1 = ft(w; x); r(x; y); s(y; z); s(z; w)g (cf.
Figure 1, left-hand side). There are di erent (tree-shaped) foldings of the query, e.g., by
identifying x and z or w and y (cf. Figure 1, middle and right-hand side). The foldings
can be expressed as 9(t u s ):9(r u s ):&gt; and 9(t u r):9(s u s):&gt;, respectively.</p>
      <p>If we add, for each concept, say C, that represents a folding of the query, the
axiom C v ? to the knowledge base, then consistency checking reveals query entailment.
Note that the tableau algorithm decides for each node whether (sub-)concepts of the
foldings are satisfied (due to the internalisation to &gt; v :C t ?) and adds corresponding
(sub-)concepts or their negations to the node labels and, hence, the expansion of nodes
is not blocked too early w.r.t. deciding query entailment. Unfortunately, state-of-the-art
reasoners do not support role conjunctions and there can be many foldings of a query
(especially if the query has several nested cycles or uses role terms with complex roles).</p>
      <p>Here we propose, as an alternative, to dynamically match and fold the query onto the
completion graph. This is achieved by ‘absorbing’ a query into several simple axioms
that can e ciently be processed, where intermediate states encode the parts of the query
that are already satisfied. The intermediate states are tracked in the form of so-called
query state concepts (written S, possibly with sub-/super-scripts), which can be seen as
fresh atomic concepts with a set of associated bindings of query variables to nodes in
the completion graph. To realise this, we extend the tableau algorithm to create variable
bindings (to match a variable to a node in the completion graph), to propagate variable
bindings in the process of folding the query onto the completion graph, and to join
variable bindings. Creating and propagating variable bindings according to the role
terms of a query ultimately allows us to detect when cycles are closed.</p>
      <p>
        For the creation of variable bindings, we borrow the # binders from Hybrid Logics
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Informally, a concept of the form #x:C in the label of a node v instructs the tableau
algorithm to create a binding fx 7! vg, which binds x to the node v, and to store the
binding for the sub-concept C. For the propagation of bindings, we extend the 8-rule of
the tableau algorithm. For example, if 8r:C is in the label of a node v and the variable
binding fx 7! vg is associated with it, then the tableau algorithm associates fx 7! vg
with C for all r-successors of v. Additionally, propagation can happen within node
labels, e.g., if S 2 L(v) with the associated binding fx 7! vg and the knowledge base
contains S v C, we add C to L(v) and associate fx 7! vg with it. Finally, for joining
bindings, we extend the binary unfolding rule. For example, if S1 and S2 are in the label
of a node v and the bindings fx 7! v; y 7! wg and fx 7! v; z 7! wg are associated with
them, respectively, then, for an axiom S1 u S2 v C in the knowledge base, we add C to
L(v) and associate the joined bindings fx 7! v; y 7! w; z 7! wg with it. With these basic
adaptations, we can capture the query in several simple types of axioms: S v #x:S 0 for
creating bindings, S v S 0 and S v 8r:S 0 for propagating bindings, and S1 u S2 v S 0 for
joining bindings, where S , S 0, S1, S2 are query state concepts and r is an atomic role or
its inverse. The resulting axioms can usually be processed quite e ciently.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Query Absorption</title>
        <p>Before presenting a formal algorithm, we demonstrate how the concepts and axioms for
a query are obtained by means of an example. We call this process absorbing a query.
Example 2 (Example 1 cont.). Consider again Q1 = ft(w; x); r(x; y), s(y; z); s(z; w)g.
We first pick a starting variable, say w, and introduce the axiom &gt; v #w:Sw, which
triggers, for all nodes, that a binding for w is created. We use the (fresh) query state
concept Sw to indicate that w is bound. Since it is convenient to continue with a role
term containing w, we choose t(w; x) and propagate the bindings for w to t-successors
using the axiom Sw v 8t:Stw (again Stw is fresh and indicates the state that bindings for w
have been propagated via t). Nodes to which Stw (with the bindings for w) is propagated
are suitable bindings for x. This is captured by the axiom Sw
t v #x:S x. Since Stw may be
propagated from di erent nodes, we join the propagated bindings for w and the newly
created bindings for x using the axiom Stw u S x v Swx, for which the extended tableau
algorithm attaches the joined bindings to the fresh concept Swx. We proceed analogously
for r(x; y); s(y; z), and s(z; w) (see Figure 2 for all created axioms). Nodes to which
the concept Swsxyz is propagated, potentially close the cycle in the query. The axiom
Swsxyz u Sw v Swxyzw checks whether a join is possible. In case it is, the query is satisfied
&gt; v #w:Sw
Stw u Sx v Swx
Srwx u Sy v Swxy
Swsxy u Sz v Swxyz</p>
        <p>Sw v 8t:Stw</p>
        <sec id="sec-3-1-1">
          <title>Swx v 8r:Srwx</title>
          <p>Swxy v 8s:Swsxy</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Swxyz v 8s:Swsxyz Stw v #x:Sx</title>
          <p>Swx
r v #y:Sy</p>
          <p>Swsxy v #z:Sz
Swsxyz u Sw v Swxyzw</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Swxyzw v ?</title>
          <p>and a clash is triggered by the axiom Swxyzw v ?. In this case, backtracking is potentially
triggered to try other non-deterministic choices which might yield a complete and
clashfree completion graph that is a counter example for the query entailment.</p>
          <p>The next example demonstrates how concept terms in the query are handled.
Example 3 (Example 2 continued). Consider Q2 = Q1 [ fB(x)g. As in Example 2, we
pick w as starting node and then process t(w; x). This yields (again) the first four axioms
shown in Figure 2. Assume that we now process B(x). At the state Swx, the tableau
algorithm can either satisfy :B (which indicates that the query is not satisfied with these
bindings for w and x) or we have to assume a query state where also B(x) is satisfied.
This is achieved by adding the axiom Swx v :B t F Bx, where F Bx is a fresh concept.
Note that we want to keep the number of modified tableau rules minimal. Hence, when
applied to :BtF Bx, the t-rule does not propagate variable bindings. In case, the disjunct
F Bx is chosen, we join its empty set of variable bindings with those for Swx using the
axiom Swx u F Bx v SwBx, which is handled by the extended binary unfolding rule. For the
next role term r(x; y), we then add SwBx v 8r:Srwx and continue as in Example 2.</p>
          <p>Algorithm 1 formalizes the query absorption process and extends the given
knowledge base K via side e ects. The functions absorbCT (Algorithm 2) and absorbRT
(Algorithm 3) handle concept and role terms, respectively. The functions use a
mapping VLS from variables to the last query state concepts, i.e., each variable in the query
is mapped to the last introduced query state concept for that variable such that we can
later continue or incorporate the propagation for that variable. In the example, we
always chose an adjacent next query term that contains the current variable z. In case a
non-adjacent term is chosen, Lines 6–11 ensure the connection to the current variable
(which exists as we consider connected queries, see Section 2). In our example, if we
were to choose s(y; z) as first query term in Line 5 (with w as starting variable), Lines 6–
11 ensure that we process, for example, t(w; x) and r(x; y) before we process s(y; z) in
Line 17. Clearly, the presented algorithm can further be optimised, e.g., by not creating
binder concepts for variables that are not required in joins, but the presented algorithm
is already quite convenient to show the principle of the approach.
3.2
As outlined in the previous sections, minor extensions and adaptations of the tableau
algorithm are required for creating, propagating, and joining bindings as well as for
Algorithm 1 absorbQ(Q; K )
Input: A query Q and a knowledge base K</p>
          <p>that is extended via side e ects
1: z choose one variable from vars(Q)
2: Sz fresh query state concept
3: K K [ f&gt; v #z:Szg
4: VLS (z) Sz
5: for each q 2 Q do
6: if q = C(x) or q = r(x; y), z , x then
7: choose q1; q2; : : : ; qn 2 Q with
q1 = r1(z; y1); q2 = r2(y1; y2);
: : : ; qn = rn(yn 1; x)
8: for 1 i n do
9: absorbRT(qi; VLS ; K )
10: end for
11: end if
12: if q = C(x) then
13: absorbCT(C(x); VLS ; K )
14: z x
15: end if
16: if q = r(x; y) then
17: absorbRT(r(x; y); VLS ; K )
18: z y
19: end if
20: end for
21: Sz1:::zmz</p>
          <p>VLS (z)</p>
          <p>K [ fSz1:::zmz v ?g
22: K
Algorithm 2 absorbCT(C(x); VLS ; K )
1: Sx1:::x:::xn VLS (x)
2: FCx fresh atomic concept
3: SCx1:::x:::xn fresh query state concept
5: K KK [[SffSSx1xx::11:x::::::::xx:x::::n::xxnn uv F:CCxvtSFCxC1x:g::x:::xn g
4: K
6: VLS (x) C
Algorithm 3 absorbRT(r(x; y); VLS ; K )
1: Sx1:::x:::xn VLS (x)
2: Srx1:::x:::xn fresh query state concept
3: K K [ fSx1:::x:::xn v 8r:Srx1:::x:::xn g
4: if VLS (y) is undefined then
5: Sy fresh query state concept
6: K K [ fSrx1:::x:::xn v #y:Syg
7: VLS (y) Sy
8: end if
9: Sy1:::y:::ym VLS (y)
10: Sz1:::zk fresh query state concept with</p>
          <p>z1 : : : zk = x1 : : : x : : : xny1 : : : y : : : ym
11: K</p>
          <p>K [
fSrx1:::x:::xn u Sy1:::y:::ym v Sz1:::zk g
12: VLS (y) Sz1:::zk
ensuring a correct blocking. First, we discuss the required rule extensions and define
the notion of variable mappings:</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Definition 1 (Variable Mapping). A variable mapping is a (partial) function from</title>
        <p>variable names to nodes and we refer to the set of elements on which is defined as
the domain, written dom( ), of . We say that two variable mappings 1 and 2 are
compatible if 1(x) = 2(x) for all x 2 dom( 1) \ dom( 2).</p>
        <p>For an extended completion graph G = (V; E; L; ,˙; M) and v 2 V, we denote with
M(C; v) the sets of variable mappings that are associated with a concept C in L(v).</p>
        <p>
          The #-rule creates and associates variable mappings with concept facts in the
completion graph, which we then propagate to other concept facts w.r.t. the axioms from
the query absorption by using the extensions of expansion rules depicted in Table 1.
In particular, the application of the 8-rule to a concept fact 8r:C(v) now also
propagates mappings that are associated with 8r:C(v) to the concept C in the labels of the
r-neighbours. If complex roles have to be handled, one can, for example, use an
unfolding of the universal restriction according to the automata for role inclusion axioms [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>The remaining rules of Table 1 handle the (lazy) unfolding of the new query state
concepts in node labels. Please note that the standard unfolding rules for simple atomic
concepts are still necessary, i.e., C has to be added to a node label for axioms of the
form A v C and A1 u A2 v C if A or A1 and A2 are present. In contrast, the new
unfolding rules are only applied if at least one concept on the left-hand side is a query
state concept and they additionally also propagate associated variable mappings to C.
More precisely, if the query state concept Sx1:::xn is in the label of a node v and we have
the variable mappings M associated with this fact, then we add C for an axiom of the
form Sx1:::xn v C 2 K and we associate M also with C(v) (cf. v1-rule). For an axiom
of the form Sx1:::xn u A v C, we only add C and propagate the mappings to C if also
the atomic concept A is in the label (cf. v2-rule). Finally, the v3-rule handles binary
inclusion axioms, where both concepts on the left-hand side are query state concepts,
by propagating the join of the associated variable mappings to the implied concept.
Definition 2 (Variable Mapping Join). A variable mapping 1 [ 2 is defined by
setting ( 1 [ 2)(x) = 1(x) if x 2 dom( 1), and ( 1 [ 2)(x) = 2(x) otherwise. The join
M1 1 M2 between the sets of variable mappings M1 and M2 is defined as follows:</p>
        <p>M1 1 M2 = f 1 [ 2 j 1 2 M1; 2 2 M2 and 1 is compatible with 2g:
By applying the rules of Table 1 (in addition to the standard tableau rules) for a
knowledge base that is extended by the axioms from the query absorption, we get
associations of variable mappings with query state concepts such that they indicate which
parts of a query (and how these parts) are satisfied in the completion graph.
Example 4 (Example 2 cont.). Assume we extend K1 = fA(a); A v 9t:B; B v 9r:A; t v
s ; r v s g with the axioms from absorbing Q1 in Figure 2 and test the consistency with
a tableau algorithm extended by the rules of Table 1. We observe that the constructed
completion graph contains a clash and, consequently, Q1 is entailed (cf. Figure 3). More
precisely, we create a node for the individual a and add A to its node label (due to A(a)).
Now, we alternately create t- and r-successors (due to A v 9t:B and B v 9r:A), where the
t-successors are labelled with B and the r-successors with A. Due to t v s and r v s ,
we add s to each edge label. It is obvious to see that the folding 9(t u s ):9(r u s ):&gt;
of Q1 (cf. Example 1 and Figure 1) is satisfied for each node that instantiates A.
t; s
r; s
va
v1
v2
: : :
v3</p>
        <p>8
L(va) = &lt;&gt;
&gt;
:</p>
        <p>&gt;; A; 9t:B; #w:Sw; S wffw7!vagg; 8t:S twffw7!vagg;</p>
        <p>S wsxyzffw7!va;x7!v1;y7!v2;z7!v1gg; S wxyzwffw7!va;x7!v1;y7!v2;z7!v1gg; ?
8&gt; &gt;; B; 9r:A; #w:Sw; S wffw7!v1gg; 8t:S twffw7!v1gg; S twffw7!vagg; #x:Sx; S xffx7!v1gg; 9
&gt; &gt;&gt;&gt;
L(v1) = &lt;&gt;&gt; S wxffw7!va;x7!v1gg; 8r:S rwxffw7!va;x7!v1gg; S wsxyffw7!va;x7!v1;y7!v2gg; #z:Sz; S zffz7!v1gg;=&gt;
&gt;&gt;&gt;&gt;: S wxyzffw7!va;x7!v1;y7!v2;z7!v1gg; 8s:S wsxyzffw7!va;x7!v1;y7!v2;z7!v1gg &gt;&gt;&gt;&gt;;
8
L(v2) = &lt;&gt;
&gt;
:
L(v3) = n
&gt;; A; 9t:B; #w:Sw; S wffw7!v2gg; 8t:S twffw7!v2gg; S rwxffw7!va;x7!v1gg; #y:Sy;</p>
        <p>S yffy7!v2gg; S wxyffw7!va;x7!v1;y7!v2gg; 8s:S wsxyffw7!va;x7!v1;y7!v2gg; : : :
&gt;; B; 9r:A; #w:Sw; S wffw7!v3gg; : : :
9
&gt;
=
&gt;
;
9
&gt;
=
&gt;
;
o
Due to &gt; v #w:Sw from the absorption, we add Sw to each node label and associate
Sw with a mapping from w to the node. In particular, for va representing the individual a,
we associate fw 7! vag with Sw. Note that fw 7! vag 2 M(Sw; va) is shown as S wffw7!vagg in
Figure 3, i.e., we list the set of associated mappings as a second super-script highlighted
in grey. To satisfy the axiom Sw v 8t:Stw, we unfold Sw to 8t:Stw and we also keep the
variable mappings, i.e., we have fw 7! vag 2 M(8t:Stw; va). Now, the application of the
8-rule propagates fw 7! vag to Sw</p>
        <p>t 2 L(v1). There, we unfold Stw to the binder concept
for x, for which then the #-rule creates a new variable mapping fx 7! v1g that is joined
by the v3-rule with fw 7! vag such that we have fw 7! va; x 7! v1g 2 M(Swx; v1). These
steps are repeated until we have fw 7! va; x 7! v1; y 7! v2; z 7! v1g 2 M(Swsxyz; va). Since
fw 7! vag is compatible with fw 7! va; x 7! v1; y 7! v2; z 7! v1g, the v3-rule adds the latter
variable mapping to M(Swxyzw; va). Finally, the v1-rule adds ? to L(va). Since all facts
and variable mappings are derived deterministically, no non-deterministic alternatives
have to be evaluated and entailment of Q1 is correctly determined.</p>
        <p>As one can see from the example, the variable mappings associated with query state
concepts directly correspond to foldings of the query. In particular, variables that are
mapped to the same node correspond to the folding where the corresponding variables
are identified. In addition, if a variable is mapped to a nominal node, then the mapping
basically represents the “folding” that is obtained by replacing the variable with the
associated nominal/individual (and folding up the remaining terms).</p>
        <p>
          Without further optimisations, we create new bindings for every node and, due to
complex roles and/or nominals, variable mappings might be propagated arbitrarily far
through a completion graph. At first sight, this seems problematic for blocking. The
correspondence with foldings, however, helps us to find a suitable extension of the
typically used pairwise blocking technique [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] defined as follows:
Definition 3 (Pairwise Blocking). Let G = (V; E; L; ,˙; M) be a completion graph. We
say that a node v with predecessor v0 is directly blocked if there exists an ancestor node
w of v with predecessor w0 such that (1) v; v0; w; w0 are all blockable, (2) w; w0 are not
blocked, (3) L(v) = L(w) and L(v0) = L(w0), and (4) L(hv0; vi) = L(hw0; wi). A node
va
v1
t
t
v2
g
n
ck t
i
o
l
b
v3
is indirectly blocked if it has an ancestor node that is directly blocked, and a node is
blocked if it is directly or indirectly blocked.
        </p>
        <p>
          The query state concepts, which track how much of the query is satisfied, are already
part of the concept labels. Hence, it remains to check whether the query is analogously
satisfied (i.e., same foldings must exist) by, roughly speaking, checking whether the
variable mappings have been propagated in the same way between the blocking node,
its predecessor and (related) nominal nodes and between the blocked node, its
predecessor and (related) nominal nodes. Note that a mapping and the query state concepts
with which is associated capture which query parts are already satisfied. Query state
concepts that are associated with mappings that are compatible with correspond to
states where fewer or additional query parts are satisfied. The following notion captures
such related query state concepts for a mapping and a node v of a completion graph:
Definition 4. Let G = (V; E; L; ,˙ ; M) be a completion graph. For v 2 V and a mapping
, we set states(v; ) = fC 2 L(v) j v 2 M(C; v) is compatible with g.
Note that we do not limit states to query state concepts only to enable more
absorption optimisations (see [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] for details). We formally capture (query state) concepts
associated with a mapping and their relation to blocking with the notion of analogous
propagation blocking and witness mappings:
Definition 5 (Analogous Propagation Blocking). Let G = (V; E; L; ,˙; M) be a
completion graph and o1; :::; on 2 V all the nominal nodes in G. We say that a node v with
predecessor v0 is directly blocked by w with predecessor w0 if v is pairwise blocked by
w and, for each mapping 2 M(C; v) [ M(C; v0) [ M(C; o1) [ ::: [ M(C; on); C 2
L(v) [ L(v0) [ L(o1) [ ::: [ L(on), there exists a witness mapping 0 2 M(D; w) [
M(D; w0) [ M(D; o1) [ ::: [ M(D; on); D 2 L(w) [ L(w0) [ L(o1) [ ::: [ L(on) and
vice versa such that states(v; ) = states(w; 0), states(v0; ) = states(w0; 0), and
states(oi; ) = states(oi; 0) for 1 i n.
Example 5 (Example 2 cont.). For testing entailment of Q1 over K2 = fA(a); A v 9t:A;
t t v tg, we can capture the transitivity of t by extending the axioms of Figure 2 with
Stw v 8t:Stw (cf. [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]). For the resulting axioms, the tableau algorithm creates a completion
graph as depicted in Figure 4, where the query is not entailed. Due to the axiom Av9t:A,
the tableau algorithm successively builds t-successors until blocking is established.
Note that new variable mappings are created for all nodes and all mappings are
propagated to all descendants due to the transitive role t. Hence, we not only have mappings
with new bindings for each new successor, but also an increasing number of mappings.
Nevertheless, v3 is already directly blocked by v2 using analogous propagation blocking
since all pairwise blocking conditions are satisfied (e.g., L(v3) = L(v2), L(v2) = L(v1))
and we have for each variable mapping a witness mapping as shown in Table 2. For
example, for the mapping fw 7! v3g, we have states(v3; fw 7! v3g) = fSw; 8t:Stw; Sxg and
states(v2; fw 7! v3g) = fSxg due to the compatible mappings fx 7! v3g and fx 7! v2g,
respectively (cf. first row of Table 2). A witness for fw 7! v3g is fw 7! v2g since
states(v2; fw 7! v2g) = fSw; 8t:Stw; Sxg and states(v1; fw 7! v2g) = fSxg.
        </p>
        <p>To avoid considering all nominal nodes in blocking tests, one could obtain restricted
sets of relevant nominal nodes by “remembering” nominal nodes over which variable
mappings have been propagated, by tracking the usage of nominals for descendants or
by indexing variable mappings propagated over nominal nodes.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4 Implementation and Experiments</title>
      <p>
        The presented query entailment checking approach is implemented in the tableau-based
reasoning system Konclude [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], which supports the DL SROIQ with nominal schemas,
i.e., an extension of the nominal constructor by variables for natively representing
rulebased knowledge in ontologies. Axioms with nominal schemas are also absorbed in
Konclude such that variable bindings are appropriately propagated through the
completion graph [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], which we reuse to some extent for the query entailment checking
extension. The implementation and data for the experiments are available online [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        At the moment, Konclude may not terminate for SROIQ ontologies if the
absorption of the query leads to propagations over new nominal nodes. However, this does not
seem problematic in practice. For example, the ORE2015 dataset [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] contains 1920
ontologies (with trivial ontologies already filtered out), but only 399 use all
problematic language features (36 are OIQ, 281 are OIN , and 82 are OIF ). Konclude never
applied the new nominal rule in the consistency checks for these 399 ontologies, but
we terminated the reasoner (and, hence, the analysis of the new nominal generation)
for 4 ontologies after reaching the time limit of 5 minutes. Even if new nominals are
generated, it would further be required that the query propagates di erently over new
nominal and blockable nodes such that blocking cannot be established.
      </p>
      <p>
        For evaluating (the limits of) our query entailment checking approach, we identified
several interesting ontologies (i.e., ontologies that use most features of SROIQ with at
least 100 individuals and for which standard reasoning tasks are di cult but
processable by Konclude), such as DMKB, FMA, OBI, UOBM (cf. Table 3), and generated
50 non-trivial queries with several cycles for each ontology. In summary, the
entailment for most queries can be decided in under one second (90% require less than 1s,
49% less than 0:1s) by using one core of a Dell PowerEdge R420 server with two
Intel Xeon E5-2440 CPUs at 2.4 GHz and 144 GB RAM under a 64bit Ubuntu 16.04.5
LTS. However, there are queries that lead to many propagations (e.g., UOBM) and/or
require many blocking checks (e.g., Family) and, consequently, such queries require
significantly more time (e.g., 30 queries for the Family ontology reached the time limit
of 5 minutes since complex roles lead to many propagations with non-trivial blocking
tests). To further improve the performance, one could also use a representative
propagation of variable mappings [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] for entailment checks and/or index more precisely
which nodes constitute blocker candidates. Nevertheless, the extension of the presented
query entailment checking approach to query answering (with appropriate reduction
optimisations) is already able to outperform PAGOdA [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] on some of the non-trivial
real-world queries from the PAGOdA evaluation (see [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] for details).
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>We presented a novel query entailment checking approach based on the well-known
absorption optimisation that improves the reasoning performance for several more
expressive Description Logics. The approach can nicely be integrated into state-of-the-art
tableau-based systems and our implementation in Konclude shows encouraging results.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P</given-names>
          </string-name>
          . (eds.):
          <article-title>The Description Logic Handbook: Theory, Implementation, and Applications</article-title>
          . Cambridge University Press, second edn. (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Blackburn</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seligman</surname>
          </string-name>
          , J.:
          <article-title>Hybrid languages</article-title>
          .
          <source>Journal of Logic, Language and Information</source>
          <volume>4</volume>
          (
          <issue>3</issue>
          ) (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eiter</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ortiz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Answering regular path queries in expressive description logics: An automata-theoretic approach</article-title>
          .
          <source>In: Proc. 22nd AAAI Conf. on Artificial Intelligence (AAAI'07)</source>
          . pp.
          <fpage>391</fpage>
          -
          <lpage>396</lpage>
          . AAAI Press (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Unions of conjunctive queries in SH OQ</article-title>
          .
          <source>In: Proc. 11th Int. Conf. on Principles of Knowledge Representation and Reasoning (KR'08)</source>
          . pp.
          <fpage>252</fpage>
          -
          <lpage>262</lpage>
          . AAAI Press (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kollia</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stamou</surname>
          </string-name>
          , G.:
          <article-title>Lower and upper bounds for SPARQL queries over OWL ontologies</article-title>
          .
          <source>In: Proc. 29th Conf. on Artificial Intelligence (AAAI'15)</source>
          . AAAI Press (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lutz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Conjunctive query answering for the description logic SHIQ</article-title>
          .
          <source>J. of Artificial Intelligence Research</source>
          <volume>31</volume>
          ,
          <fpage>157</fpage>
          -
          <lpage>204</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Grädel</surname>
          </string-name>
          , E.:
          <article-title>Why are modal logics so robustly decidable</article-title>
          ? In: Paun,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Rozenberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Salomaa</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.) Current Trends in Theoretical Computer Science,
          <source>Entering the 21th Century</source>
          , vol.
          <volume>2</volume>
          , pp.
          <fpage>393</fpage>
          -
          <lpage>408</lpage>
          . World Scientific (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Haarslev</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Möller</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wessel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Querying the semantic web with Racer + nRQL</article-title>
          .
          <source>In: Proc. KI-2004 Int. Workshop on Applications of Description Logics</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kutz</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>The even more irresistible SROIQ</article-title>
          .
          <source>In: Proc. 10th Int. Conf. on Principles of Knowledge Representation and Reasoning (KR'06)</source>
          . pp.
          <fpage>57</fpage>
          -
          <lpage>67</lpage>
          . AAAI Press (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tessaris</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Querying the semantic web: a formal approach</article-title>
          .
          <source>In: Proc. 1st Int. Semantic Web Conf. (ISWC'02)</source>
          . pp.
          <fpage>177</fpage>
          -
          <lpage>191</lpage>
          . Springer (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hudek</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weddell</surname>
            ,
            <given-names>G.E.</given-names>
          </string-name>
          :
          <article-title>Binary absorption in tableaux-based reasoning for description logics</article-title>
          .
          <source>In: Proc. 19th Int. Workshop on Description Logics (DL'06)</source>
          . vol.
          <volume>189</volume>
          .
          <string-name>
            <surname>CEUR</surname>
          </string-name>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kollia</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Optimizing SPARQL query answering over OWL ontologies</article-title>
          .
          <source>J. of Artificial Intelligence Research</source>
          <volume>48</volume>
          ,
          <fpage>253</fpage>
          -
          <lpage>303</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ortiz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eiter</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Data complexity of query answering in expressive description logics via tableaux</article-title>
          .
          <source>J. of Automated Reasoning</source>
          <volume>41</volume>
          (
          <issue>1</issue>
          ),
          <fpage>61</fpage>
          -
          <lpage>98</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Pan</surname>
            ,
            <given-names>J.Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thomas</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Completeness guaranteed approximation for OWL-DL query answering</article-title>
          .
          <source>In: Proceedings of the 22nd International Workshop on Description Logics (DL'09)</source>
          . vol.
          <volume>477</volume>
          .
          <string-name>
            <surname>CEUR</surname>
          </string-name>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matentzoglu</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gonçalves</surname>
            ,
            <given-names>R.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Steigmiller</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The OWL reasoner evaluation (ORE) 2015 competition report</article-title>
          .
          <source>J. of Automated Reasoning</source>
          <volume>59</volume>
          (
          <issue>4</issue>
          ),
          <fpage>455</fpage>
          -
          <lpage>482</lpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Rudolph</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Nominals, inverses, counting, and conjunctive queries or: Why infinity is your friend!</article-title>
          <source>J. of Artificial Intelligence Research</source>
          <volume>39</volume>
          ,
          <fpage>429</fpage>
          -
          <lpage>481</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Sirin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cuenca Grau</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalyanpur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katz</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Pellet: A practical OWL-DL reasoner</article-title>
          .
          <source>J. of Web Semantics</source>
          <volume>5</volume>
          (
          <issue>2</issue>
          ),
          <fpage>51</fpage>
          -
          <lpage>53</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Steigmiller</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Absorption-based query answering for expressive description logics - technical report</article-title>
          .
          <source>Tech. rep.</source>
          , Ulm University, Ulm, Germany (
          <year>2019</year>
          ), available online at https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.090/Publikationen/2019/ StGl2019-ABQA-TR-DL.pdf
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Steigmiller</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liebig</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Reasoning with nominal schemas through absorption</article-title>
          .
          <source>J. of Automated Reasoning</source>
          <volume>53</volume>
          (
          <issue>4</issue>
          ),
          <fpage>351</fpage>
          -
          <lpage>405</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Steigmiller</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liebig</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Konclude: system description</article-title>
          .
          <source>J. of Web Semantics</source>
          <volume>27</volume>
          (
          <issue>1</issue>
          ) (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Vardi</surname>
          </string-name>
          , M.Y.:
          <article-title>Why is modal logic so robustly decidable?</article-title>
          <source>In: Descriptive Complexity and Finite Models: Proceedings of a DIMACS Workshop. DIMACS: Series in Discrete Mathematics and Theoretical Computer Science</source>
          , vol.
          <volume>31</volume>
          , pp.
          <fpage>149</fpage>
          -
          <lpage>184</lpage>
          .
          <source>Memoirs of the American Mathematical Society</source>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cuenca Grau</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nenov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaminski</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
          </string-name>
          , I.:
          <article-title>PAGOdA: Pay-as-you-go ontology query answering using a datalog reasoner</article-title>
          .
          <source>J. of Artificial Intelligence Research</source>
          <volume>54</volume>
          ,
          <fpage>309</fpage>
          -
          <lpage>367</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>