<!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>Efficient Dependency Analysis for Existential Rules</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Larry González</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alex Ivliev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Markus Krötzsch</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stephan Mennicke</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Knowledge-Based Systems Group</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>TU Dresden</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Computer Science / cfaed / ScaDS.AI / Centre for Tactile Internet with Human-in-the-Loop</institution>
          ,
          <addr-line>CeTI</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>This short paper reviews the main contributions of our recent work on static analysis of existential rules (a.k.a. tuple-generating dependencies). Between such rules, several kinds of logical relationships - also called dependencies in an unfortunate clash of terminology - are of interest, but their computation highly intractable (Σ2P-complete). We develop new, optimised procedures for this task, and present a prototype implementation that scales to rule sets with more than 100,000 rules. This allows us to perform much faster acyclicity checks and to identify rule sets that admit efficient core computation via the standard chase.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Existential rules (or tuple-generating dependencies) are a versatile logical formalism with
relevance in databases [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1, 2, 3</xref>
        ], ontological reasoning [
        <xref ref-type="bibr" rid="ref4 ref5 ref6 ref7">4, 5, 6, 7</xref>
        ], and declarative computing in
general [
        <xref ref-type="bibr" rid="ref10 ref8 ref9">8, 9, 10</xref>
        ]. An existential rule (or just rule) ρ is a formula
ρ = ∀, . φ[, ] → ∃. ψ[, ],
(1)
where φ and ψ are conjunctions of first-order atoms that may use variables from the (mutually
disjoint) sets , ,  as indicated. We call φ the body (denoted body(ρ)) and ψ the head (denoted
head(ρ)). Universal quantifiers are usually omitted.
      </p>
      <p>
        Computing with such rules can be challenging, especially since a “forward” application of
rules (i.e., materialisation of consequences) requires new nulls to be introduced in order to satisfy
existential quantifiers. Many variants of the chase procedure [
        <xref ref-type="bibr" rid="ref1 ref11">11, 1</xref>
        ] offer strategies for handling
the two major complications that this brings:
1. Non-termination: If rules recursively introduce new nulls, the outcome of the chase might
not be finite.
2. Redundancy: Nulls that seem necessary during the chase might actually be redundant if
other domain elements suffice to satisfy the same conditions.
The challenge of non-termination has inspired much research in acyclicity conditions, which
suffice to ensure chase termination (Cuenca Grau et al. offer an overview [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], though further
approaches have since been proposed [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]). Redundancy in turn can be eliminated by computing
cores [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], and this is crucial especially when adding non-monotonic features [
        <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
        ].
      </p>
      <p>
        Approaches to both of the above challenges may leverage logical dependencies between rules
(which have also been called reliances to avoid the name clash with database dependencies
meaning rules). Early works focused on cases where a rule ρ2 positively relies on a rule ρ1 in
the sense that an application of rule ρ1 might trigger an application of rule ρ2. They are used
to detect several forms of acyclity [
        <xref ref-type="bibr" rid="ref1 ref15 ref4">4, 1, 15</xref>
        ].1 When adding negation, a rule might also inhibit
another, and such negative reliances are used to define semantically well-behaved fragments
of non-monotonic existential rules [
        <xref ref-type="bibr" rid="ref14 ref16">14, 16</xref>
        ]. A third kind of dependency are restraints, which
indicate that the application of one rule might render another rule application redundant (which
would be detected in the standard chase, a.k.a. restricted chase). Restraints are used to define
core-stratified rule sets [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and a well-behaved semantics for queries with negation [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        Surprisingly, given this breadth of applications, rule dependencies are hardly supported in
practice. Besides our work, we know just one tool for positive reliances (Graal [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]), and none
for negative reliances or restraints. Indeed, the high complexity of the problem (typically
Σ2Pcomplete) is a challenge for taking advantage of such analysis in time-critical tasks. Moreover, as
opposed to many other static analyses, dependency computation is not mainly an application of
available (chase-like) algorithms.
      </p>
      <p>
        In our work [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], we have therefore developed new optimised algorithms for the computation
of positive reliances and restraints, and evaluated their performance on real-world rule sets with
large numbers of rules (mainly obtained by converting ontologies). Our key contributions were:
• optimised methods for the Σ2P-complete tasks of checking dependencies,
• optimisations for computing all dependencies in large rule sets,
• a prototype C++ implementation, and
• evaluations of the individual optimisations, and of the potential of these analyses for solving
common tasks at realistic scales.
      </p>
      <p>
        The use cases we evaluated are checking acyclicity of the graph of rule dependencies [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], speeding
up the check for model-faithful acyclicity [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], and checking core stratification of rule sets [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
The latter condition ensures that the outcome of the (expensive, impractical) core chase can be
obtained by the (implemented, practical) standard chase.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Positive Reliances and Restraints</title>
      <p>
        Many readers will be familiar with our notation – detailed preliminaries are found in the long
paper [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. We consider first-order interpretations ℐ that may contain constants and named
nulls, where databases can be considered finite interpretations. For a rule ρ, a homomorphism
1Deutsch et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] were often overlooked in related works on that specific topic, maybe due to their choice, in the
face of the obvious terminological dilemma, to not name the concept at all. Of course, the basic idea of positive
dependency still predates their work and is already found in the definition of stratified and acyclic (non-recursive)
logic programs.
h : body(ρ) → ℐ is called a match of ρ in ℐ. A match is satisfied if it can be extended to a
homomorphism h′ : head(ρ) → ℐ. If a match is not satisfied, it can be made so by applying the
rule, introducing new nulls for existential variables as required. A sequence of iterative, fair rule
applications is called standard chase. We capture the idea that an application of ρ1 immediately
enables a new application of ρ2:
Definition 1. A rule ρ2 positively relies on a rule ρ1, written ρ1 ≺ + ρ2, if there are interpretations
ℐa ⊆ ℐ b and a function h2 such that
(a) ℐb is obtained from ℐa by applying ρ1,
(b) h2 is an unsatisfied match for ρ2 on ℐb, and
(c) h2 is not a match for ρ2 on ℐa.
      </p>
      <p>For example, consider rules ρ1 = p(x) → ∃v. r(x, v) ∧ q(v) and ρ2 = s(x) ∧ r(x, y) → t(y).
Then ρ1 ≺ + ρ2 with ℐa = {p(a), s(a)} and ℐb = ℐa ∪ {r(a, n), q(n)}. On the other hand, the rule
ρ3 = s(y) ∧ r(x, y) → t(y) does not positively rely on ρ1, since the required precondition s(y)
cannot hold for the null n newly introduced when applying ρ1.</p>
      <p>
        Detecting positive reliances is feasible in Σ2P since the relevant interpretations ℐa and ℐb can be
small (restricted to images of atoms found in the rules), but it inherits the Σ2P-hardness of deciding
if a rule has an unsatisfied match [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. If the relation ≺ + has no cycles on a given set of rules Σ,
then Σ is agrd (“acyclic graph of rule dependencies”) and the chase is guaranteed to terminate on
all databases [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        The second kind of dependencies we consider are restraints. We say that ρ1 restrains ρ2 if it is
possible that an application of ρ1 make a null obsolete that was introduced by ρ2. Being “obsolete”
is captured by the concept of an alternative match, first introduced in the study of cores [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]:
Definition 2. Let ℐa ⊆ ℐ b be interpretations such that ℐa was obtained by applying the rule ρ
for the match h that is extended to h′. A homomorphism hA : h′(head(ρ)) → ℐb is an alternative
match of h′ and ρ on ℐb if
(a) hA(t) = t for all terms t in h(body(ρ)), and
(b) there is a null n in h′(head(ρ)) that does not occur in hA(h′(head(ρ))).
      </p>
      <p>
        An alternative match therefore specifies a way in which (part) of a rule head might have
been satisfied with fewer new nulls. A restraint is now defined as a dependency between rules
where one rule might create a new alternative match for the other. As for positive reliances,
deciding restraints is Σ2P-complete. Instead of reproducing the formal definition, which is similar
to Definition 1 [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], we show an example:
Example 1. The rule ρ1 = r(x, y) → s(y, x) restrains ρ2 = r(x, y) → ∃v.s(y, v), denoted ρ1 ≺ □ ρ2.
Indeed, given ℐ = {r(a, b)}, we might apply ρ2 to get ℐa = {r(a, b), s(b, n)} with n a new null;
applying ρ1 now yields ℐb = ℐa ∪ {s(b, a)}, which enables an alternative match for the previous
application of ρ2 (using b instead of n as a value for v). In many cases, such redundant nulls can
be avoided by applying rules in an order that respects restraints, which is the intuition behind the
notion of core stratification [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Computing Positive Reliances and Restraints</title>
      <p>
        In this section, we describe the optimisation techniques we implemented to compute positive
reliances and restraints. We distinguish local optimisations that focus on determining the
dependency between a pair of rules, and global optimisation that improve performance for computing
all dependencies for a rule set. Complete algorithms and details on our optimisations are in the
long version of this paper [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>Local Optimisations We consider two rules ρ1 and ρ2 of the form ρi = bodyi → ∃i. headi,
and we want to check if ρ1 ≺ + ρ2. It turns out that the interpretations ℐa and ℐb in Definition 1
can be assumed to contain only atoms that occur in ρ1 or ρ2. Furthermore, the definition requires
that ρ1 must produce atoms that can be directly matched by ρ2. Therefore, our algorithms
search through potential mapped subsets body2m ⊆ body2, trying to find a substitution η such that
body2mη ⊆ head1η. Such an η can represent the matches required in Definition 1.</p>
      <p>Unfortunately, one can not restrict to single atoms here: in the worst case, we may need to
analyse all subsets body2m ⊆ body2, starting from singleton sets followed by extending those sets
atom by atom. To do this, we execute a depth-first search over all body2m, but we also prune the
search space in cases where we find that adding further atoms to body2m does not have a chance
of success. We construct mapped sets in a lexicographic order that prevents sets from being
considered more than once, and we stop as soon as a positive reliance is detected.</p>
      <p>The optimised search for restraints uses similar ideas, but considers slightly different cases. In
both algorithms, the key is the careful analysis of cases where the search can be aborted early.
Global Optimisations Even with very efficient algorithms to compare a pair of rules, the
quadratic number of possible pairs can be prohibitive in large rule sets. To mitigate this, we create
an index that allows us to restrict attention to pairs of rules that share predicate names (in head
and body for positive reliances, and in head and head for restraints). Moreover, we developed a
structure-based similarity detection that allows us to cache and reuse results for isomorphic pairs
of rules. Indeed, large rule sets often contain rules of recurring, uniform shapes that are amenable
to such a caching strategy.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Evaluation Results</title>
      <p>
        We have implemented the algorithms on top of VLog (Release 1.3.5), a free existential rule
engine [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Using our prototype, we have evaluated the algorithms regarding (1) effectiveness of
the individual optimisations, and (2) utility for solving practical problems. All experiments were
performed on 201 rule sets, generated from the Oxford Ontology Repository. We give a short
overview of the main outcomes of our experiments here; further details and results can be found
in the full publication [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>In the first part of the evaluation, we found that local and global optimisations lead to significant
performance gains, both individually (comparing only-local/only-global to a baseline) and in
combination (comparing global+local to only-local/only-global). We conclude that both kinds of
methods are justified and practically useful. We also observed that the computation of positive
reliances was generally faster than the computation of restraints, and that for computing restraints,
local optimisations were more effective than global optimisations.</p>
      <p>For the second part of our evaluation, we used our prototype for checking rule sets for (a)
acyclicity of the graph of rule dependencies (agrd), (b) model-faithful acyclicity (MFA), and (c)
core-stratification of real-world rule sets.</p>
      <p>
        For task (a), our prototype consistently outperformed Graal [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], the only other agrd
implementation. Furthermore, we found more acyclic rule sets because our notion of positive reliances
is stricter than the one used by Graal, while still guaranteeing termination of acyclic rule sets.
      </p>
      <p>For task (b), we took advantage of the fact that MFA computation can equivalently be performed
individually on strongly connected components of the dependency graph of task (a). Comparing
to the native MFA implementation in VLog, this refined approach led to much faster checking
times in spite of the additional effort of computing dependencies.</p>
      <p>
        For task (c), we checked if rule sets are core-stratified , i.e., if the graph of positive reliances
and restraints does not contain a cycle through a restraint edge. In this case, we obtain a
strategy of applying rules in such a way that the standard chase produces a core model, without
requiring the (infeasibly expensive) additional computations of the core chase [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Among
the 201 ontologies we analysed, 44 were found to be core-stratified, and this number went up
to 75 when decomposing large rule heads into pieces (a well-known, semantically equivalent
transformation [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). These results are the first to show that there are real-world rule sets with this
favourable theoretical property.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions and Outlook</title>
      <p>We have shown that even the complex forms of reliances arising for existential rules can be
implemented efficiently, and that doing so enables applications of practical and theoretical
interest. In particular, several previously proposed approaches can be made significantly faster or
implemented for the first time at all.</p>
      <p>As a further step, our methods can be readily adapted to cover negative reliances. A different
research path is to ask how knowledge of dependencies can be used to speed up the chase. Indeed,
dependencies embody characteristics of existential rule reasoning that are not found in other rule
languages and, therefore, deserve further attention.</p>
      <p>
        On the practical side, we are currently integrating our techniques into our recently released
rule engine Nemo [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ],2 an all-new Rust implementation that focusses on fast and scalable
inmemory data processing. In this context, rule dependencies will play a role for improving chase
performance, for obtaining better results (preferably core models), and for providing additional
services like acyclicity checking.
      </p>
      <p>Acknowledgments This work was supported in DFG grant 389792660 (TRR 248, Center
for Perspicuous Systems), by BMBF in grants ScaDS.AI, ITEA-01IS21084 (InnoSale), and
13GW0552B (KIMEDS), and in DAAD grant 57616814 (SECAI).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Deutsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nash</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. B.</given-names>
            <surname>Remmel</surname>
          </string-name>
          ,
          <article-title>The chase revisited</article-title>
          ,
          <source>in: Proc. PODS'08</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          ,
          <year>2008</year>
          , pp.
          <fpage>149</fpage>
          -
          <lpage>158</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Fagin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. G.</given-names>
            <surname>Kolaitis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. J.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Popa</surname>
          </string-name>
          ,
          <article-title>Data exchange: semantics and query answering</article-title>
          ,
          <source>Theoretical Computer Science</source>
          <volume>336</volume>
          (
          <year>2005</year>
          )
          <fpage>89</fpage>
          -
          <lpage>124</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Grahne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Onet</surname>
          </string-name>
          ,
          <article-title>Anatomy of the chase</article-title>
          ,
          <source>Fundam. Inform</source>
          .
          <volume>157</volume>
          (
          <year>2018</year>
          )
          <fpage>221</fpage>
          -
          <lpage>270</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.-F.</given-names>
            <surname>Baget</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Leclère</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.-L. Mugnier</surname>
          </string-name>
          , E. Salvat,
          <article-title>On rules with existential variables: Walking the decidability line</article-title>
          ,
          <source>Artif. Intell</source>
          .
          <volume>175</volume>
          (
          <year>2011</year>
          )
          <fpage>1620</fpage>
          -
          <lpage>1654</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Calì</surname>
          </string-name>
          , G. Gottlob,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lukasiewicz</surname>
          </string-name>
          ,
          <article-title>A general Datalog-based framework for tractable query answering over ontologies</article-title>
          ,
          <source>J. Web Semant</source>
          .
          <volume>14</volume>
          (
          <year>2012</year>
          )
          <fpage>57</fpage>
          -
          <lpage>83</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Calì</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pieris</surname>
          </string-name>
          ,
          <article-title>Towards more expressive ontology languages: The query answering problem</article-title>
          ,
          <source>Artif. Intell</source>
          .
          <volume>193</volume>
          (
          <year>2012</year>
          )
          <fpage>87</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>B.</given-names>
            <surname>Cuenca Grau</surname>
          </string-name>
          , I. Horrocks,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kupke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Magka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Motik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Acyclicity notions for existential rules and their application to query answering in ontologies</article-title>
          ,
          <source>J. of Artificial Intelligence Research</source>
          <volume>47</volume>
          (
          <year>2013</year>
          )
          <fpage>741</fpage>
          -
          <lpage>808</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          , E. Sallinger,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Gottlob, The Vadalog system: Datalog-based reasoning for knowledge graphs</article-title>
          ,
          <source>Proc. VLDB Endowment</source>
          <volume>11</volume>
          (
          <year>2018</year>
          )
          <fpage>975</fpage>
          -
          <lpage>987</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bourgaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Carral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rudolph</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Thomazo</surname>
          </string-name>
          ,
          <article-title>Capturing homomorphismclosed decidable queries with existential rules</article-title>
          ,
          <source>in: Proc. 18th Int. Conf. on Principles of Knowledge Representation and Reasoning (KR'21)</source>
          , IJCAI,
          <year>2021</year>
          , pp.
          <fpage>141</fpage>
          -
          <lpage>150</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Carral</surname>
          </string-name>
          , I. Dragoste,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lewe</surname>
          </string-name>
          ,
          <article-title>Chasing sets: How to use existential rules for expressive reasoning</article-title>
          ,
          <source>in: Proc. IJCAI'19</source>
          ,
          <string-name>
            <surname>IJCAI</surname>
          </string-name>
          ,
          <year>2019</year>
          , pp.
          <fpage>1624</fpage>
          -
          <lpage>1631</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Benedikt</surname>
          </string-name>
          , G. Konstantinidis,
          <string-name>
            <given-names>G.</given-names>
            <surname>Mecca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Motik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Papotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Santoro</surname>
          </string-name>
          , E. Tsamoura,
          <article-title>Benchmarking the chase</article-title>
          ,
          <source>in: Proc. PODS'17</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          ,
          <year>2017</year>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>52</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Carral</surname>
          </string-name>
          , I. Dragoste,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <article-title>Restricted chase (non)termination for existential rules with disjunctions</article-title>
          ,
          <source>in: Proc. IJCAI'17</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>922</fpage>
          -
          <lpage>928</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ellmauthaler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mennicke</surname>
          </string-name>
          ,
          <article-title>Answering queries with negation over existential rules</article-title>
          ,
          <source>in: Proc. 36th AAAI Conf. on Artificial Intelligence (AAAI'22)</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>5626</fpage>
          -
          <lpage>5633</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <article-title>Computing cores for existential rules with the standard chase and ASP</article-title>
          , in
          <source>: Proc. 17th Int. Conf. on Princ. of Knowl. Repr. and Reasoning (KR'20)</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>603</fpage>
          -
          <lpage>613</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Meier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , G. Lausen,
          <article-title>On chase termination beyond stratification</article-title>
          ,
          <source>PVLDB</source>
          <volume>2</volume>
          (
          <year>2009</year>
          )
          <fpage>970</fpage>
          -
          <lpage>981</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>D.</given-names>
            <surname>Magka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Horrocks</surname>
          </string-name>
          ,
          <article-title>Computing stable models for nonmonotonic existential rules</article-title>
          ,
          <source>in: Proc. IJCAI'13</source>
          , AAAI Press/IJCAI,
          <year>2013</year>
          , pp.
          <fpage>1031</fpage>
          -
          <lpage>1038</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Baget</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Leclère</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mugnier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rocher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sipieter</surname>
          </string-name>
          ,
          <article-title>Graal: A toolkit for query answering with existential rules</article-title>
          ,
          <source>in: Proc. RuleML'15</source>
          , Springer,
          <year>2015</year>
          , pp.
          <fpage>328</fpage>
          -
          <lpage>344</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>L.</given-names>
            <surname>González</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ivliev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mennicke</surname>
          </string-name>
          ,
          <article-title>Efficient dependency analysis for rule-based ontologies</article-title>
          ,
          <source>in: Proc. ISWC'22</source>
          , Springer,
          <year>2022</year>
          , pp.
          <fpage>267</fpage>
          -
          <lpage>283</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J.</given-names>
            <surname>Urbani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Jacobs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <article-title>Column-oriented Datalog materialization for large knowledge graphs</article-title>
          ,
          <source>in: Proc. AAAI'16</source>
          , AAAI Press,
          <year>2016</year>
          , pp.
          <fpage>258</fpage>
          -
          <lpage>264</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ivliev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ellmauthaler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Gerlach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Marx</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Meißner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Meusel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          , Nemo:
          <article-title>First glimpse of a new rule engine</article-title>
          ,
          <source>in: Proc. 39th Int. Conf. on Logic Programming</source>
          ,
          <source>ICLP 2023 Technical Communications</source>
          , EPTCS, to appear.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>