<!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>Datalog-based Reasoning with Heuristics over Knowledge Graphs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Teodoro Baldazzi</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Davide Benedetto</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matteo Brandetti</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adriano Vlad</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luigi Bellomarini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emanuel Sallinger</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Banca d'Italia</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>TU Wien, Faculty of Informatics</institution>
          ,
          <addr-line>Vienna</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Università Roma Tre, Department of Computer Science and Engineering</institution>
          ,
          <addr-line>Rome</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of Oxford, Department of Computer Science</institution>
          ,
          <addr-line>Oxford</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <fpage>114</fpage>
      <lpage>126</lpage>
      <abstract>
        <p>Datalog+/- has recently emerged as a family of powerful languages for ontological reasoning on knowledge graphs (KGs). Yet, performing reasoning tasks on real-world scenarios that feature large inputs and recursions, e.g., answering Boolean Conjunctive Queries (BCQs), can be very onerous even for modern Datalog-based systems. To tackle this problem, we introduce a novel reasoning technique that adopts heuristic search strategies to guide the evaluation of Datalog+/- programs and optimize BCQ answering. We apply our methodology to eficiently solve time- and space-demanding tasks on financial KGs.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Datalog+/-</kwd>
        <kwd>reasoning</kwd>
        <kwd>knowledge graph</kwd>
        <kwd>heuristic search</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Recent years have witnessed a rising interest, both in academia and industry, towards querying
and exploiting large amounts of data in the form of knowledge graphs (KGs). This led to the
development of intelligent systems that manage such data as the extensional component of
KGs and infer new intensional knowledge via ontological reasoning mechanisms. To achieve
this, modern applications require powerful logic languages for knowledge representation [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
that provide full support for recursion, joins and existential quantification, essential features for
graph navigation and ontological reasoning, while sustaining tractability [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Datalog± Reasoning. Among them, Datalog± [
        <xref ref-type="bibr" rid="ref3 ref4 ref5 ref6">3, 4, 5, 6</xref>
        ] members (technically, fragments) have
recently emerged, extending Datalog [
        <xref ref-type="bibr" rid="ref10 ref7 ref8 ref9">7, 8, 9, 10</xref>
        ] with existential quantification and covering,
in some cases, the above requirements. Datalog± rules are function-free Horn clauses that may
include existentials, i.e., tuple-generating dependencies (TGDs). The semantics of a Datalog±
program can be defined in an operational way via the chase [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]: given a database  and a set
Σ of rules in input, it adds new tuples to  until Σ is satisfied, introducing freshly generated
symbols (technically, labelled nulls) that act as placeholders for existential quantification. The
navigational capabilities ofered by Datalog, empowered by recursion in combination with
arbitrary joins, are vital for expressing complex reasoning tasks over KG.
      </p>
      <p>
        Nonetheless, graph traversal remains a very time- and space-demanding task, especially in
the presence of large inputs, as it potentially involves a blowup of the generated facts [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. In
this context, answering Boolean Conjunctive Queries (BCQs) – i.e., queries whose answer is
a Boolean value – is a particularly relevant case, as often only a subset of the generated
facts actually contributes to answering the query [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Indeed, standard BCQ evaluation
approaches (both materialization and streaming ones) are domain-unaware, that is, they do
not exploit external knowledge of the domain to guide chase and query answering. This
may cause a significantly superfluous computation in the number of generated facts, heavily
afecting reasoning performance. This limitation also characterizes state-of-the-art optimization
techniques such as semi-naive evaluation [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], which prevents the discovery of duplicated facts
by evaluating only the newly generated ones, and Magic Sets [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], a top-down strategy that,
starting from the query, builds derivation trees that search for matching facts in the database.
      </p>
      <p>
        In this work, we investigate the generation of superfluous facts in recursive settings when
answering BCQs. We contribute a novel reasoning approach that tackles this problem and
provides an optimized way to evaluate Datalog± rules. Let us consider the following example.
Example 1. A trafic volume scenario on a geographic knowledge graph [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>Road(p1, p2, tv), p1 = A → Route(p1, p2, tv)
Route(p1, p2, tv1), Road(p2, p3, tv2), p1 ̸= p3 → Route(p1, p3, tv1 + tv2)</p>
      <p>Route(p1, p2, tv), ttv = (tv), ttv ≥ thold → HighTrafic (p1, p2)
A road from city A to a city 2 identifies a route featuring a trafic volume  (rule 1). If there is a
route from 1 to 2 and a road from 2 to another city 3, then there is a route from 1 to 3. The
resulting trafic volume is the sum of the one from 1 to 2 and from 2 to 3 (rule 2). The overall
set of itineraries from 1 to 2 is highly traficated (HighTrafic) if the total trafic volume of all
possible routes from 1 to 2 is greater than or equal to a threshold thold (rule 3).</p>
      <sec id="sec-1-1">
        <title>The msum operator represents a monotonic aggregation [12] that</title>
        <p>sums all the trafic volumes of the routes from 1 to 2. Note that
distinct routes may have one or more roads in common. Consider,
as ontological reasoning task, the BCQ  = HighTrafic (A, B) ∧
HighTrafic (A, L) to check whether the set of routes from A to B
and the one from A to L are highly traficated, i.e., their trafic
volume is greater than or equal to thold = 18. The graph in Figure 1,
represents the roads (black edges, labelled with their daily average
trafic volume in the order of thousands) that connect pairs of cities
(nodes). Consider an input database  containing an extensional
fact of the form Road(x,y,tv) for each road in the graph. It can be
observed that the answer to  is indeed positive. However, there are
(1)
(2)
(3)</p>
        <p>B
E
1
3
HighTraffic
C</p>
        <p>3
6
5</p>
        <p>HighTraffic
A
D
H
7
18
3</p>
        <p>3
6
2
F
3 4
L</p>
        <p>G</p>
        <p>
          I
multiple ways to activate the above rules on  to achieve such answer, causing the generation of
a distinct number of facts and, consequently, an impact on the performance of the computation.
For instance, by activating rule 2 from Route(A,E,3) and Road(E,G,1), we generate Route(A,G,4).
Similarly, Route(A,F,8) derives from Route(A,D,6) and Road(D,F,2). Then, by triggering again
rule 2 on such newly generated facts, we create Route(A,I,7) from Road(G,I,3), Route(A,H,8)
from Road(G,H,4), and Route(A,H,11) from Road(F,H,3). Finally, the aggregated trafic volume of
Route(A,L,15) and Route(A,L,18) exceeds 18, thus HighTrafic (A,L) is produced via rule 3. Indeed,
such approach generates both facts that are not used to answer  (e.g. Route(A,I,7), and facts
that provide an unnecessary contribution to pass the threshold (e.g. Route(A,L,15)).
Informed Search and Reasoning. With this work, we propose a novel reasoning methodology
to eficiently solve BCQ answering tasks in the presence of large inputs and recursive Datalog ±
settings, limiting the generation of superfluous facts in the chase. To achieve this, we consider
the task as an informed search problem and we optimize the reasoning process by injecting
into the program specific heuristics that prioritize the selection of facts for rule evaluation.
We focus on Warded Datalog± [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], a powerful Datalog± fragment. It encompasses both a
high expressive power, capturing all SPARQL queries under OWL 2 QL entailment regime
and set semantics, as well as a very good trade-of with data complexity, featuring PTIME for
the reasoning [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Moreover, thanks to its syntactic properties, the Warded fragment ensures
the termination of the chase procedure [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. With reference to Example 1, we prioritize the
rule activation for roads with the highest trafic volume and whose destination node features
the highest number of roads leading into it. Indeed, by applying our methodology with such
heuristic, we activate rule 1 from Road(A,C,6), since it features 2 roads leading into C and a
trafic volume of 6. Similarly, we then trigger rule 2 on Route(A,C,6) and Road(C,H,5), generating
Route(A,H,11). Finally, Route(A,L,18) is created by prioritizing Road(H,L,7): since its trafic
volume is equal to thold, HighTrafic (A,L) is produced via rule 3.
        </p>
        <p>
          More in detail, our contributions can be summarized as follows.
• We present heuristic-based reasoning, a novel approach to optimize the evaluation of
BCQ answering tasks. We formalize ontological reasoning to answer BCQs as a search
problem and we exploit informed search techniques to evaluate Warded Datalog± TGDs in
an eficient fashion, guiding rule activation according to fitting heuristics.
• We discuss real-world KG applications of our methodology to solve two computationally
hard scenarios in the financial domain, namely Close Link and Company Control, by employing
empirically-defined heuristics [
          <xref ref-type="bibr" rid="ref19 ref20">19, 20</xref>
          ].
• We provide an experimental evaluation of heuristic-based reasoning in recursive settings.
        </p>
        <p>Specifically, we compare our ad-hoc implementation, based on Best-First and A* search
algorithms, with state-of-the-art BCQ answering techniques for Close Link and Company
Control. We show that our approach exhibits superior performance in BCQ evaluation.
Overview. The remainder of this paper is organized as follows. In Section 2 we provide the
preliminary notions. In Section 3 we present our novel heuristic-based reasoning methodology.
Section 4 is dedicated to the experimental evaluation. In Section 5 we discuss the related work
and we draw our conclusions in Section 6.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <sec id="sec-2-1">
        <title>To guide our discussion, let us first present some preliminary notions.</title>
        <p>Relational Foundations. Let C, N, and V be disjoint countably infinite sets of constants,
(labelled) nulls and variables, respectively. A (relational) schema S is a finite set of relation
symbols (or predicates) with associated arity. A term is either a constant or a variable. An atom
over S is an expression of the form (¯) , where  ∈ S is of arity  &gt; 0 and ¯ is an -tuple of
terms. A database (instance) over S associates to each symbol in S a relation of the respective
arity over the domain of constants and nulls. The members of the relations are called tuples or
facts. Given two conjunctions of atoms ς1 and ς2, we define a homomorphism from ς1 to ς2 as a
mapping ℎ : C ∪ N ∪ V → C ∪ N ∪ V s.t. ℎ() =  if  ∈ C, ℎ() ∈ C ∪ N if  ∈ N and for
each atom (1, . . . , ) ∈ ς1, then ℎ((1, . . . , )) = (ℎ(1), . . . , ℎ()) ∈ ς2. Two facts are
isomorphic if they refer to the same predicate, feature the same constants in the same positions,
and there is a bijection between labelled nulls.</p>
        <p>
          Rules and Existentials. Warded Datalog± extends Datalog by introducing existential
quantifiers and other features to make it suitable for ontological reasoning, while employing
specific syntactic restrictions for tractability [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. A Warded Datalog± program consists
of a set of facts and existential rules, or tuple-generating dependencies (TGDs), of the form
∀¯∀¯(  (¯, ¯) →∃¯  (¯, ¯)) , where  (the body) and  (the head) are conjunctions of atoms
over the respective predicates and the arguments are vectors of variables and constants: for
brevity, quantifiers can be omitted. A fact is intensional if it belongs to a predicate that occurs
in at least one head, otherwise it is extensional (or ground).
        </p>
        <p>
          Ontological Reasoning and Query Answering. Intuitively speaking, an ontological
reasoning task consists in answering a conjunctive query (CQ)  over a database , augmented
with a set of logical rules Σ . More formally, given a database  over S and a set of TGDs Σ ,
we name the models of  and Σ as the set B of all databases (and we write B |=  ∪ Σ ) such
that B ⊇ , and B |= Σ . The answer to a Boolean CQ (BCQ)  ←  (¯, ¯) over  under Σ is
positive if there exists a homomorphism h:  ∪  →  ∪  s.t. h( (¯, ¯) ) ⊆ .
Chase Procedure. The semantics of a Datalog± program can be operationally defined via
chase-based procedures [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. They enforce the satisfaction of a set of dependencies Σ over
a database , incrementally expanding  with facts derived from the application of rules
∈ Σ over  into a new database chase(,Σ ). Such facts possibly contain labelled nulls that
act as placeholders for the existentially quantified variables. We say that chase(, Σ) is the
universal model for  and Σ , i.e., for every database in B that is a model for  and Σ , there is a
homomorphism mapping chase(, Σ) to B. In the oblivious [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] version of the chase, given a
TGD  (¯, ¯) →∃¯  (¯, ¯) , a chase step can be performed over  if there exists an applicable
homomorphism h that maps the atoms of  (¯, ¯) to facts in  (i.e., h( (¯, ¯) ) ⊆ D). Specifically,
Warded Datalog± adopts an isomorphic chase variant that ensures termination by employing an
isomorphism check over the results of the chase steps. Such variant is BCQ-equivalent to the
oblivious one [
          <xref ref-type="bibr" rid="ref18 ref21">18, 21</xref>
          ]. When the homomorphism ℎ is applicable, the fact ℎ′ ( (¯, ¯))) is created,
where ℎ′ is obtained by extending ℎ so that ℎ′ (¯) ∈  is a fresh labelled null, for each  ∈ ¯.
Such fact is added to  if there is no isomorphism with a fact ∈ . It is worth mentioning that
the result of the isomorphic chase for  and Σ , where Σ is a set of warded TGDs, is unique.
Monotonic Aggregations. Real-world applications, such as the one discussed in Example 1,
may require support for aggregate functions, which can be achieved by means of monotonic
aggregations [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] in the Datalog± context. Formally, a rule with an aggregation is a first-order
sentence of the form ∀¯(  (¯) ,  = maggr(, ⟨¯⟩)→ (¯, )), where maggr is the name of an
aggregation function,  ∈ ¯, and ¯ ⊆ ¯ is a -uple of group-by arguments, ¯ ⊆ ¯ (with
¯ ∩ ¯= ∅) is a -uple of variables contributing to the aggregation and  a monotonic aggregate,
that is, an existentially quantified variable whose value is computed by the aggregation. Let us
consider tuples ⟨¯, ¯, ⟩ of  (¯) and let ¯ be each of the multi-sets of tuples of  (¯) selected
by a specific -uple of ¯. A rule with an aggregation maps each multi-set ¯ into an output set
¯ of tuples ⟨¯, ⟩ of  (¯, ) computed as follows. For a monotonically decreasing (increasing)
aggregation function, for each ⟨¯, ¯, ⟩ ∈  we have a corresponding tuple ⟨¯, ⟩ ∈ ¯,
where the value for  is computed as  = maggr(¯, ). This function memorizes the most
recently computed aggregate and returns an updated value at each invocation such that, for
each value of ¯, the minimum (maximum) value of  is considered in the current aggregate [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
Heuristic Search. Heuristic Search mechanisms allow an agent to find solutions to a problem
via an heuristic. In general, a search problem can be defined as a combination of the following
components: (i) an initial state 0 from which the agent begins the search; (ii) a set of possible
actions that the agent may perform in a certain state ; (iii) a transition model, describing the
state ⟨︀ ,︀⟩ that results from performing an action  at a given state ; together, such elements
represent the state space of the problem, that is, the set of all the reachable states from an initial
one and via sequences of actions, modeled as a directed acyclic graph in which nodes are states
and edges are actions; (iv) a goal test, which determines whether a state is a goal state; and (v) a
path cost function, which assigns a numeric cost to each path. An optimal solution to the problem
is a sequence of actions, leading from the initial state to the goal state, that features the lowest
cost among all the solutions. Regarding informed search algorithms, given a current node , the
next node to be considered is selected according to an evaluation function  (), whose output
is an estimation of the lowest path cost to reach a goal state. They employ a heuristic function ℎ
that encapsulates additional knowledge about the state space to support the search of optimal
solutions by identifying promising paths to visit: intuitively, ℎ() corresponds to the estimated
cost of the most promising path from  to a goal state, according to a certain heuristic. The
exploited heuristics are admissible to the search problem, that is, the estimated cost to reach the
goal state is not higher than the lowest possible cost from the current node in the path [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
Among the types of informed search algorithms, in this work we are interested in:
• Best-First, which selects at each step the node that appears to be the most promising one
according to the heuristic, that is, the one closest to the goal. Therefore, given a current
node , the evaluation function is  () = ℎ();
• A* , which combines the heuristic estimation of the path cost from the current node  to a
goal state (ℎ()) with the cost required to reach  itself from the initial state (()). Thus,
the evaluation function is  () = () + ℎ(), which corresponds to the estimated cost
of the most promising solution crossing . For A* to be optimal in case of graph search,
the employed heuristic must be consistent, i.e., for each node  and each successor ′ of 
derived from an action , the estimated cost to reach the goal state from  is never higher
than the cost to reach ′ plus the estimated cost from ′ to the goal state.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Reasoning with Heuristics</title>
      <p>In this section, we first introduce a novel formalization of BCQ answering as an informed search
problem, then we delve into how informed search methodologies can be efectively adopted to
optimize BCQ evaluation over Warded Datalog± .</p>
      <p>BCQ Answering as Search Problem. Consider an instance of the BCQ answering problem
, i.e., answering a BCQ  over a database  under a set of warded TGDs Σ . We formalize it
as an informed search problem as follows. A chase state of , denoted as =chase(,Σ ), is a
set of facts comprising the extensional ones in the initial database  and the intensional ones
generated after the application of a sequence of  &gt; 0 chase steps. Observe that chase(,Σ )
is not a unique set, as it depends on the order of applicable homomorphisms triggered in the
chase procedure. The chase state space for  is the power set  (chase(, Σ)) , i.e., all the sets
of facts generated after the application of all the possible sequences of chase steps. Consider
a state =chase(,Σ ). The set of applicable homomorphisms  from Σ to chase(,Σ ) is
the set of actions that can be performed at . The application of a homomorphism ℎ ∈ 
over =chase(,Σ ) to generate +1=chase+1(,Σ ) represents a transition from  to +1.
The initial chase state 0 is the state where no chase step has been applied yet, i.e., the input
database =chase0(,Σ ). If the BCQ  has a positive answer, then the goal states  of  are
the set of states where  has a positive answer, i.e., chase(,Σ ) |= . If  has a negative
answer instead, then the goal state  of  is the state where no further homomorphism is
applicable, i.e., chase(,Σ ). A solution  = 0, . . . ,  for  represents a sequence of chase step
applications from the initial database  to =chase(,Σ ) such that chase(,Σ )) |= . The
evaluation function  :  (chase(, Σ)) → R≥ 0 assigns to each state  a weight according to a
given heuristic. The highest weight represents an estimation of the lowest cost path from  to a
goal state . In the presence of an ideal  , the optimal solution for  (i.e., the sequence of chase
step applications with the lowest cost path) guarantees that no superfluous facts are generated in
the chase procedure when answering . Intuitively, given a state =chase(,Σ ), the evaluation
function  represents the strategy to select the most suitable applicable homomorphism in .
Heuristic-based Reasoning. The most efective approach to define the evaluation function
 is to enrich the program with external knowledge of the reasoning setting, provided by a
domain expert. We represent such external knowledge as a semantic constraint on , expressed
via a heuristic function defined as follows.</p>
      <p>Definition 1 ( Ground Heuristic Function). Consider a database  over a relational schema .
A Ground Heuristic Function (GHF)  :  → R≥ 0 is a user-defined function that maps each tuple
of  to a weight  ∈ R≥ 0.</p>
      <p>We exploit such a priori knowledge of the ground facts in the chase procedure to produce a
more general heuristic function that also considers the inferred facts and how they are derived.
Intuitively, the priority assigned to ground facts can be combined and propagated to the facts
that directly descend from them.</p>
      <p>Definition 2 ( Chase Heuristic Function). Consider a database  over a relational schema , a
set Σ of warded TGDs and a GHF  . A Chase Heuristic Function (CHF)  : chase(, Σ) → R≥ 0 is
a function that maps each fact of chase(, Σ) to a weight  ∈ R≥ 0 such that  ⊆  . An Extended
tuples  ⊆</p>
      <p>chase(, Σ)
weights assigned by  to each  ∈  .</p>
      <p>Chase Heuristic Function (ECHF) Γ :  (chase(, Σ))
to a weight ′ such that ′ = →∑︀R≥ 0 is a function that maps a set of
∀∈  (), where ′ is the sum of the
Based on such definitions, we now introduce the heuristic chase step, which represents the
evaluation function of the BCQ answering problem. In fact, it allows us to select and apply, at
each step in the chase, the best applicable homomorphism according to the heuristic provided
by the domain expert.
the homomorphism ∈  whose images (i.e., tuples) maximise Γ .</p>
      <p>Definition 3 ( Heuristic Chase Step Application). Consider a set Σ of warded TGDs, an
intermediate instance chase(,Σ ) and an ECHF Γ . Let  be the set of applicable
homomorphisms from Σ</p>
      <p>to chase(,Σ ). A Heuristic chase step consists in the application of ℎ =
[Γ( ℎ( (¯, ¯)))] ∀ℎ∈  over chase(,Σ ), where  (¯, ¯) is a warded TGD ∈ Σ and ℎ is
Based on such a revised form of the chase step application, we devise a new reasoning
methodology, which we name heuristic-based reasoning. In Section 4 we show how such methodology
efectively enables the generation of less unavailing facts in the chase when answering BCQs
and consequently optimizes the program evaluation. As stated by Definition 2, the heuristic
chase step requires a  defined for the facts generated in the chase. The process for defining

can be performed dynamically during the chase as follows: (1) initialize  =  by employing the
knowledge provided by the domain expert before starting the chase; (2) after applying a chase
step, update  with a weight for the generated fact . The strategies to define such a weight
depend on the informed search employed. Indeed,  () has to properly consider the evaluation
components of the informed search method (e.g., the heuristic ℎ and the function  for A* ).
• Best-First: in this case,  () is the sum of the priorities assigned to parents() (i.e., the facts
where  directly derived from), since best-first only considers the heuristic function
ℎ to
select the next node  ( () = ℎ()). This way  () inherits and combines the heuristic
estimation Γ (parents()).
• A* : in this case,  () is the combination of the heuristic estimation ℎ from the current state
to a goal state and the cost  required to reach the current state from the initial state, i.e.,
the ground facts where  originally derived from. Essentially, such distance is incorporated
in the derivation level of  (denoted as depth()) which can be inductively defined as follows:
(i) a fact  ∈  has depth() = 0; (ii) a fact  derived from a chase step application inherits
the maximum derivation level of parents() + 1. Thus, A* considers  () as the diference
between the heuristic estimation Γ (parents()) of the last heuristic chase step application
(i.e., ℎ()) and depth() (i.e., ()).</p>
      <p>Note that, to practically ensure uniformity of the dimensions considered in the ECHF, the values
associated with  () are always normalized between 0 and 1.</p>
      <p>Heuristic Chase Procedure. Algorithm 1 provides the pseudocode of the chase procedure
that employs heuristics chase steps. A description of the algorithm follows.</p>
      <p>The algorithm takes as input a database , a set Σ of Warded TGDs and a BCQ . Additionally,
it requires the GHF  and the selected informed search strategy. The output of the algorithm
is the answer to . First of all, the CHF  is initialized to  (line 2), since it only considers
extensional facts during the first chase step. Similarly, the chase instance ℎ that stores the
Algorithm 1 Heuristic Chase Algorithm.
facts generated during the procedure is initialized to  and corresponds to the initial chase state
(line 3). A data structure  is employed to store, at each step of the procedure, all the applicable
homomorphisms. Such homomorphisms are sorted according to a weight that is assigned via  ,
representing their priority with respect to the heuristic and the search strategy (line 4). While
 is not empty, the applicable homomorphism ℎ with the highest weight is extracted (line 6).
The result of applying ℎ is a new fact  that also contains chase metadata, such as about its
parents and its derivation level (line 7). If  is not isomorphic with a fact already present in
ℎ, then it is added to the chase instance (lines 8-9). After such update, the algorithm checks
whether the query  has a positive answer, in which case it terminates (lines 10-11). Otherwise,
it derives the weight for  by employing its chase metadata, with respect to the search strategy,
and it updates  accordingly (lines 12-13). Finally, the new applicable homomorphisms, derived
from  and Σ , are weighted according to the new  and are added to  (line 14). If  is empty,
that is, all the homomorphisms have been applied, then the answer to  is negative (line 15).</p>
    </sec>
    <sec id="sec-4">
      <title>4. Experimental Evaluation</title>
      <p>
        In this section, we adopt and validate our novel methodology to eficiently solve real-world KG
tasks known to be computationally demanding even for state-of-art reasoning techniques.
Financial Use Cases. We work in the context of Central Bank of Italy’s company KG [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
Essentially, it consists of 4.059M companies as nodes, linked by 3.960M ownership edges that are
labelled with the fraction of shares that a company owns of another company. Specifically, we
select two well-known scenarios in the financial domain that, due to the presence of recursion
and monotonic aggregations, are extremely time- and space-demanding to solve.
      </p>
      <p>
        Close Link Problem. This scenario consists in determining whether there exists a (direct
or indirect) link between two companies, based on a high overlap of shares. Formally, two
companies 1 and 2 are close links if: (i) 1 (resp. 2) owns directly or indirectly, through one
or more other companies, 20% or more of the share of 2 (resp. 1); or (ii) a third-party owns
directly or indirectly, through one or more other companies, 20% or more of the share of 1 and
2. Determining whether two companies are closely-linked is extremely important for banking
supervision since a company cannot act as a guarantor for loans to another company if they
share such a relationship [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. This problem can be modeled via the following set of recursive
Warded Datalog± TGDs.
      </p>
      <p>Own(1, 2, s) → MCl(1, 2, s)
MCl(1, 2, 1), Own(2, 3, 2) → MCl(1, 3, 1 · 2)</p>
      <p>MCl(1, 2, ), ts = msum(), ts ≥ 0.2 → 1(1, 2)
1(1, 2), 1(1, 3), ¬ 1(2, 3), 2 ̸= 3 → 2(2, 3)
1(1, 2) → Cl(1, 2)
2(1, 2) → Cl(1, 2)
Two companies 1 and 2, connected by an ownership edge with a share , are possible close links
(rule 1). If 1 and 2 are possible close links with a share 1 and there exists an ownership edge
from 2 to a company 3 with a share 2, then also 1 and 3 are possible close links with a total
share of 1 · 2 (rule 2). If the sum of all the partial shares  of 2 owned (directly or indirectly) by
1 is greater than or equal to 0.2, then 1 and 2 are close links (rule 3). The third-party case is
modeled according to point (ii) of the definition (rule 4).</p>
      <p>Consider, as ontological reasoning task, answering the BCQ  = Cl(,) to check whether two
companies  and  are close links.</p>
      <p>
        Company Control Problem. This scenario consists in determining who takes decisions in a
company network, that is, who controls the majority of votes for each company [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. A company
1 controls a company 2, if: (i) 1 directly owns more than 50% of 2; or, (ii) 1 controls a set of
companies that jointly, and possibly together with 1 itself, own more than 50% of 2 [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. This
problem can be modeled via the following set of recursive Warded Datalog± TGDs.
      </p>
      <p>Own(1, 2, s), ts = msum() → MControl(1, 2, ts)
Control(1, 2), Own(2, 3, s), 1 ̸= 3, ts = msum() → MControl(1, 3, ts)</p>
      <p>MControl(1, 2, ts),  ≥ 0.5 → Control(1, 2)
A company 1 might control a company 2 if 1 owns an amount of shares  of 2 (rule 1). If 1
controls 2 and 2 owns an amount of shares  of a company 3, then 1 might control 3 (rule 2). A
company 1 controls a company 2 if the amount of shares that 1 owns of 2, directly of indirectly
(i.e., through other controlled companies), is greater than or equal to 0.5 (rule 3).
Consider, as ontological reasoning task, answering the BCQ  = Control(,) to check whether
a company  controls a company .</p>
      <p>Heuristic-based Reasoning Implementation. We implemented an ad-hoc system that
performs our heuristic-based reasoning approach to solve the Close Link and the Company
Control problems. From empirical evidence, we observed that prioritizing the exploration of
nodes in the KG with a higher in-degree allows us to discover a greater number of ownership
(1)
(2)
(3)
paths and, consequently, possible close links and control relationships. Thus, we defined the
following 3 GHFs mapping the extensional facts: (i)  rand with random weights; (ii)  1 with
weights directly proportional to the in-degree of the target nodes; and (iii)  2 with weights
that consider both the in-degree and the share of the ownership. Based on such heuristics, the
system implements: (i) a standard streaming approach (Std), which applies rules according to a
round-robin strategy and does not employ a priority for the applicable homomorphisms; and
(ii) a heuristic-based approach, which applies the heuristic chase step guided by Best-First or
A* with the above GHFs as input (BF- 1, BF- rand, A* - 1, A* - 2, respectively). The system has
as input the set of TGDs for the scenario, the company KG, the BCQ, the GHF and the informed
search method to employ, and it provides as output whether pairs of companies are close links
or are involved in a control relationship. Moreover, it adopts a streaming architecture with a
pull-based pipeline of the facts for rule activation, according to the priority of the corresponding
applicable homomorphisms. Such priority is based on a queue, ordered by the ECHF that
employs the selected heuristic: each time a new fact is generated, the queue is updated with the
resulting set of applicable homomorphisms.</p>
      <p>Experiments and Results. We run the experiments on a cloud instance of our system in an
AWS EC2 Ubuntu machine with 64 vCPU and 128 GB of RAM. We compared the approaches
discussed above to solve Close Link and Company Control over 100 pairs of companies in
the company KG, selected randomly among the ones that are known to be close links or in a
control relationship. We adopted a time limit of 10 minutes for each BCQ. We collected both the
execution times in seconds and nFacts/nPaths, i.e., the ratio between the number of generated
facts and the number of discovered paths for each pair of companies in the BCQ. Intuitively,
it provides an indication of the average number of facts to generate for discovering a new
path between the candidates. Figure 2(a) and Figure 2(b) illustrate the average values of the
measures over the 100 pairs in log10 scale. Many evaluations with Std did not terminate and
we considered 600 seconds as their execution time. Then, we focus on the resulting times and
ratios for 5 random pairs of the 100 close links (Figure 2(c) and Figure 2(d), resp.) and as many
companies in a control relationship (Figure 2(e) and Figure 2(f), resp.). The experiments confirm
the validity of the heuristic-based reasoning we propose, both in terms of the time required to
evaluate the BCQs and the ability to prevent the generation of superfluous facts for the answers.
Indeed, exploiting fitting heuristics such as  1 and  2 ensures much better results than the
random-based one, which in some instances behaves worse than Std. Combining them with the
A* search proved to be particularly efective, being on average over 3 times faster than Std.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Related Work</title>
      <p>
        Current literature includes a variety of optimization techniques that exploit external knowledge
to eficiently solve query-answering tasks. For instance, in the database realm, hint operators
are employed to statically guide the optimizer in the creation of the query execution plan, by
enforcing specific directives (e.g., join order, choice of physical operators for joins, etc.) [
        <xref ref-type="bibr" rid="ref24 ref25">24, 25</xref>
        ].
Similarly, ad-hoc constraints, modeled via hinting languages [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], can be injected to support
the evaluation of the query plan with the lowest estimated cost. In Datalog settings, especially
featuring recursion and monotonic aggregations, query answering optimizations employ a
priori knowledge on: (i) a syntactic level, rewriting the program into a new version that can be
evaluated more eficiently [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]; and, (ii) a semantic level, excluding non-relevant derivations in
the query execution via eager computations [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. Moreover, the injection of knowledge also
in the form of embeddings has recently been proposed to enable faster reasoning and
queryanswering over large-scale datasets [
        <xref ref-type="bibr" rid="ref28 ref29">28, 29</xref>
        ]. Yet, the heuristic-based reasoning we propose is,
to the best of our knowledge, the first methodology that manages a BCQ answering task as an
informed search problem, guiding the chase via fitting heuristics. Indeed, it enriches our DHint
approach, which guided rule activation via heuristics only from extensional facts, and extends
it by considering the prioritization of all the applicable homomorphisms in the chase [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>Reasoning over large knowledge graphs, especially in the presence of recursive settings, can be
very time- and space-demanding even for state-of-the-art Datalog± -based reasoning systems.
However, when answering Boolean Conjunctive Queries, a subset of the generated facts is
often superfluous for the result. To tackle this problem, we presented heuristic-based reasoning,
a novel reasoning approach that optimizes query evaluation by exploiting external domain
knowledge in the form of a heuristic function. We provided experimental evaluation and applied
such methodology to eficiently solve computationally demanding scenarios over large KGs
in the financial domain. Future work includes extending heuristic-based reasoning with more
advanced informed search strategies, as well as adaptive approaches to select the most suitable
ground heuristic function depending on the use case and the KG.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>The work on this paper was partially supported by the Vienna Science and Technology Fund
(WWTF) grant VRG18-013.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Krötzsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Thost</surname>
          </string-name>
          ,
          <article-title>Ontologies for knowledge graphs: Breaking the rules</article-title>
          , in: International Semantic Web Conference, Springer,
          <year>2016</year>
          , pp.
          <fpage>376</fpage>
          -
          <lpage>392</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</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>
          , E. Sallinger,
          <article-title>Swift logic for big data and knowledge graphs</article-title>
          ,
          <source>in: IJCAI</source>
          , Springer,
          <year>2017</year>
          , pp.
          <fpage>2</fpage>
          -
          <lpage>10</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Calì</surname>
          </string-name>
          , G. Gottlob,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Kifer, Taming the infinite chase: Query answering under expressive relational constraints</article-title>
          ,
          <source>JAIR</source>
          <volume>48</volume>
          (
          <year>2013</year>
          )
          <fpage>115</fpage>
          -
          <lpage>174</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <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>JoWS</source>
          <volume>14</volume>
          (
          <year>2012</year>
          )
          <fpage>57</fpage>
          -
          <lpage>83</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <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>
          ,
          <article-title>Walking the decidability line for rules with existential variables</article-title>
          .,
          <source>KR</source>
          <volume>10</volume>
          (
          <year>2010</year>
          )
          <fpage>466</fpage>
          -
          <lpage>476</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <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>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Marnette</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pieris</surname>
          </string-name>
          , Datalog+/
          <article-title>-: A family of logical knowledge representation and query languages for new applications</article-title>
          , in:
          <year>2010</year>
          <article-title>25th annual IEEE symposium on logic in computer science</article-title>
          , IEEE,
          <year>2010</year>
          , pp.
          <fpage>228</fpage>
          -
          <lpage>242</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Aref</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ten
            <surname>Cate</surname>
          </string-name>
          , T. J.
          <string-name>
            <surname>Green</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Kimelfeld</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Olteanu</surname>
            , E. Pasalic,
            <given-names>T. L.</given-names>
          </string-name>
          <string-name>
            <surname>Veldhuizen</surname>
          </string-name>
          , G. Washburn,
          <article-title>Design and implementation of the LogicBlox system</article-title>
          ,
          <source>in: SIGMOD</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>1371</fpage>
          -
          <lpage>1382</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Barceló</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pichler</surname>
          </string-name>
          , Datalog in Academia and Industry: Second International Workshop, Datalog 2.0, Vienna, Austria,
          <source>September</source>
          <volume>11</volume>
          -13, Proceedings, volume
          <volume>7494</volume>
          , Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <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>Artificial Intelligence</source>
          <volume>193</volume>
          (
          <year>2012</year>
          )
          <fpage>87</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>V.</given-names>
            <surname>Vianu</surname>
          </string-name>
          ,
          <article-title>Datalog unchained</article-title>
          ,
          <source>in: Proceedings of the 40th ACM SIGMOD-SIGACT-SIGAI Symposium on Principles of Database Systems</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>57</fpage>
          -
          <lpage>69</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>D.</given-names>
            <surname>Maier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. O.</given-names>
            <surname>Mendelzon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sagiv</surname>
          </string-name>
          ,
          <article-title>Testing implications of data dependencies</article-title>
          ,
          <source>ACM Transactions on Database Systems (TODS) 4</source>
          (
          <year>1979</year>
          )
          <fpage>455</fpage>
          -
          <lpage>469</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Y. R.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Khamis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. Q.</given-names>
            <surname>Ngo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pichler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Suciu</surname>
          </string-name>
          ,
          <article-title>Optimizing recursive queries with program synthesis</article-title>
          ,
          <source>arXiv preprint arXiv:2202.10390</source>
          (
          <year>2022</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P.</given-names>
            <surname>Atzeni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Benedetto</surname>
          </string-name>
          , E. Sallinger,
          <article-title>Traversing knowledge graphs with good old (and new) joins</article-title>
          .,
          <source>in: KR4L@ ECAI</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Abiteboul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Hull</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Vianu</surname>
          </string-name>
          , Foundations of databases, volume
          <volume>8</volume>
          ,
          <string-name>
            <surname>Addison-Wesley</surname>
            <given-names>Reading</given-names>
          </string-name>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          , G. Greco,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          ,
          <article-title>Magic sets for disjunctive datalog programs</article-title>
          ,
          <source>Artificial Intelligence</source>
          <volume>187</volume>
          (
          <year>2012</year>
          )
          <fpage>156</fpage>
          -
          <lpage>192</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Dsouza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Tempelmeier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gottschalk</surname>
          </string-name>
          , E. Demidova,
          <article-title>Worldkg: A world-scale geographic knowledge graph</article-title>
          ,
          <source>in: CIKM</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>4475</fpage>
          -
          <lpage>4484</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Benedetto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          , E. Sallinger,
          <article-title>Vadalog: A modern architecture for automated reasoning with large knowledge graphs</article-title>
          ,
          <source>Information Systems</source>
          (
          <year>2020</year>
          )
          <fpage>101528</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <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>VLDB</source>
          <volume>11</volume>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>P.</given-names>
            <surname>Atzeni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Iezzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Sallinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vlad</surname>
          </string-name>
          ,
          <article-title>Augmenting logic-based knowledge graphs: The case of company graphs</article-title>
          .,
          <source>in: KR4L@ ECAI</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>P.</given-names>
            <surname>Atzeni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Iezzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Sallinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vlad</surname>
          </string-name>
          ,
          <article-title>Weaving enterprise knowledge graphs: The case of company ownership graphs</article-title>
          .,
          <source>in: EDBT</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>555</fpage>
          -
          <lpage>566</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>T.</given-names>
            <surname>Baldazzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          , E. Sallinger,
          <string-name>
            <given-names>P.</given-names>
            <surname>Atzeni</surname>
          </string-name>
          ,
          <article-title>Eliminating harmful joins in warded datalog+/-</article-title>
          , in:
          <source>International Joint Conference on Rules and Reasoning</source>
          , Springer,
          <year>2021</year>
          , pp.
          <fpage>267</fpage>
          -
          <lpage>275</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>S.</given-names>
            <surname>Russell</surname>
          </string-name>
          , P. Norvig,
          <article-title>Ai a modern approach, Learning 2 (</article-title>
          <year>2005</year>
          )
          <article-title>4</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>A.</given-names>
            <surname>Gulino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Sallinger</surname>
          </string-name>
          , L. Bellomarini,
          <article-title>Distributed company control in company shareholding graphs</article-title>
          ,
          <source>in: 2021 IEEE 37th International Conference on Data Engineering (ICDE)</source>
          , IEEE,
          <year>2021</year>
          , pp.
          <fpage>2637</fpage>
          -
          <lpage>2648</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>V.</given-names>
            <surname>Leis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gubichev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mirchev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Boncz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kemper</surname>
          </string-name>
          , T. Neumann,
          <article-title>How good are query optimizers, really?</article-title>
          ,
          <source>VLDB</source>
          <volume>9</volume>
          (
          <year>2015</year>
          )
          <fpage>204</fpage>
          -
          <lpage>215</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          ,
          <article-title>Query optimizers: time to rethink the contract?</article-title>
          ,
          <source>in: Proceedings of the 2009 ACM SIGMOD</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>961</fpage>
          -
          <lpage>968</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>N.</given-names>
            <surname>Bruno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ramamurthy</surname>
          </string-name>
          ,
          <article-title>Power hints for query optimization</article-title>
          ,
          <source>in: 2009 IEEE 25th ICDE, IEEE</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>469</fpage>
          -
          <lpage>480</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>C.</given-names>
            <surname>Zaniolo</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. Das</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Gu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Developing big-data application as queries: an aggregate-based approach (</article-title>
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>A.</given-names>
            <surname>Vlad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Vahdati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nayyeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          , E. Sallinger,
          <article-title>Towards hybrid logic-based and embedding-based reasoning on financial knowledge graphs</article-title>
          ., in: EDBT/ICDT Workshops,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Sallinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Vahdati</surname>
          </string-name>
          ,
          <article-title>Reasoning in knowledge graphs: An embeddings spotlight</article-title>
          ,
          <source>in: Knowledge Graphs and Big Data Processing</source>
          , volume
          <volume>12072</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2020</year>
          , pp.
          <fpage>87</fpage>
          -
          <lpage>101</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>T.</given-names>
            <surname>Baldazzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Benedetto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brandetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vlad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bellomarini</surname>
          </string-name>
          , E. Sallinger,
          <article-title>Heuristic-based reasoning on financial knowledge graphs</article-title>
          ., in: EDBT/ICDT Workshops,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>