<!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>RSAComb: Combined Approach for CQ Answering in RSA ?</article-title>
      </title-group>
      <contrib-group>
        <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>
      </contrib-group>
      <abstract>
        <p>The combined approach is a well-known technique used to address the problem of conjunctive query (CQ) answering over knowledge bases. Various versions of the approach exist for relevant fragments of OWL 2. In this paper we focus on the combined approach for CQ answering over RSA, a class of ontologies that extends the OWL 2 profiles while maintaining the tractability of standard reasoning tasks. The algorithm was first presented in [4], but to the best of our knowledge a stable implementation is not currently available. We present RSAComb, a novel implementation of the algorithm that introduces several improvements and fixes to the original approach and uses RDFox as the underlying Datalog reasoner. As well as providing high performance, the extended features of RDFox allow for an optimised implementation of the filtration step. We developed the system with modularity and stability in mind so that it can be used as a standalone tool or integrated into other software as a library. We include an extensive evaluation of the system, focusing on performance and scalability.</p>
      </abstract>
      <kwd-group>
        <kwd>CQ answering</kwd>
        <kwd>combined approach</kwd>
        <kwd>RSA</kwd>
        <kwd>RDFox</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Conjunctive query (CQ) answering is a primary reasoning task over knowledge
bases for many applications. However, when considering expressive description
logic languages, query answering is computationally very expensive, even when
considering only complexity w.r.t. the size of the data (data complexity ).</p>
      <p>In order to achieve tractability and scalability for the problem, one main
approach is to limit the expressive power of the class of ontologies considered.</p>
      <p>Query answering algorithms have been developed for several fragments of
OWL 2 for which CQ answering is tractable with respect to data complexity
? This work was supported by the AIDA project (Alan Turing Institute), the
SIRIUS Centre for Scalable Data Access (Research Council of Norway), Samsung
Research UK, Siemens AG, and the EPSRC projects AnaLOG (EP/P025943/1), OASIS
(EP/S032347/1) and UK FIRES (EP/S019111/1).</p>
      <p>
        Copyright © 2021 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Three such fragments have been standardized as OWL 2 profiles, and CQ
answering techniques for these fragments have been shown to be highly scalable
at the expense of expressive power [
        <xref ref-type="bibr" rid="ref15 ref16 ref17 ref18 ref2 ref7 ref8 ref9">2,7,8,9,15,16,18,17</xref>
        ].
      </p>
      <p>
        An interesting fragment of OWL 2, tractable for standard reasoning tasks, is
RSA, an ontology language that subsumes all the OWL 2 profiles, first presented
in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and for which a CQ answering algorithm based on the combined approach
was proposed in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Alas, the proof of concept implementation used for the
experimental results showed in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is currently not available.
      </p>
      <p>In this paper we introduce RSAComb, an efficient implementation of the
combined approach algorithm for RSA. We developed the system with modularity,
extensibility, and integration in mind and the software offers both an intuitive
command-line interface and a Scala API to be used as a self-contained library.</p>
      <p>
        The new implementation features RDFox [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref13 ref14">14,13,10,11,12</xref>
        ] as an underlying
Datalog reasoner and introduces several improvements, both technical and
theoretical and a few minor fixes. Among other changes we propose an improved
version of the filtering step for the combined approach, optimised for RDFox.
      </p>
      <p>The system accepts any OWL 2 ontology and includes a customisable
approximation step to RSA. In addition, we streamlined the execution of the
combined approach by factoring out those steps in the combined approach that are
query independent to make answering multiple queries over the same knowledge
base more efficient. Furthermore, we performed an extensive set of experiments
on the system. An analysis of the most relevant results is provided in Section 5.</p>
      <p>RSAComb has been released as free and open source software. Source code
and documentation are available at https://github.com/KRR-Oxford/RSAComb.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>
        We assume familiarity with standard concepts of first-order logic (FO), with
OWL 2, the (Horn-)ALCHOIQ fragment and OWL 2 profiles, and with the
definition of CQ, CQ answering and combined approach for CQ answering.
Combined approach in RSA RSA, first introduced in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], is a class of
ontology languages subsuming all OWL 2 profiles, while maintaining tractability of
standard reasoning tasks. RSA includes all axioms in Horn-ALCHOIQ (listed
in Table 1), restricting their interaction to ensure a polynomial bound on model
size. The RSA ontology language is designed to avoid interactions between
axioms that can result in the ontology being satisfied only by exponentially large
(and potentially infinite) models. This problem is often called and-branching and
can be caused by interactions between axioms of type (T5) with either axioms
(T3) and (R1), or axioms (T4), in Table 1.
      </p>
      <p>The combined approach for CQ answering in RSA consists of two main steps.
The first step computes the canonical model of an RSA ontology over an
extended signature (introduced to deal with inverse roles and directionality of
newly generated binary atoms). The computed canonical model is not
universal and, as such, might lead to spurious answers in the evaluation of CQs. The
second step of the computation performs a filtration of the computed answers
to identify only the certain answers to the input query. Both of these steps are
offloaded to a Datalog reasoner able to handle negation as failure and function
symbols.</p>
      <p>
        For a definition of the RSA class of ontologies, and a detailed description of
the combined approach algorithm, we refer the reader to [
        <xref ref-type="bibr" rid="ref3 ref4">3,4</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Design and architecture</title>
      <p>In this section we give an overview of the system, focusing on the overall
architecture and design choices that we had to make along the way.</p>
      <p>Figure 1 summarises the workflow of the system: (i) normalisation and
customisable approximation steps approximate an unrestricted OWL 2 ontology to
RSA; (ii) the canonical model is then computed for the resulting ontology; (iii) a
Datalog filtering program is derived from the input query and is combined with
the canonical model to produce the set of certain answers to the input query
over the approximated ontology. Depending on how the approximation is
performed, the set of answers returned might have different properties (e.g., the
approximation currently provided computes a lower bound of the answers to the
query over the original ontology).</p>
      <p>It is worth noting that, in this scenario, steps (i),(ii) are query independent,
while step (iii) is ontology independent. As such, when multiple queries are
submitted, steps (i-ii) can be performed “offline” and only the third step needs to
be performed for each input query.</p>
      <p>Our implementation uses RDFox to perform steps (ii) and (iii).
3.1</p>
      <sec id="sec-3-1">
        <title>Principles</title>
        <sec id="sec-3-1-1">
          <title>We built the system around these general principles:</title>
          <p>Modularity the code should be modular and different steps in the algorithm
should be as independent of each other as possible. It should be easy to
reimplement (or enhance) an intermediate step of the algorithm as long as
the signature and the interface with the system as a whole remain unaltered.
We achieved this by an extensive use of Scala traits, building a collection of
interfaces that describe the behaviour of the different actors that take part
in the execution of the combined approach for RSA. As explained in the
following sections, the integration with RDFox was also key to provide a
good level of modularity to the systems.</p>
          <p>Scalability the system has to be able to scale efficiently even for large amounts
of data. We factor parts of the computation and reuse previous results
whenever possible. A more detailed analysis on the scalability of the system is
reported in Section 5.</p>
          <p>Integration it should be equally possible to use the system as a self-contained
application or integrate it in another system. As such, our software presents
a simple but effective command line interface alongside a well-structured set
of classes exposing all the necessary tools to work with RSA ontology, while
hiding unnecessary implementation details. The different steps can also be
disabled for user convenience.
3.2</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Normalisation and approximation</title>
        <p>The process of importing the input ontology into the system is performed
using the OWLAPI. Note that only the ontology (TBox, RBox) is imported
while the data (ABox) provided as separate files is loaded “on demand” directly
into RDFox to maximize performance.</p>
        <p>Our system performs an optimised normalisation to reduce the input ontology
to the syntax introduced in Table 1. The ontology is then approximated to RSA.
These steps allow the input of unrestricted OWL 2 ontologies.</p>
        <p>
          Since the approximation of an unrestricted OWL 2 ontology to RSA can be
highly application-dependent, users can easily provide their own implementation
or turn it off completely when dealing with RSA ontologies. We provide a sound
approximation to RSA, which means that query answers for non-RSA ontologies
will be sound but possibly incomplete (i.e., we compute a lower bound answer).
The algorithm is based on the idea of deleting nodes to reduce the dependency
graph built from the input ontology [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] to a tree. The action of deleting nodes
from the graph can be then propagated to the ontology by removing the
corresponding T5 axioms. Due to monotonicity of first order logic, deleting axioms
from the ontology clearly produces a lower-bound approximation of the ontology
w.r.t. conjunctive query answering.
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Canonical model computation</title>
        <p>
          The computation of the canonical model involves the conversion of the input
RSA ontology into logic rules as described in Section 3 in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. The system
performs the conversion and then offloads the materialisation of the rules, combined
with the input data, to the underlying Datalog reasoner.
        </p>
        <p>Since the canonical model is query independent, this process can be
performed once and the result can be cached and reused for every subsequent query
over the same input ontology. We achieve this using RDFox’s support for RDF
named graphs, which enables us to perform operations on specific “named”
subsets of the data. Further operations on the graph operate and produce additional
data on a different named graph, leaving the materialised canonical model intact.
3.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>Filtering program and answer computation</title>
        <p>Answer filtration involves the computation of the filtering program from the
input query, the filtering of the materialised canonical model and the final process
of gathering the answers.</p>
        <p>
          Our system performs the translation of the query into a set of logic rules. As
noted before, this step was reworked to be completely ontology independent1. To
1 See [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] for the definition of the original filtering program, and Section 4.2 for more
details on the improvements introduced.
achieve this we moved the process of introducing some ontology-dependent set of
facts to the computation of the canonical model. Then, the filtering program is
loaded into the Datalog reasoner and the materialisation is updated taking into
account the newly introduced rules. The triples (ABox facts) produced by this
second round of materialisation are stored in a separate named graph to keep the
product of filtration separate from the canonical model. This is possible because
the signature of the atoms derived in the filtering program is separate from the
signature of the canonical model.
        </p>
        <p>Here we can see the real advantage of using named graphs to separate the
outcomes of different steps; when processing a new query, the only step we
need to take is dropping the named graph associated with the filtration from
the previous query, leaving unaltered all other triples. Better yet, here we have
the possibility to execute queries in parallel, each one associated with a separate
filtering program and hence a different named graph. The materialisation update
for each of the queries is isolated and does not interfere with the other processes.</p>
        <p>
          At this point, the task of gathering the answers to the query over the
input knowledge base is reduced to querying a materialised named graph for
the atoms representing the certain answers, which is straightforward for any
materialisation-based Datalog reasoner. Note that this step is slightly different
from the original implementation in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], where the underlying Datalog reasoner
most likely returned a (filtered) materialisation instead.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Improvements to the combined approach</title>
      <p>
        Here is a description of some of the more significant improvements introduced2
w.r.t. to the original approach presented in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
4.1
      </p>
      <sec id="sec-4-1">
        <title>RDFox adoption</title>
        <p>A main technical difference from the original work on the RSA combined
approach is the adoption of RDFox as a Datalog reasoner instead of DLV. This
choice has several advantages, but we had to overcome some challenges.</p>
        <p>RDFox does not provide direct support for function symbols (which are
required in the computation of the canonical model), but we can mimic this using
the Skolemization capabilities offered by the tool. In particular a logic rule with
function symbols</p>
        <p>A(?X) -&gt; R(?X,f(?X)), B(f(?X)) .
is turned into</p>
        <p>A(?X), SKOLEM("f",?X,?Y) -&gt; R(?X,?Y), B(?Y) .
2 For an up-to-date list of changes, fixes, and improvements we refer the reader to the
project repository.
where SKOLEM is an RDFox built-in atom that computes a unique identifier from
a sequence of terms ("f" and ?X in this example), storing it in the last term of
the atom (?Y in this case).</p>
        <p>It is worth noting that the SKOLEM functionality is in general more
powerful than a hash function3 since RDFox guarantees a bijective relation between
a specific sequence and its identifier. In other words, given the special atom
SKOLEM(?X,?Y,?Z,?K), we can compute ?K knowing the sequence of terms ?X,
?Y, ?Z, or alternatively “unpack” ?K into its original sequence ?X, ?Y, ?Z. We use
this property to optimise the filtering step.</p>
        <p>Another benefit of the introduction of RDFox is the ability to organize the
computation in named graphs, as described in Section 3.3, to reuse partial results
in the computation when necessary.</p>
        <p>In general, the introduction of RDFox, and a clever use of its features, allowed
us to keep the system somewhat closer to the realm of description logics4.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Improved filtering program</title>
        <p>RDFox is primarily an RDF reasoner and its ability to handle (extended) Datalog
makes it able to capture the entire RL profile. We were able to partially rewrite
and simplify the filtering step in the RSA combined approach: a) a first rewriting
step gets rid of all atoms with arity greater than 2 through reification; b)
filtering rules are then greatly simplified by making extensive use of the SKOLEM
functionality introduced above5.</p>
        <p>
          Example 1. Consider rule (3c) from the original filtering program in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] (w.r.t.
a query q(~x) = (~x; ~y) where ~x = x1; : : : ; xm, ~y = y1; : : : ; yn). Rule (3c)
computes the transitive closure of a predicate id, keeping track of identity between
anonymous terms w.r.t. a specific match for the input query.
        </p>
        <p>id(~x; ~y; u; v); id(~x; ~y; v; w) ! id(~x; ~y; u; w)
(1)
Given a function KEY to compute a new term that uniquely identifies a tuple
of terms, we can turn any n-ary atom into a set of n atoms of arity 2
using a well-known technique called reification. E.g., an atom P (x; y; z) becomes
P1(k; x); P2(k; y); P3(k; z), where k = KEY(x; y; z) and Pn, for 1 n arity(P ),
are fresh predicates of arity 2. Rule (1) then becomes
id1(k; x1); : : : ;idm+n(k; yn); idm+n+1(k; u); idm+n+2(k; v);
id1(j; x1); : : : ;idm+n(j; yn); idm+n+1(j; v); idm+n+2(j; w);
l := KEY(~x; ~y; u; w) ! id1(l; x1); : : : ; idm+n(l; yn);
idm+n+1(l; v); idm+n+2(l; w)
(2)
3 By “hash function” we mean any function that can map values of arbitrary size to
fixed-size values.
4 RDF triples are first-class citizens and only atoms with arity 2 are allowed.
5 Thus, avoiding some expensive joins that would slow down the computation (see</p>
        <p>
          Section 5 in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], especially the results for query q1).
        </p>
        <p>Using SKOLEM6, we are able to reduce the arity of a predicate P (see predicate
id in Rule (3)) without having to introduce arity(P ) additional fresh predicates.
Joins over multiple terms (id joining over (~x; ~y) in (1)) can now be rewritten
into simpler joins (id joining over a single term k) while the use of SKOLEM does
not introduce additional join operation7.</p>
        <p>id(k; j); SKOLEM(~x; ~y; u; v; j); id(k; l);SKOLEM(~x; ~y; v; w; l);</p>
        <p>SKOLEM(~x; ~y; u; w; t) ! id(k; t)
(3)
tu
4.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>Top and equality axiomatisation</title>
        <p>RDFox has built-in support for &gt; (top, truth or owl:Thing) and different kinds
of equality (using owl:sameAs), so that &gt; automatically subsumes any new class
introduced within an RDF triple, and equality between terms is always consistent
with its semantics.</p>
        <p>
          Unfortunately, in both cases we are not able to use these features directly.
We need to import axioms as Datalog rules, and those are not considered when
RDFox derives new &gt; subsumptions. The equality feature cannot be enabled
along with negation-as-failure, which is required for the combined approach and
is extensively used in our system. To work around this, we introduce the
axiomatisation for both concepts explicitly as explained in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>For every concept name C 2 NC and for every role name R 2 NR in the
input ontology, we add the following rules to RDFox:
owl:Thing[?X] :- C[?X] .</p>
        <p>owl:Thing[?X], owl:Thing[?Y] :- R[?X, ?Y] .</p>
        <sec id="sec-4-3-1">
          <title>This gives us the correct semantics for owl:Thing.</title>
          <p>For equality axiomatisation, we make owl:sameAs reflexive, symmetric and
transitive as follows:
owl:sameAs[?X, ?X] :- owl:Thing[?X] .
owl:sameAs[?Y, ?X] :- owl:sameAs[?X, ?Y] .</p>
          <p>owl:sameAs[?X, ?Z] :- owl:sameAs[?X, ?Y], owl:sameAs[?Y, ?Z] .
and introduce substitution rules to complete the axiomatisation. For every
concept name C 2 NC and role name R 2 NR in the input ontology, we add:
C[?Y] :- C[?X], owl:sameAs[?X, ?Y] .</p>
          <p>R[?Z, ?Y] :- R[?X, ?Y], owl:sameAs[?X, ?Z] .</p>
          <p>R[?X, ?Z] :- R[?X, ?Y], owl:sameAs[?Z, ?Z] .
6 https://docs.oxfordsemantic.tech/tuple-tables.html#rdfox-skolem
7 Rule 3 showcases how this functionality can be used in both “directions”: given a
previously skolemized term, we can unpack it in a single operation to retrieve the
corresponding sequence of terms and given a sequence of terms, we can pack them
into a new fresh term.</p>
        </sec>
      </sec>
      <sec id="sec-4-4">
        <title>Additional fixes</title>
        <p>
          We have also clarified and refined some specific details of the theoretical
definitions and their implementation reported in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          In the canonical model computation in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], the notIn predicate is introduced
to simulate the semantics of set membership and in particular the meaning of
notIn[a, b] is “a is not in set b”. During the computation of the canonical
model program we have complete knowledge of any set that might be used in
a notIn atom. For each such set S, and for each element a 2 S, we introduce
the fact in[a,S] in the canonical model. We then replace any occurrence of
notIn[?X, ?Y] in the original program EO with NOT in[?X, ?Y], where NOT is
the operator for negation-as-failure in RDFox.
        </p>
        <p>A similar approach has been used to redefine and implement the NI
predicate, representing the set of non-anonymous terms in the materialised canonical
model. We enumerate the elements of this set introducing the following rule:</p>
        <p>NI[?Y] :- named[?X], owl:sameAs[?X, ?Y] .
where the named atom represents the set of constants in the original ontology.</p>
        <p>A final improvement has been made on the computation of the cycle
function during the canonical model computation. The original definition involved a
search over all possible triples (A; R; B) where A; B 2 NC , R 2 NR in the
original ontology. We realised that traversing the whole space would significantly
slow down the computation, and is not necessary; we instead restrict our search
over all (A; R; B) triples that appear in a (T5) axiom A v 9R:B in the original
normalized ontology.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Evaluation</title>
      <p>
        Implementation details Our implementation is written in Scala and uses
RDFox8 as the underlying Datalog reasoner. At the time of writing,
development, and testing have been carried out using Scala v2.13.5 and RDFox v4.1.
Scala allows us to easily interface with Java libraries and in particular with
the OWLAPI [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] for easy ontology manipulation. We communicate with RDFox
through the Java wrapper API provided by the distribution.
      </p>
      <p>Testing environment All experiments were performed on an Intel(R) Xeon(R)
CPU E5-2640 v3 @ 2.60GHz with 16 real cores, extended via hyper-threading
to 32 virtual cores, 512 GB of RAM and running Fedora 33, kernel version
5.8.17-300.fc33.x86_64.</p>
      <p>
        The system has been tested against LUBM [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and Reactome9. Both
ontologies and associated datasets are taken from the PAGOdA distribution10. LUBM
8 https://www.oxfordsemantic.tech/product
9 https://elixir-europe.org/platforms/data/core-data-resources
10 https://www.cs.ox.ac.uk/isg/tools/PAGOdA/2015/jair/
      </p>
      <p>
        Approximation to RSA
datasets come in sizes 100 through 800 universities (in steps of 100). Reactome
dataset was sampled from 10% through 100% (in steps of 10%). We used the
same set of queries used in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], which provides 4 queries for LUBM and 3 queries
for Reactome. All measurements provided below are averages of at least 3 runs.
Scalability of the system In Figure 2 we show the scalability of our algorithm
for the approximation to RSA and the computation of the canonical model for
the approximated ontology. The two steps are query independent and present a
linear growth w.r.t. the dataset size, both in LUBM and Reactome.
      </p>
      <p>The filtering process is instead less dependent on the size of the data and
more dependent on its composition and distribution. As such, a bigger dataset
does not necessarily correspond to a greater amount of filtering, as shown in
Figure 3, where we reported the execution time for query 1 and 2 in Reactome.
This figure also shows how the filtering depends on the data distribution; both
queries take longer on size “50” than on other datasets (even larger ones) due to
its specific content.</p>
      <p>In general, we noticed that the time spent by the system on the filtering step
is considerably smaller than the time spent on the canonical model computation
(as described below, and shown in Figure 5).</p>
      <p>This unpredictability of the filtering step can “backfire” when a huge amount
of filtering is involved. In Figure 4 we show the filtering time for query 2 in
300
250
200
150
100
50
0
s
r
e
w
s
n
a
f
o
s
n
o
lii
m
LUBM along with the amount of unfiltered answers that the filtering program
needs to process. Of these, less than 1‰ is found to be a certain answers. Figure 4
confirms the previous claims that the filtering step grows proportionally to the
amount of filtering that is needed for a particular query. Finally, this figure shows
how our system is able to handle a gigantic filtering step, processing hundreds
of millions of facts in a reasonable amount of time.</p>
      <p>Canonical model computation vs. filtering Finally, Figure 5 shows how
execution time is distributed among the two main tasks of the combined
approach. Filtering takes consistently less that 20% of the total execution time,
when considering bigger datasets. As mentioned before, we can limit the impact
of the canonical model computation by factoring out the task and computing it
“offline” whenever we found ourselves in a scenario in which we need to perform
query answering over a fixed ontology.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Future development</title>
      <p>
        We presented RSAComb, an alternative and improved implementation of the
combined approach for CQ answering in RSA. The software presents a few
differences from the original description presented in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], along with several
enhancements. Our system relies on RDFox as a Datalog reasoner to offload part
of the computation. A customisable approximation step allows handling
unrestricted OWL 2 ontologies.
      </p>
      <p>
        RSAComb is currently used as part of an effort to improve the performance
of the OWL 2 reasoner PAGOdA [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. As such, future development of RSAComb
will be mainly influenced by requirements originating from the process of
integration of the system in PAGOdA.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Giacomo</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lembo</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenzerini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosati</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Data complexity of query answering in description logics</article-title>
          .
          <source>In: Proceedings, Tenth International Conference on Principles of Knowledge Representation and Reasoning</source>
          ,
          <source>Lake District of the United Kingdom, June 2-5</source>
          ,
          <year>2006</year>
          . pp.
          <fpage>260</fpage>
          -
          <lpage>270</lpage>
          . AAAI Press (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Giacomo</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lembo</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenzerini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosati</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Tractable reasoning and efficient query answering in description logics: The DL-Lite family</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          <volume>39</volume>
          (
          <issue>3</issue>
          ),
          <fpage>385</fpage>
          -
          <lpage>429</lpage>
          (
          <year>2007</year>
          ). https://doi.org/10.1007/s10817-007-9078-x
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Carral</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feier</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hitzler</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Pushing the boundaries of tractable ontology reasoning</article-title>
          .
          <source>In: The Semantic Web - ISWC 2014 - 13th International Semantic Web Conference, Riva del Garda, Italy, October 19-23</source>
          ,
          <year>2014</year>
          . Proceedings,
          <source>Part II. Lecture Notes in Computer Science</source>
          , vol.
          <volume>8797</volume>
          , pp.
          <fpage>148</fpage>
          -
          <lpage>163</lpage>
          . Springer (
          <year>2014</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -11915-1_
          <fpage>10</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Feier</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carral</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stefanoni</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>The combined approach to query answering beyond the OWL 2 profiles</article-title>
          .
          <source>In: Proceedings of the Twenty-Fourth International Joint Conference on Artificial Intelligence, IJCAI</source>
          <year>2015</year>
          ,
          <string-name>
            <given-names>Buenos</given-names>
            <surname>Aires</surname>
          </string-name>
          , Argentina,
          <source>July 25-31</source>
          ,
          <year>2015</year>
          . pp.
          <fpage>2971</fpage>
          -
          <lpage>2977</lpage>
          . AAAI Press (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Guo</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pan</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heflin</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>LUBM: A benchmark for OWL knowledge base systems</article-title>
          .
          <source>Journal of Web Semantics</source>
          <volume>3</volume>
          (
          <issue>2-3</issue>
          ),
          <fpage>158</fpage>
          -
          <lpage>182</lpage>
          (
          <year>2005</year>
          ). https://doi.org/10.1016/j.websem.
          <year>2005</year>
          .
          <volume>06</volume>
          .005, https://doi.org/10.1016/j. websem.
          <year>2005</year>
          .
          <volume>06</volume>
          .005
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bechhofer</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The OWL API: A java API for OWL ontologies</article-title>
          .
          <source>Semantic Web</source>
          <volume>2</volume>
          (
          <issue>1</issue>
          ),
          <fpage>11</fpage>
          -
          <lpage>21</lpage>
          (
          <year>2011</year>
          ). https://doi.org/10.3233/SW-2011-0025, https: //doi.org/10.3233/SW-2011-0025
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Kontchakov</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lutz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolter</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zakharyaschev</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The combined approach to query answering in dl-lite</article-title>
          .
          <source>In: Principles of Knowledge Representation and Reasoning: Proceedings of the Twelfth International Conference, KR 2010</source>
          , Toronto, Ontario, Canada, May 9-
          <issue>13</issue>
          ,
          <year>2010</year>
          . AAAI Press (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Lutz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The complexity of conjunctive query answering in expressive description logics</article-title>
          .
          <source>In: Automated Reasoning</source>
          , 4th International Joint Conference,
          <string-name>
            <surname>IJCAR</surname>
          </string-name>
          <year>2008</year>
          , Sydney, Australia,
          <source>August 12-15</source>
          ,
          <year>2008</year>
          ,
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>5195</volume>
          , pp.
          <fpage>179</fpage>
          -
          <lpage>193</lpage>
          . Springer (
          <year>2008</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -71070-7_
          <fpage>16</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Lutz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolter</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Conjunctive query answering in the description logic EL using a relational database system</article-title>
          . In: Boutilier,
          <string-name>
            <surname>C</surname>
          </string-name>
          . (ed.)
          <source>IJCAI</source>
          <year>2009</year>
          ,
          <source>Proceedings of the 21st International Joint Conference on Artificial Intelligence</source>
          , Pasadena, California, USA, July
          <volume>11</volume>
          -
          <issue>17</issue>
          ,
          <year>2009</year>
          . pp.
          <fpage>2070</fpage>
          -
          <lpage>2075</lpage>
          (
          <year>2009</year>
          ), http://ijcai. org/Proceedings/09/Papers/341.pdf
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nenov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Combining rewriting and incremental materialisation maintenance for datalog programs with equality</article-title>
          .
          <source>In: Proceedings of the Twenty-Fourth International Joint Conference on Artificial Intelligence, IJCAI</source>
          <year>2015</year>
          ,
          <string-name>
            <given-names>Buenos</given-names>
            <surname>Aires</surname>
          </string-name>
          , Argentina,
          <source>July 25-31</source>
          ,
          <year>2015</year>
          . pp.
          <fpage>3127</fpage>
          -
          <lpage>3133</lpage>
          . AAAI Press (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nenov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Handling owl: sameas via rewriting</article-title>
          .
          <source>In: Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence, January 25-30</source>
          ,
          <year>2015</year>
          , Austin, Texas, USA. pp.
          <fpage>231</fpage>
          -
          <lpage>237</lpage>
          . AAAI Press (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nenov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Incremental update of datalog materialisation: the backward/forward algorithm</article-title>
          .
          <source>In: Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence, January 25-30</source>
          ,
          <year>2015</year>
          , Austin, Texas, USA. pp.
          <fpage>1560</fpage>
          -
          <lpage>1568</lpage>
          . AAAI Press (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nenov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Olteanu</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Parallel materialisation of datalog programs in centralised, main-memory RDF systems</article-title>
          .
          <source>In: Proceedings of the Twenty-Eighth AAAI Conference on Artificial Intelligence, July 27 -31</source>
          ,
          <year>2014</year>
          ,
          <string-name>
            <given-names>Québec</given-names>
            <surname>City</surname>
          </string-name>
          , Québec, Canada. pp.
          <fpage>129</fpage>
          -
          <lpage>137</lpage>
          . AAAI Press (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Nenov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Banerjee</surname>
          </string-name>
          , J.:
          <article-title>Rdfox: A highlyscalable RDF store</article-title>
          .
          <source>In: The Semantic Web - ISWC 2015 - 14th International Semantic Web Conference</source>
          , Bethlehem, PA, USA, October
          <volume>11</volume>
          -
          <issue>15</issue>
          ,
          <year>2015</year>
          , Proceedings,
          <source>Part II. Lecture Notes in Computer Science</source>
          , vol.
          <volume>9367</volume>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>20</lpage>
          . Springer (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ortiz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudolph</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simkus</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Query answering in the horn fragments of the description logics SHOIQ and SROIQ</article-title>
          .
          <source>In: IJCAI 2011, Proceedings of the 22nd International Joint Conference on Artificial Intelligence</source>
          , Barcelona, Catalonia, Spain,
          <source>July 16-22</source>
          ,
          <year>2011</year>
          . pp.
          <fpage>1039</fpage>
          -
          <lpage>1044</lpage>
          . IJCAI/AAAI (
          <year>2011</year>
          ). https://doi.org/10.5591/978-1-
          <fpage>57735</fpage>
          -516-8/
          <fpage>IJCAI11</fpage>
          -178
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pan</surname>
            ,
            <given-names>J.Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guclu</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kollingbaum</surname>
            ,
            <given-names>M.J.:</given-names>
          </string-name>
          <article-title>A combined approach to incremental reasoning for EL ontologies</article-title>
          .
          <source>In: Web Reasoning and Rule Systems - 10th International Conference, RR</source>
          <year>2016</year>
          ,
          <article-title>Aberdeen</article-title>
          , UK, September 9-
          <issue>11</issue>
          ,
          <year>2016</year>
          ,
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>9898</volume>
          , pp.
          <fpage>167</fpage>
          -
          <lpage>183</lpage>
          . Springer (
          <year>2016</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -45276-0_
          <fpage>13</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Stefanoni</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Answering conjunctive queries over el knowledge bases with transitive and reflexive roles</article-title>
          .
          <source>CoRR abs/1411</source>
          .2516 (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Stefanoni</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Introducing nominals to the combined query answering approaches for EL</article-title>
          . In: desJardins,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Littman</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.L</surname>
          </string-name>
          . (eds.)
          <source>Proceedings of the Twenty-Seventh AAAI Conference on Artificial Intelligence, July 14- 18</source>
          ,
          <year>2013</year>
          , Bellevue, Washington, USA. AAAI Press (
          <year>2013</year>
          ), http://www.aaai.org/ ocs/index.php/AAAI/AAAI13/paper/view/6156
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <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>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Pagoda: Payas-you-go ontology query answering using a datalog reasoner</article-title>
          .
          <source>Journal of Artificial Intelligence Research</source>
          <volume>54</volume>
          ,
          <fpage>309</fpage>
          -
          <lpage>367</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>