<!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>Smart Data Exchange (DISCUSSION PAPER)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sergio Greco</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michele Ianni</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Elio Masciari</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Domenico Sacca`</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Irina Trubitsyna</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>elio:masciari@unina:it</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>greco</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ianni</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>sacca</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>trubitsynag@dimes:unical:it</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DIETI-Universita` degli Studi di Napoli Federico II</institution>
          ,
          <addr-line>80125 Napoli (NA)</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>DIMES-Universita` della Calabria</institution>
          ,
          <addr-line>87036 Rende (CS)</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The problem of exchanging data, even considering incomplete and heterogeneous data, has been deeply investigated in the last years. The approaches proposed so far are quite rigid as they refer to fixed schema and/or are based on a deductive approach consisting in the use of a fixed set of (mapping) rules. In this paper we describe a smart data exchange framework integrating deductive and inductive techniques to obtain new knowledge. The use of graph-based representation of source and target data, together with the midway relational database and the extraction of new knowledge allow us to manage dynamic databases where also features of data may change over the time.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Many proposal have been made for data exchange among heterogeneous sources.
However, for the best of our knowledge, no generalization of the consolidated data exchange
framework, that supports both the extraction of new knowledge and flexible
representation of heterogeneous data has been defined so far. In this paper we describe an
extension of the data exchange framework, called Smart Data Exchange (SDE), recently
proposed in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], that addresses these issues. The global scenario is showed in Fig. 1,
where (i) Source, Target and Midway are three databases, (ii) SM and MT are
extended TGDs (Tuple Generating Dependencies) mapping data from Source to Midway
and standard TGDs mapping data from Midway to Target, respectively, (iii) M and T
are extended TGDs defined over the Midway database and standard TGDs and EGDs
(Equality Generating Dependencies) defined over the Target database, respectively.
      </p>
      <p>
        The idea is that, by allowing an intermediate database and a richer language to
derive new information, as well as information obtained by analyzing data, we may define
more powerful and flexible tools for data exchange. To have a flexible and general
representation of source and target databases, following the RDF approach, we decided to
model them using a graph-based formalism where data are stored into ternary relations.
Differently from other formalisms where data are stored into a unique relation [
        <xref ref-type="bibr" rid="ref18 ref3">3, 18</xref>
        ],
we consider multiple ternary relations, but analogously to RDF our graph data consist
of tuples of the form (i; a; v) with i being a (resource) identifier, a an attribute name
and v a value (either a constant or an identifier). The midway database is a relational
database containing tuples of any arity that are either imported from the source database
using the SM source-midway mapping rules, or are generated by the Smart Analyzer
Tool (SAT). Data dependencies denoted by M are used to generate new information
useful to enrich the target database. The target database is graph-based and is built by
importing data from the midway database using the mapping rules MT. Finally, as in
the standard data exchange scenario, T consists of a set of TGDs or EGDs.
      </p>
      <p>While we assume that SAT is a black-box aiming to produce new data stored in the
midway database (in our prototype it implements several data mining algorithms
specific for the domain application), the language used to define M is a rich logical
language that makes use of comparison predicates, aggregate predicates and
nondeterministic choice constructs (well studied in the past by the community of logic databases).
This language allows to obtain more realistic information that could be used in a
flexible way by both data experts (for analysis purposes) and inexperienced users (for a
better navigation through data). Another peculiarity of our framework is that the data
exchange takes also advantages of information (under the form of facts) generated by
a data analyzer module and stored into the midway database, together with the data
extracted from the source database.</p>
      <p>
        The idea to model data analysis during the data mapping is present in Data Posting
framework [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and its simplified version [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Differently from SDE, the framework
proposed in [
        <xref ref-type="bibr" rid="ref19 ref8">8, 19</xref>
        ] does not use graph-based formalisms for source and target data and
does not have an intermediate level for data analysis. Moreover, it does not admit the
use of existentially quantified variables in the mapping rules and uncertain values in the
body of mapping rules can be represented only by means of non-deterministic variables,
whose values can be selected from specific relations, possibly restricted by target count
constraints.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>A Tuple Generating Dependency (TGD) is formula of the form: 8x (x) ! 9y (x; y),
where (x) and (x; y) are conjunctions of atoms, and x; y are lists of variables. Full
TGDs are TGDs without existentially quantified variables. An Equality Generating
Dependency (EGD) is a formula of the form: 8x (x) ! x1 = x2, where (x) is
conjunction of atoms, while x1 and x2 are variables in x. In our formulae we omit the universal
quantifiers, when their presence is clear from the context.</p>
      <p>Let S = S1; :::; Sn and T = T1; :::; Tm be two disjoint schemas. We refer to S (resp.
T ) as the source (resp. target) schema and to the Si’s (resp. Tj ’s) as the source (resp.
target) relation symbols. Instances over S (resp. T ) will be called source (resp. target)
instances. If I is a source instance and J is a target instance, then we write hI; J i for
the instance K over the schema S [ T such that K(Si) = I(Si) and K(Tj ) = J (Tj ),
for i n and j m.</p>
      <p>
        The data exchange setting [
        <xref ref-type="bibr" rid="ref11 ref2">11, 2</xref>
        ] is a tuple (S; T; st; t), where S is the source
schema, T is the target schema, t are dependencies over T and st are
source-totarget TGDs. The dependencies in st map data from the source to the target schema
and are TGDs of the form 8x( s(x) ! 9y t(x; y) ), where s(x) and t(x; y)
are conjunctions of atomic formulas on S and T , respectively. Dependencies in st are
also called mapping dependencies. Dependencies in t specify constraints on the target
schema and can be either TGDs or EGDs.
      </p>
      <p>
        The data exchange problem associated with this setting is the following: given a
finite source instance I, find a finite target instance J such that hI; J i satisfies st and
J satisfies t. Such a J is called a solution for I. The computation of an universal
solution (the compact representation of all possible solutions) can be done by means of
the fixpoint chase algorithm, when it terminates [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Decidable (sufficient) conditions
ensuring chase termination can be found in [
        <xref ref-type="bibr" rid="ref15 ref16 ref6">16, 6, 15</xref>
        ].
      </p>
      <p>Queries over relational database can be expressed using Relational Algebra, or
alternative equivalent languages such safe Relational Calculus and safe, nonrecursive
Datalog (with negation). To make query languages more expressive, several additional
feature have been added to these languages including the possibility to manage bags (SQL),
aggregates (SQL), recursion (Datalog), existential variables (Datalog ) and others.</p>
      <p>
        The choice constructs [
        <xref ref-type="bibr" rid="ref17 ref20">20, 17</xref>
        ] have been introduced in Datalog to get an increase
in expressive power and to obtain simple declarative formulations of classical
combinatorial problems, such as those which can be solved by means of greedy algorithms [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>A choice atom is of the form choice((x); (y)), where x and y are lists of variables
such that x \ y = ;, and can occur in the body of a rule. Its intuitive meaning is to
force each initialization of x to be associated with a unique initialization of y, thus
making the result of executing of a corresponding rule nondeterministic. A choice rule
is of the form: A(w) B(z); choice((x); (y)), where A(w) is an atom, B(z) is a
conjunction of atoms, x, y, z and w are lists of variables such that x; y; w z. The
atom choice((x); (y)) is used to enforce the functional dependency x ! y on the set
of atoms derived by means of the rule.</p>
      <p>
        The choice-least and choice-most constructs [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] specialize the choice construct
so as to force greedy selections among alternative choices—these turn out to be
particularly useful to express classical greedy algorithms. A choice-least (resp.
choicemost) atom is of the form choice least((x); (c)) (resp. choice most((x); (c))), where
x is a list of variables and c is a single variable ranging over an ordered domain.
A choice least((x); (c)) (resp. choice most((x); (c))) atom in a rule indicates that
the functional dependency defined by the atom choice((x); (c)) is to be satisfied, and
the c value assigned to a certain value of x has to be the minimum (resp. maximum)
one among the candidate values. The body of a rule may contain even more than one
choice constructs, but only one choice-least or choice-most atom. For instance, the rule
p(x; y; c) q(x; y; c); choice((x); (y)); choice least((x); (c)) imposes the
functional dependency x ! y; c on the possible instances of p. In addition, for each value of
x, the minimum among the candidate values of c must be chosen. For instance,
assuming that q is defined by the facts q(a; b; 1) and q(a; d; 2), from the rule above we might
derive either p(a; b; 1) or p(a; d; 2). However, the choice-least atom introduces the
additional requirement that the minimum value on the third attribute has to be chosen, so
that only p(a; b; 1) is derived. The formal semantics is defined by rewriting rules with
choice atoms into rules with negated literals and selecting (nondeterministically) one of
the stable models of the rewritten program [
        <xref ref-type="bibr" rid="ref17 ref20">20, 17</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Smart Data Exchange</title>
      <p>In this section we present the data exchange framework informally discussed in the
Introduction. We assume the existence of the following countably infinite sets: relation
names R, identifiers I, attribute names A, constants C, nulls N and variables V. The set
of relation symbols (also called predicate symbols) is partitioned into three countable
sets denoted by RS (source relations), RT (target relations) and RM (midway relations),
whereas DS = I [ A [ C, DT = I [ A [ C [ N and DM = I [ A [ C denote the
domains of relations RS, RT and RM, respectively. Relations in RS and RT have arity 3
and take values from I A I [ C and I [ N A [ N I [ C [ N respectively,
n
whereas relations in RM may have any arity n and take values from DM . The main
difference between the source and the target databases is that the target database may
also have nulls (corresponding to blank nodes in RDF) which are introduced to satisfy
constraints. The set of source (resp. target, midway) relations define the source (resp.
target, midway) database whose schema is denoted by S (resp. T , M ).</p>
      <p>The model defined above states that the source and target databases are graph-based
databases stored in a relational database (using triples), whereas the midway database
is a standard relational database. This choice is due to the fact that we would
exchange data among heterogeneous databases and we want model data whose schema
may change over the time.</p>
      <p>Extended TGDs. An atom is of the form p(t1; :::; tn), where t1; :::; tn are terms
(standard atom), or of the form t1 t2, where is a comparison predicates and t1; t2 are terms
(built-in atom). A literal is an atom A (positive literal) or its negation :A (negative
literal). A conjunction of literals is of the form B1 ^ ^Bn where B1; :::; Bn are literals.
A conjunction of literals is said to be safe if all variables occurring in built-in atoms and
negated literals also appear in positive literals. From now on we assume that whenever
we consider conjunctions of literals they are safe.</p>
      <p>Definition 1. An extended TGD (ETGD) is a universally quantified implication
formula of one of the following forms:
– '(x) ^ choice(x0) ! (w),
where '(x) is a safe conjunction of standard and built-in literals, (w) is a
conjunction of atoms, w x and choice(x0), with x0 x, is a possibly empty conjunction
of choice-atoms;
– '(x) ! q(w0; c1hw1i; :::; cnhwni) (called aggregate dependency)
where '(x) is a safe conjunction of standard and built-in literals, c1; :::; cn denote
aggregate functions (e.g., min; max; sum; count), w0 (called “group-by”
variables) and w1; :::; wn are lists of variables such that w0; :::; wn x and w0\wi = ;
8i 2 [1; n]. 2
For any set of data dependencies, the dependency graph G = (V; E) is built
as follows: V consists of the predicate symbols occurring in , whereas there is an
edge from p to q if there is a dependency having p in the body and q in the head.
Moreover, the edge is labeled with : (resp. ag) if p occurs negated (resp. occurs in
the head atom which contains aggregate functions). A set of dependency is said to be
stratified if the depencecy graph does not contain cycles with labeled edges. Observe
that since standard dependencies are positive (that is, all body literals are positive), to
check stratification it is sufficient to check stratification of ETGDs. From now on we
assume that our dependencies are stratified.</p>
      <p>
        The semantics of ETGDs with choice atoms can be defined as in the case of Datalog
rules. To this end, in order to eliminate head conjunctions, any ETGDs r : '(x) !
p1(y1) ^ ^ pk(yk) having k &gt; 1 atoms in the head is rewritten into: (i) k ETGDs
ri : '(x) ! pi(yi) (i 2 [1; k]), if r does not contain choice atoms, and (ii) k+1 ETGDs
r0; :::; rk if r contains choice atoms, where r0 = '(x) ! hr(x) and ri = hr(x) !
pi(yi) (with i 2 1; k]), where hr is a fresh new predicate. Regarding the semantics of
ETGDs with aggregate functions, as the set of ETGDs is stratified, we can partition it
into strata so that, if a stratum contains an ETGD with aggregate functions, then it does
not contain any other ETGD, and compute one stratum at time following topological
order defined over the strata by the dependency graph. The computation of an ETGD
with aggregate functions can be carried out in the same way of computing SQL queries
with aggregates, as body predicates have been already computed and, therefore, they
correspond to database relations in SQL (see also [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]).
      </p>
      <p>Smart data exchange. Now we formally define the Smart Data Exchange Framework.
– S is the source schema containing predicates taken from RS,
– M is the midway schema containing predicates taken from RM,
– T is the target schema containing predicates taken from RT,
– SM is a source-to-midway set of safe ETGDs,
– M is a midway-to-midway set of safe, stratified ETGDs,
– MT is a midway-to-target set of standard TGDs, and
– T is a target-to-target set of standard TGDs and standard EGDs.</p>
      <p>
        As already pointed out, we assume that the source and target relations are
graphbased data and every class of objects is modeled as a named set of triples. RDF graph,
microdata and JSON representations are very closed to this description [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The midway
database is a relational database containing relations of any arity including data in the
format of the source and target database.
      </p>
      <p>For any SDE E = (S; M; T; SM; M; MT; Ti, we shall use the following notation:
1 = SM [ M, 2 = MT [ T, and = 1 [ 2.</p>
      <p>Example 1. Consider a graph relation in the source database containing facts of the
form graph(id1; edge; id2) where id1 and id2 are node identifiers and edge is an
attribute value denoting that there is an edge from id1 to id2. The data exchange problem
consists in extracting a spanning tree to be stored in the target database. From the source
database we can import edges and nodes in the midway database, as defined in the set</p>
      <p>SM consisting of the ETGD: graph(x; edge; y) ! edge(x; y) ^ node(x) ^ node(y).
Assume now that the midway database also contains a fact root(0), for instance
generated by the SAT module or imported from the source database using another
sourceto-midway dependency. The next set of ETGDs M shows how it is possible to generate
a spanning tree rooted in the node x denoted by fact root(x).</p>
      <p>root(x) ! st(nil; x)
st(z; x) ^ edge(x; y); choice((y); (x)); ! st(x; y) ^ connected(y)
node(x) ^ :connected(x); choice((); (x)) ! nextRoot(x)
Here the first ETGD is used to start the computation by deriving an edge ending in
the root node (the starting node is the dummy node nil), whereas the second ETGD,
imposing the functional dependency y ! x, guarantees that the set of selected nodes is
a spanning tree. The last ETGD in M gives a node not belonging to the spanning tree
if the graph is not connected; this node can be used in the future as a root to compute
another spanning tree.</p>
      <p>Spanning tree edges and nextRoot facts are then imported in the target database (as
triples) using the below set of TGDs MT:
st(x; y) ! graph(x; st; y)
nextRoot(x) ! 9y graph(nil; root; x)
Information stored in the target database are next analyzed to generate new information
which will be stored in the midway database. For instance, from a fact graph(nil; root; x)
the SAT module could generate a fact root(x) which, after been stored in the midway
database, could generate the computation of another spanning tree rooted in x. 2</p>
      <p>Note that the process described in the previous example and showed in Fig. 1 is
supervised, that is the activation of the module SAT is performed by the user.</p>
      <p>
        The smart data exchange problem associated with this setting is the following:
given a finite source instance I over a schema S and a smart data exchange E =
(S; M; T; SM; M; MT; T), find finite instances J and K over the schemas M and
T , respectively, such that hI; J i satisfies SM, J satisfies M, hJ; Ki satisfies MT and
K satisfies M. The pair hJ; Ki is called a solution (or model) for hI; Ei, or
equivalently for hI; i, where let 1 = SM [ M and 2 = MT [ T, = 1 [ 2. The
set of solutions for hI; Ei (or equivalently for hI; i) is denoted by Sol(I; E), (resp.
Sol(I; )). Moreover, J is also called solution (or model) for hI; 1i and, in cascade,
K is a solution (or model) for hJ; 2i. Thus, the problem of finding solutions can be
split into two problems: (i) finding a solutions J for I, and (ii) finding solutions K for
J . The set of solutions for hI; 1i is denoted by Sol(I; 1), whereas the set of solutions
for hJ; 2i is Sol(J; 2). Therefore, given a smart data exchange framework, starting
from I with dependency 1 we find solutions J1; :::; Jm and, then starting from every
Ji (1 i m) with dependency 2 we find solutions Ki1 ; :::; Kin . Observe that m is
always finite, whereas in, in the general case, is not guaranteed to be finite [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Query answering. Since we have multiple models, we distinguish the certain answer
derived from all models and the nondeterministic answer.
      </p>
      <p>Definition 3. Given a query Q, a database I and an SDE E, the certain answer of Q
over hI; Ei is Certain(Q; I; E) = ThJ;Ki2Sol(I;E) Q(K): 2</p>
      <p>Since the certain answer could be equivalently defined as Certain(Q; I; E) =
TJ2Sol(I; 1)^K2Sol(J; 2) Q(K), its computation can be optimized by considering the
four sets of dependencies separately, that is by first computing solutions J 0 for hI; STi,
then solutions J for hJ 0; Mi, next solutions K0 for hJ; MTi, and, finally solutions K for
hK0; Ti. Let us now introduce the concepts of homomorphism and universal model.</p>
      <p>A homomorphism from a set of atoms A1 to a set of atoms A2 is a mapping h
from the domain of A1 (set of terms occurring in A1) to the domain of A2 such
that: (i) h(c) = c, for every c 2 Const(A1); and (ii) for every atom R(t1; : : : ; tn)
in A1, we have that R(h(t1); : : : ; h(tn)) is in A2. With a slight abuse of notation,
we apply h also to sets of atoms and thus, for a given set of atoms A, we define
h(A) = fR(h(t1); : : : ; h(tn)) j R(t1; : : : ; tn) 2 Ag.</p>
      <p>Definition 4. A universal model of (I; ) is a model hJ; Ki of (I; ) such that for
every model hJ 0; K0i of (I; ) there exists a homomorphism from K to K0. The set of
all universal solutions of (I; ) will be denoted by USol(I; ). 2
Proposition 1. For any positive query Q, database I and SDE E, the certain answer
of Q over hI; Ei is Certain(Q; I; E) = T J 2 Sol(I; 1) Q(KJ )#, where KJ is any
universal solution of hJ; 2i and Q(KJ )# is the result of computing naively (i.e.
considering nulls as constants) Q(KJ ) and deleting tuples with nulls. 2</p>
      <p>
        Universal solutions for hJ; 2i can be easily computed by applying the classical
fixpoint algorithm called Chase which computes a subset of universal solutions called
canonical [
        <xref ref-type="bibr" rid="ref10 ref4">4, 10</xref>
        ].
      </p>
      <p>As previously discussed, in several cases we are not interested in all models of
hI; 1i, but only in one selected nondeterministically (e.g. the set of edges of any
minimum spanning tree). Thus, we now introduce the definition of nondeterminitic answer.
Definition 5. The nondeterministic answer to a query Q over a database instance I and
SDE E = (S; M; T; SM; M; MT; T) is N onDet(Q; I; E) = T K 2 Sol(J; 2) Q(K),
where, J is a model for hI; 1i selected nondeterministically.
2</p>
      <p>Observe that the nondeterministic choice of the model is applied only to
dependencies in 1, where users express explicitly that they want select nondeterministically a
subset of tuples, whereas for hJ; 2i we consider all models. Note that, two evaluations
of the nondeterministic answers could give different answers (as the choices made could
be different) and that the responsibility of computing nondeterministic answers, instead
of certain answers, is left to the user. Indeed, in several cases the user is not interested
in specific models, but only in one model satisfying some properties (e.g. any spanning
tree). Therefore, we introduce the concept of universal nondeterministc model.
Definition 6. A universal nondeterministic model for hI; i is any universal model in
USol(D; ) selected nondeterministically. 2
Proposition 2. For any positive query Q, database I and SDE E = (S; M; T; SM; M;</p>
      <p>MT; T), the nondeterministic answer of Q over hI; Ei is N onDet(Q; I; E) = Q(KJ )#,
where, let J be any model for hI; 1i selected nondeterministically, KJ is a universal
solution of hJ; 2i 2</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>
        In this paper we have discussed a framework supporting both analysis and flexible
representation of heterogeneous data. The use of graph-based representation of source and
target data, together with the extraction of new knowledge made by the SAT tool allow
us to manage dynamic databases where also features of data may change over the time.
The theoretical complexity of the approach is discussed in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Future work should
include the use of more powerful declarative languages for the midway, where limited
use of function symbols is allowed [
        <xref ref-type="bibr" rid="ref14 ref5 ref7">5, 7, 14</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>R.</given-names>
            <surname>Angles</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Gutierrez</surname>
          </string-name>
          .
          <article-title>An introduction to graph data management</article-title>
          .
          <source>In Graph Data Management, Fundamental Issues and Recent Developments</source>
          ., pages
          <fpage>1</fpage>
          -
          <lpage>32</lpage>
          .
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Arenas</surname>
          </string-name>
          , P. Barcelo´,
          <string-name>
            <given-names>R.</given-names>
            <surname>Fagin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Libkin</surname>
          </string-name>
          .
          <article-title>Locally consistent transformations and query answering in data exchange</article-title>
          .
          <source>In PODS</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>M.</given-names>
            <surname>Arenas</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Gottlob, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pieris</surname>
          </string-name>
          .
          <article-title>Expressive languages for querying the semantic web</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>43</volume>
          (
          <issue>3</issue>
          ):
          <volume>13</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          :
          <fpage>45</fpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>C.</given-names>
            <surname>Beeri</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>A proof procedure for data dependencies</article-title>
          .
          <source>J. ACM</source>
          ,
          <volume>31</volume>
          (
          <issue>4</issue>
          ):
          <fpage>718</fpage>
          -
          <lpage>741</lpage>
          ,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>M.</given-names>
            <surname>Calautti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Molinaro</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Trubitsyna.</surname>
          </string-name>
          <article-title>Logic program termination analysis using atom sizes</article-title>
          .
          <source>In IJCAI</source>
          , pages
          <fpage>2833</fpage>
          -
          <lpage>2839</lpage>
          . AAAI Press,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Calautti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Molinaro</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Trubitsyna.</surname>
          </string-name>
          <article-title>Exploiting equality generating dependencies in checking chase termination</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>9</volume>
          (
          <issue>5</issue>
          ):
          <fpage>396</fpage>
          -
          <lpage>407</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Calautti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Spezzano</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Trubitsyna.</surname>
          </string-name>
          <article-title>Checking termination of bottom-up evaluation of logic programs with function symbols</article-title>
          .
          <source>TPLP</source>
          ,
          <volume>15</volume>
          (
          <issue>6</issue>
          ):
          <fpage>854</fpage>
          -
          <lpage>889</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>N.</given-names>
            <surname>Cassavia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Masciari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Pulice</surname>
          </string-name>
          , and
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Sacca`. Discovering user behavioral features to enhance information search on big data</article-title>
          .
          <source>TiiS</source>
          ,
          <volume>7</volume>
          (
          <issue>2</issue>
          ):7:
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          :
          <fpage>33</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>Deutsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nash</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. B.</given-names>
            <surname>Remmel</surname>
          </string-name>
          .
          <article-title>The chase revisited</article-title>
          .
          <source>In PODS</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <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>
          , and
          <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>
          (
          <issue>1</issue>
          ):
          <fpage>89</fpage>
          -
          <lpage>124</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <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>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Popa</surname>
          </string-name>
          .
          <article-title>Data Exchange: getting to the core</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>30</volume>
          (
          <issue>1</issue>
          ):
          <fpage>174</fpage>
          -
          <lpage>210</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          .
          <article-title>Dynamic programming in datalog with aggregates</article-title>
          .
          <source>IEEE Trans. Knowl</source>
          . Data Eng.,
          <volume>11</volume>
          (
          <issue>2</issue>
          ):
          <fpage>265</fpage>
          -
          <lpage>283</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Masciari</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Sacca`, and</article-title>
          <string-name>
            <surname>I. Trubitsyna.</surname>
          </string-name>
          <article-title>HIKE: A step beyond data exchange</article-title>
          .
          <source>In ER Conference</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Molinaro</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Trubitsyna.</surname>
          </string-name>
          <article-title>Logic programming with function symbols: Checking termination of bottom-up evaluation through program adornments</article-title>
          .
          <source>Theory Pract</source>
          . Log. Program.,
          <volume>13</volume>
          (
          <issue>4-5</issue>
          ):
          <fpage>737</fpage>
          -
          <lpage>752</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Spezzano</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Trubitsyna.</surname>
          </string-name>
          <article-title>Stratification criteria and rewriting techniques for checking chase termination</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>4</volume>
          (
          <issue>11</issue>
          ):
          <fpage>1158</fpage>
          -
          <lpage>1168</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Spezzano</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Trubitsyna.</surname>
          </string-name>
          <article-title>Checking chase termination: Cyclicity analysis and rewriting techniques</article-title>
          .
          <source>IEEE Trans. Knowl</source>
          . Data Eng.,
          <volume>27</volume>
          (
          <issue>3</issue>
          ):
          <fpage>621</fpage>
          -
          <lpage>635</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>S.</given-names>
            <surname>Greco</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Zaniolo</surname>
          </string-name>
          .
          <article-title>Greedy algorithms in datalog</article-title>
          .
          <source>TPLP</source>
          ,
          <volume>1</volume>
          (
          <issue>4</issue>
          ):
          <fpage>381</fpage>
          -
          <lpage>407</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. L.
          <string-name>
            <surname>Libkin</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          <string-name>
            <surname>Reutter</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Soto</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Vrgoc</surname>
          </string-name>
          .
          <article-title>Trial: A navigational algebra for RDF triplestores</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>43</volume>
          (
          <issue>1</issue>
          ):5:
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          :
          <fpage>46</fpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. E. Masciari,
          <string-name>
            <surname>I. Trubitsyna</surname>
          </string-name>
          , and D. Sacca`.
          <article-title>Simplified data posting in practice</article-title>
          .
          <source>In IDEAS</source>
          , pages
          <volume>29</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>29</lpage>
          :
          <fpage>7</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. D. Sacca` and
          <string-name>
            <given-names>C.</given-names>
            <surname>Zaniolo</surname>
          </string-name>
          .
          <article-title>Stable models and non-determinism in logic programs with negation</article-title>
          .
          <source>In Proc. PODS Conf.</source>
          , pages
          <fpage>205</fpage>
          -
          <lpage>217</lpage>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>