<!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>Helping Wine Lovers With Taxonomies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paolo Ciaccia</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Davide Martinenghi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Riccardo Torlone</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Elettronica, Informazione e Bioingegneria</institution>
          ,
          <addr-line>Politecnico di Milano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dipartimento di Informatica - Scienza e Ingegneria, Università di Bologna</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Dipartimento di Ingegneria, Università Roma Tre</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <abstract>
        <p>We formally investigate the problem of retrieving the best results complying with multiple preferences expressed in a logic-based language when data are stored in relational tables with taxonomic domains. We introduce two operators that rewrite preferences for enforcing transitivity, which guarantees soundness of the result, and specificity, which solves conflicts among preferences. We show that these two properties cannot be achieved together and identify the only two possibilities to ensure transitivity and minimize conflicts. Our approach proves efective when tested over both synthetic and real-world datasets.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Veneto</p>
      <p>Verona
Valpolicella</p>
      <p>Tuscany</p>
      <p>Piedmont
Siena</p>
      <p>Asti Roero Cuneo Langhe
white
rosé
red
Masi Bertani Montenidoli Casorzo Correggia Laficaia</p>
      <p>Ceretto Arneis</p>
      <p>Canaiolo</p>
      <p>Amarone Barolo
preferences so as to guarantee that they are transitive and specific . The latter property means
that, in case of conflicts, the more specific preference overrides the more generic one. For
instance the specific preference for Amarone over white wines counts more than the that for
white wines over red ones.</p>
      <p>We therefore study, from both a theoretical and a practical point of view, how transitivity
and specificity can be obtained by suitable rewritings of the initial preferences. We tackle
the problem by introducing two operators that rewrite preferences expressed as FO formulas:
T to enforce transitivity and S to remove conflicts between preferences. We prove that it is
unfortunately impossible to guarantee at the same time transitivity and a complete absence of
conflicts, no matter the order in which T and S are considered and how many times they are
applied. Intuitively, the removal of conflicts may compromise transitivity, whereas enforcement
of transitivity may (re-)introduce conflicts. In spite of this, we formally show that: (i) the set of
all possible sequences of operators can be reduced to a finite (and small) set, (ii) there are only
two sequences that guarantee transitivity and minimize residual conflicts between preferences,
and (iii) the best results obtainable via these two sequences may be very diferent.</p>
      <p>A number of experiments shows that the computation of the best results largely benefits
from the minimization of conflicts between preferences, while incurring a low overhead due to
the rewriting process.</p>
      <p>
        The full version of this paper has appeared in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Operations on Preferences</title>
      <p>We consider a simple extension of the relational model in which the values of an attribute can
be arranged in a hierarchical taxonomy, i.e., a poset  = (, ≤  ), where  is a set of values
and ≤  is a partial order on  .</p>
      <p>Given a set of attribute-taxonomy pairs 1 : 1, . . . ,  : , let  denote the set of all
possible tuples over any schema that can be defined using such pairs. A preference relation is
a relation ⪰ on  ×  . Given 1 and 2 in  , if 1 ⪰ 2 then 1 is (weakly) preferable to 2. If
1 ⪰ 2 but 2 ̸⪰ 1, then 1 is strictly preferable to 2, denoted by 1 ≻ 2.</p>
      <p>
        We consider that preferences are expressed via an intrinsic preference formula [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]  such that
1 ⪰ 2 ⇔  (1, 2). A formula is a disjunction of DNFs, each of which is called a preference
statement, formed by one or more clauses.
      </p>
      <p>Example 2. The preferences in Example 1 can be expressed as 1(, ) ∨ 2(, ) ∨ 3(, ) ∨
4(, ), which can be compactly written as: 1 = white ⪰ red (short form of 1(, ) =
([Wine] ≤ white) ∧ ([Wine] ≤ red)), 2 = Amarone ⪰ white, 3 = Siena ⪰ Asti, 4 =
Langhe ∧ aged ⪰ Langhe ∧ young.</p>
      <p>Now we introduce two operators that can be applied to a preference relation: Transitive
closure (T) and Specificity-based refinement ( S). Let ⪰ denote the initial preference relation; the
resulting relation is indicated ⪰ T for T and ⪰ S for S. Multiple application of operators, e.g., first
T and then S, leads to the relation (⪰ T)S, which we compactly denote as ⪰ TS. In general, for any
sequence  ∈ {T, S}* , ⪰ X is the preference relation obtained from the initial preference relation
⪰ by applying the operators in the order in which they appear in X. Notice that ⪰  = ⪰ , where
 denotes the empty sequence.</p>
      <p>We describe the behavior of the two operators by means of suitable rewritings of a preference
formula. Given a sequence X of operators, and an initial (input) formula  (, ) inducing the
preference relation ⪰ ,  X(, ) denotes the rewriting of  that accounts for the application of
the X sequence, yielding ⪰ X.</p>
      <p>
        Transitive Closure. Transitivity of ⪰ , and consequently of ≻ , is a basic requirement of any
sound preference-based system. If ⪰ is not transitive then ≻ might contain cycles, a fact that
could easily lead either to empty or non-stable results [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        The transitive closure operator, denoted T, given an input preference relation ⪰ X yields the
preference relation ⪰ XT. The transitive closure  XT of an ipf  X with  statements 1, . . . , 
is still a finite ipf that can be computed as described in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In particular, two predicates of
the form ([] ≤  1) and ([] ≤  2), over the same attribute  and using the same
variable , are contradictory if values 1 and 2 are diferent and have no common descendant
in the taxonomy . If the predicates are of the form ([] ≤  1) and ([] ̸≤  2), then
they are contradictory in case there is a path from 1 to 2 in  (or 1 = 2).
      </p>
      <p>
        The fact that the transitive closure is computed with respect to the (possibly infinite) domain
 of the tuples, and not with respect to a (finite) relation  of tuples, is quite standard for
preference relations (see e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]), and has the advantage of yielding a relation ⪰ XT that does
not change with .
      </p>
      <p>Example 3. Continuing with Example 2, the transitive closure of  is the formula  T that,
among others, adds the following statements to  :
5 = Amarone ⪰ T red</p>
      <p>6 = Siena ⪰ T Langhe ∧ young
Statement 5 clearly follows from 2 and 1, whereas 6 is obtained from 3 and 4, since
there exists at least one winery that is both in the Asti province and in the Langhe region (Casorzo
is one of them).</p>
      <p>After applying the T operator, we simplify the formula as needed, and, in particular, we
remove statements that are subsumed by other statements. Similarly, we also simplify statements
by removing contradictory clauses and clauses subsumed within the same statement.
Specificity-based Refinement. The most intriguing of our operators is S. As apparent from
Example 2, conflicting preferences , such as  ⪰  and  ⪰  (induced by 1 and 2, resp.),
may hold. To solve this problem we resort to a specificity principle , borrowed from
nonmonotonic reasoning, stating that more specific information should prevail over more generic
one. Therefore, giving the same importance to, e.g., 1 and 2, the former being more generic,
contradicts the intuition.</p>
      <p>The specificity principle we adopt for analyzing conflicting preferences is based on the
extension of preferences statements, i.e., on the set of pairs of tuples in  for which a statement
is true.</p>
      <p>Definition 1 (Specificity principle) . Let ⪰ X be a preference relation, and let  X be the
corresponding formula. Let  and  be two preference statements in  X. We say that  is more specific
than  if, for any pair of tuples 1, 2 ∈  such that (1, 2) is true, then  (2, 1) is also true,
and the opposite does not hold.</p>
      <p>From Definition 1 we can immediately determine how a less specific statement has to be
rewritten so as to solve conflicts.</p>
      <p>Lemma 1. A preference statement (, ) is more specific than  (, ) if (, ) implies
 (, ) (written (, ) →  (, )) and the opposite does not hold.</p>
      <p>According to Lemma 1, when (, ) implies  (, ) the S operator replaces  (, ) with
′(, ) =  (, ) ∧ ¬(, ), so that  and ′ do not induce any conflicting preferences.
Example 4. Continuing with Example 3, the application of the S operator amounts to rewriting
formula  T by replacing the clause 1(, ) with 1(, ) ∧ ¬2(, ), since 2(, ) →
1(, ). This, after distributing ¬ over the two predicates in 2 and simplifying, leads to the
new clause: 7 = white ⪰ TS red ∧ ¬Amarone.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Sequences of Operators</title>
      <p>In this section we analyze the efect of performing the operations described in the previous
section, and prove some fundamental properties.</p>
      <p>In order to clarify the relationships between the results of the diferent operations, we
introduce the notions of equivalence and containment between sequences of operators.
Definition 2 (Equivalence and containment). Let X, Y ∈ {T, S}* ; X is contained in Y, denoted
X ⊑ Y, if for every initial preference relation ⪰ , ⪰ X⊆⪰ Y; X and Y are equivalent, denoted X ≡ Y,
if both X ⊑ Y and Y ⊑ X.</p>
      <p>We observe that T and S are idempotent, T is monotone and cannot remove preferences,
while S cannot add preferences. In addition, the preference relation obtained after applying T
on the initial preference relation ⪰ is maximal, in that it includes all other relations obtained
from ⪰ by applying T and S in any way.</p>
      <p>XTT ≡ XT</p>
      <p>XT ⊑ YT</p>
      <p>X ⊑ XT
X ⊑ T</p>
      <p>XSS ≡ XS</p>
      <p>XS ⊑ X
idempotence
monotonicity
inflation / deflation
maximality
(1)
(2)
(3)
(4)</p>
      <p>We call complete those sequences that include both T and S. A sequence X is transitive if, for
every initial preference relation ⪰ , ≻ X is transitive. Eventually, our goal is to drop conflicting
and less specific preferences while preserving transitivity. To this end, we add minimality with
respect to ⊑ as a desideratum.</p>
      <p>The following, non-trivial result shows that we can focus on just eight sequences, shown in
Figure 2, because any sequence is equivalent to one of them.</p>
      <p>Theorem 2. Let X ∈ {T, S}* . Then ∃Y ∈ {, T, S, TS, ST, TST, STS, STST} such that X ≡ Y.</p>
      <p>T
ST
STST</p>
      <p>STS
ε
S</p>
      <p>TST
TS</p>
      <p>To give an intuition, we observe that i) consecutive repetitions of the same operator are idle
(via idempotence) and ii) the repeated application of a TS sufix does not change the semantics
of a sequence (i.e., XTS ≡ XTSTS).</p>
      <p>Minimality and transitivity. Generally, any complete sequence not ending with S is
nonminimal, in that it may contain conflicting preferences (possibly introduced by T) that turn out
to be in contrast with other, more specific preferences. We exemplify this on ST using a single
taxonomy about time.</p>
      <p>Example 5. Let  consist of 1 = autumn ⪰ sep and the more specific 2 = sep10 ⪰ oct10.
By specificity, in  S, 1 is replaced by the statement 3 consisting of two clauses: autumn ⪰
sep ∧ ¬sep10 and autumn ∧ ¬oct10 ⪰ sep. In  ST, the clauses in 3 transitively combine into
1 again, since, e.g., the value sep30 is below sep but not sep10 and below autumn but not
oct10; therefore oct10 ⪰ ST sep10 holds. However, in  STS, 1 is again replaced by 3, so that
oct10 ̸⪰ STS sep10, which shows that ST is not minimal.</p>
      <p>All the containments indicated in Figure 2 are strict, as can be shown through constructions
similar to that of Example 5, so no sequence ending with T is minimal in {T, S}* .</p>
      <p>Transitivity is achieved for any sequence ending with T, while no sequence ending with S is
transitive. Therefore, we summarize our finding in the following major result.
Theorem 3. Let X ∈ {T, S}* . Then XT is not minimal and XS is not transitive, thus no sequence
is both transitive and minimal.</p>
      <p>Since transitivity and minimality cannot be both achieved at the same time, we enforce
transitivity (which cannot be waived) and look for the minimal sequences among those that are
transitive, which we call minimal-transitive sequences.</p>
      <p>We first observe that all complete sequences starting with S are incomparable with those
starting with T (also refer to Figure 2). Therefore, only three sequences are both complete
and transitive: ST, TST and STST, the first of which contains the last one and is therefore not
minimal. The remaining two sequences are transitive, incomparable, and, therefore, minimal in
the set of complete and transitive sequences.</p>
      <p>Theorem 4. The only minimal-transitive sequences are TST and STST.</p>
      <p>The result of Theorem 3 is inherent and no finer granularity in the interleaving of T and S (e.g.,
by making S resolve one conflict at a time instead of all together) would remove this limitation.
Furthermore, this limitation is unavoidable and we can prove that no method whatsoever (not
just those based on the T and S operators) could solve it.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Obtaining the Best Results</title>
      <p>
        Given a relation  ⊆  , the “best” tuples in  according to the preference relation ⪰ can be
selected by means of the Best operator  [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], which returns the tuples 1 of  such that there is
no other tuple 2 in  that is strictly preferable to 1, i.e.,  ≻ () = {1 ∈  | ∄2 ∈ , 2 ≻ 1}.
      </p>
      <p>As shown in Section 3, TST and STST are incomparable, thus there will be relations  and
input preference relations ⪰ for which the best results delivered by the two semantics will difer.
In order to quantify the diference between these results, we define, for any two sequences X
and Y, Diff (X, Y, ) as the worst-case size of the diference in the results delivered by X with
respect to those due to Y, for any given cardinality of the input relation . We have:
Theorem 5. Diff (TST, STST, ) = Θ( ); Diff (STST, TST, ) = Θ( ).</p>
      <p>From a practical point of view, Theorem 5 shows that there is no all-seasons minimal-transitive
semantics. Furthermore, there can be cases (used in the proof of the theorem) in which the</p>
      <p>TST
STST
T
ε
25
ts()20
s
e15
B
r
fo10
e
itm 5
0</p>
      <p>TST
STST
T
ε
average median
(a) Cardinality of  .
number of best results from any of the two semantics is comparable to , whereas the other
semantics returns (1) tuples.</p>
      <p>
        For space reasons, we only give hints at our experimental results and refer the reader to [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
for details. As for the rewriting of the input formula, in all cases we incur a low overhead,
negligible with respect to the time required for computation of  .
      </p>
      <p>
        In our experiments, as recognized in the germane literature [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], we only consider relevant
tuples, i.e., those that satisfy either side of at least one clause in the rewritten formula, since the
other tuples correspond to those objects that the formula does not talk about.
      </p>
      <p>The algorithm we adopt for computing  is an improved version of BNL, exploiting a heuristics
tailored to our scenario, which pre-sorts the input relation so that the tuples matching the left
side of a clause and corresponding to more specific values in the taxonomies come first. The
rationale is that these values are likely associated with a smaller amount of tuples, so that a
smaller  partial result can be found before scanning large amounts of data. Furthermore, such
tuples are likely to be preferred to many others, in particular when specificity is a concern.</p>
      <p>Besides testing real taxonomies, we experimented on a variety of synthetic datasets, generated
according to various taxonomy topologies (regular, random, and scale-free), dataset sizes (up to
1M tuples), attributes (up to 5), and input preferences (up to 10). Figure 3a shows our results
using default parameter values (regular taxonomy on 1 attribute, two conflicting preference
statements, 10K tuples). The amount of relevant tuples is roughly 40% of the size of the dataset.
Both T (i.e., only enforcing transitivity) and  (i.e., no rewriting of the preference formula)
retain about half of the relevant tuples (which is both the average and the median value we
obtained), while TST and STST retain less than 2% in the median case (the average value goes
up to 20% due to runs with unfocused input formulas referring to values not in the dataset).
This is reflected in the computation times, shown in Figure 3b, which are consistently around
24 for T and 10 for , but nearly two orders of magnitude smaller in the median case for TST
and STST.</p>
      <p>This confirms that our approach is efective both in reducing the cardinality of  and in
achieving substantial speedup with respect to baseline strategies. Similar results are obtained
in all other scenarios we tested.</p>
      <p>
        We observe that the application of T alone corresponds to the work performed by preference
evaluation methods that only aim at guaranteeing transitivity, e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], which are therefore
outperformed by our approach. The inability of T to deal with conflicting preferences, thus
generating many indiferent tuples, which in turn induce (very) large result sets, indeed applies
to all our scenarios. Similar observations apply to  (i.e., the empty sequence, corresponding
to the input formula), which represents the action of works on preference evaluation using
no rewriting whatsoever, such as [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Additionally, the results obtained via  would be totally
unreliable, due to lack of transitivity.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions</title>
      <p>
        In this paper we have tackled the problem of finding the best elements from a repository on
the basis of preferences referring to values that are more generic than the underlying data
and may involve conflicts. To this aim, we have introduced and formally investigated two
operators for enforcing, in a given collection of preferences, the properties of specificity, which
can solve conflicts, and transitivity, which guarantees the soundness of the final result. We
have then characterized the limitations that can arise from their combination and identified
the best ways in which they can be used together. We have finally shown, with experiments
over both synthetic and real-world datasets, the efectiveness and practical feasibility of the
overall approach. We remark that the need to address conflicts arising from preferences was also
observed in [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ]. The framework proposed there allows for a restricted form of taxonomies [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
(with all values organized into distinct, named levels) and hints at an ad hoc procedure with
very limited support for conflict resolution; the focus of [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ] is, however, on the downward
propagation of preferences.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Lukasiewicz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. V.</given-names>
            <surname>Martinez</surname>
          </string-name>
          ,
          <string-name>
            <surname>G. I. Simari</surname>
          </string-name>
          ,
          <article-title>Preference-based query answering in datalog+/- ontologies</article-title>
          ,
          <source>in: IJCAI</source>
          <year>2013</year>
          , pp.
          <fpage>1017</fpage>
          -
          <lpage>1023</lpage>
          . URL: http://www.aaai.org/ocs/index.php/IJCAI/ IJCAI13/paper/view/6505.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciaccia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Martinenghi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Torlone</surname>
          </string-name>
          ,
          <article-title>Preference queries over taxonomic domains</article-title>
          ,
          <source>Proc. VLDB Endow</source>
          .
          <volume>14</volume>
          (
          <year>2021</year>
          )
          <fpage>1859</fpage>
          -
          <lpage>1871</lpage>
          . URL: http://www.vldb.org/pvldb/vol14/ p1859-martinenghi.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Chomicki</surname>
          </string-name>
          ,
          <article-title>Preference formulas in relational queries</article-title>
          ,
          <source>ACM Trans. Database Syst</source>
          .
          <volume>28</volume>
          (
          <year>2003</year>
          )
          <fpage>427</fpage>
          -
          <lpage>466</lpage>
          . URL: https://doi.org/10.1145/958942.958946. doi:
          <volume>10</volume>
          .1145/958942.958946.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciaccia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Martinenghi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Torlone</surname>
          </string-name>
          ,
          <article-title>Foundations of context-aware preference propagation</article-title>
          ,
          <source>J. ACM</source>
          <volume>67</volume>
          (
          <year>2020</year>
          ) 4:
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          :
          <fpage>43</fpage>
          . URL: https://doi.org/10.1145/3375713. doi:
          <volume>10</volume>
          .1145/3375713.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Georgiadis</surname>
          </string-name>
          et al.,
          <article-title>Eficient rewriting algorithms for preference queries</article-title>
          ,
          <source>in: ICDE</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>1101</fpage>
          -
          <lpage>1110</lpage>
          . URL: https://doi.org/10.1109/ICDE.
          <year>2008</year>
          .
          <volume>4497519</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciaccia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Martinenghi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Torlone</surname>
          </string-name>
          ,
          <article-title>Finding preferred objects with taxonomies</article-title>
          ,
          <source>in: ER</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>397</fpage>
          -
          <lpage>411</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -33223-5_
          <fpage>33</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciaccia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Martinenghi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Torlone</surname>
          </string-name>
          ,
          <article-title>The POOR-MAD approach: Preferred objects over rich, multi-attribute data</article-title>
          ,
          <source>in: SEBD</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>283</fpage>
          -
          <lpage>290</lpage>
          . URL: http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>2994</volume>
          / paper30.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Martinenghi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Torlone</surname>
          </string-name>
          ,
          <article-title>Taxonomy-based relaxation of query answering in relational databases</article-title>
          ,
          <source>VLDB J</source>
          .
          <volume>23</volume>
          (
          <year>2014</year>
          )
          <fpage>747</fpage>
          -
          <lpage>769</lpage>
          . URL: https://doi.org/10.1007/s00778-013-0350-x.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>