<!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>A System Prototype for Approximate Query Answering over Incomplete Data</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>DIMES, University of Calabria</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Nicola Fiorentino</institution>
          ,
          <addr-line>Sergio Greco, Cristian Molinaro, and Irina Trubitsyna</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Many database applications face the problem of querying incomplete data. In such scenarios, certain answers are a principled semantics of query answering. Unfortunately, the computation of certain query answers is a coNP-hard problem. To make query answering feasible in practice, recent research has focused on developing polynomial time algorithms computing a sound (but possibly incomplete) set of certain answers. In this paper we present a system prototype implementing a suite of algorithms to compute sound sets of certain answers. The central tools used by our system are conditional tables and the conditional evaluation of relation algebra. Di erent evaluation strategies can be applied, with more accurate ones having higher complexity, but returning more certain answers, thereby enabling users to choose the technique that best meets their needs in terms of balance between e ciency and quality of the results.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Incomplete information arises in many database applications, such as ontological
reasoning [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ], inconsistency management [
        <xref ref-type="bibr" rid="ref11 ref15 ref2 ref3">2, 3, 11, 15</xref>
        ], data integration [
        <xref ref-type="bibr" rid="ref16 ref7">7, 16</xref>
        ],
and many others.
      </p>
      <p>
        A principled semantics of query answering over incomplete databases are
certain answers, which are query answers that are obtained from all the
complete databases represented by an incomplete database [
        <xref ref-type="bibr" rid="ref17 ref18 ref6">17, 6, 18</xref>
        ]. The following
example illustrates the notion of a certain answer.
      </p>
      <p>Example 1. Consider the database D consisting of the three unary relations P
(Person), S (Student) and E (Employee) reported below, where ? is a null value.</p>
      <p>P
john
mary</p>
      <p>E
john
?</p>
      <p>S
mary
bob
Copyright c 2019 for the individual papers by the papers authors. Copying
permitted for private and academic purposes. This volume is published and copyrighted by
its editors. SEBD 2019, June 16-19, 2019, Castiglione della Pescaia, Italy.
Under the missing value interpretation of nulls (i.e., a value for ? exists but
is unknown), D represents all the databases obtained by replacing ? with an
actual value.</p>
      <p>A certain answer to a query is a tuple that is an answer to the query for
every database represented by D. For instance, consider the query asking for the
people who are not employees and students, which can be expressed in relational
algebra as P (E \ S). The certain answers to the query are fhjohnig, because
no matter how ? is replaced, hjohni is always a query answer.</p>
      <p>For databases containing (labeled) nulls, certain answers to positive queries
can be easily computed in polynomial time as follows: rst a \standard"
evaluation (that is, treating nulls as standard constants) is applied; then tuples with
nulls in the result of the rst step are discarded and the remaining tuples are the
certain answers to the query. However, for more general queries with negation
the problem of computing certain answers becomes coNP-hard.</p>
      <p>To make query answering feasible in practice, one might resort to SQL's
evaluation, but unfortunately, the way SQL behaves in the presence of nulls
may result in wrong answers.</p>
      <p>
        Speci cally, as evidenced in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], there are two ways in which certain answers
and SQL's evaluation may di er: (i) SQL can miss some of the tuples that belong
to certain answers, thus producing false negatives, or (ii) SQL can return some
tuples that do not belong to certain answers, that is, false positives. While the
rst case can be seen as an under-approximation of certain answers (a sound but
possibly incomplete set of certain answers is returned), the second scenario must
be avoided, as the result might contain plain incorrect answers, that is, tuples
that are not certain.
      </p>
      <p>
        The experimental analysis in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] showed that false positive are a real problem
for queries involving negation|they were always present and sometimes they
constitute almost 100% of the answers.
      </p>
      <p>Example 2. Consider again the database D of Example 1. There are no certain
answers to the query P E, as the query answers are the empty set when ? is
replaced with mary.</p>
      <p>Assuming that P and E's attribute is called name, the same query can be
expressed in SQL as follows:</p>
      <p>SELECT P.name
FROM P
WHERE NOT EXISTS (</p>
      <p>SELECT *
FROM E</p>
      <p>WHERE P.name = E.name )</p>
      <p>The evaluation of the SQL query above returns hmaryi, which is not a certain
answer. The problem with the SQL semantics is that every comparison involving
at least one null evaluates to the truth value unknown, then 3-valued logic is used
to evaluate the classical logical connectives (AND, OR, NOT ), and eventually
only those tuples whose condition evaluates to true are kept.</p>
      <p>Going back to the query above, for the rst tuple of P, namely john, the
nested subquery nds the same tuple in E, and thus john is not returned.</p>
      <p>For the second tuple of P, namely mary, the nested subquery gives the empty
set and thus hmaryi is returned by the overall query. The reason why the nested
subquery returns the empty set when mary is considered is that mary is compared
with john and the comparison evaluates to false, and mary is compared with ?
and the comparison evaluates to unknown (because a null is involved). Thus,
there is no tuple of E for which the comparison evaluates to true and the nested
subquery returns the empty set.</p>
      <p>
        Thus, on the one hand, SQL's evaluation is e cient but awed, on the other
hand, certain answers are a principled semantics but with high complexity. To
deal with this issue, there has been recent work on evaluation algorithms with
correctness guarantees, that is, techniques providing a sound but possibly
incomplete set of certain answers [
        <xref ref-type="bibr" rid="ref12 ref13 ref17 ref18 ref8">13, 17, 18, 12, 8</xref>
        ]. The problem of computing
sound (but possibly incomplete) sets of consistent query answers over
inconsistent databases has been addressed in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], but databases are assumed to be
complete, while in this paper we consider incomplete databases with no integrity
constraints.
      </p>
      <p>
        We have developed novel evaluation algorithms with correctness guarantees
leveraging conditional tables and the conditional evaluation of relational
algebra [
        <xref ref-type="bibr" rid="ref12 ref8">12, 8</xref>
        ]. In conditional tables each tuple is associated with a condition and
the conditional evaluation is a generalization of relational algebra that
manipulate conditional tables. Conditions keep track of how tuples are derived and how
nulls are used in comparison operators.
      </p>
      <p>The basic idea is illustrated in the following example.</p>
      <p>Example 3. Consider again the database and the query of Example 1. The
conditional evaluation of the query is carried out by applying the \conditional"
counterpart of each relational algebra operator. Rather than returning a set of
tuples, the conditional evaluation of a relational algebra operator returns
\conditional tuples", that is, pairs of the form ht; 'i, where t is a regular tuple and
' is an expression stating under which conditions t can be derived.</p>
      <p>Regarding the query of Example 1, rst the conditional evaluation of E \ S
is performed, which gives the conditional tuples h?; '1i and h?; '2i, where '1
is the condition (? = mary) and '2 is the condition (? = bob). This intuitively
means that the tuple h?i is derived when ? is mary or bob.</p>
      <p>Then, the conditional evaluation of the di erence operator is carried out,
yielding the conditional tuples hjohn; '0i and hmary; '00i where '0 and '00 are
the following conditions:
'0 = :((john = ?) ^ (? = mary)) ^ :((john = ?) ^ (? = bob));
'00 = :((mary = ?) ^ (? = mary)) ^ :((mary = ?) ^ (? = bob)):
This is the result of the conditional evaluation of the whole query.</p>
      <p>Conditions are valuable information that can be exploited to determine which
tuples are certain answers. As already mentioned, for a conditional tuple ht; 'i,
Query</p>
      <p>DB
Evalua0on Algorithm</p>
      <p>(Approximate)</p>
      <p>Certain Query Answers</p>
      <p>Evalua0on Algorithms’ Engine
Naive</p>
      <p>Semi-Naive</p>
      <p>Lazy</p>
      <p>Aware</p>
      <p>DB
the expression ' says under which condition t can be derived. By condition
evaluation we mean a way of associating ' with a truth value (true, false, or
unknown). The aim is to ensure that if ' evaluates to true, then t is a certain
answer. For instance, from an analysis of '0 in Example 3 above, one can realize
that the condition is always true (i.e., it holds for every possible value ? stands
for), and thus hjohni is a certain answer.</p>
      <p>Tuples' conditions can be evaluated in di erent ways: for instance, an
eager strategy consists in evaluating conditions right after each relational algebra
operator has been evaluated, while an opposite approach consists in evaluating
conditions at the very end, that is, after the entire relational algebra query has
been evaluated.</p>
      <p>
        We have developed four di erent strategies leading to di erent evaluation
algorithms, called naive, semi-naive, lazy, and aware evaluations. They have been
implemented in the ACID system [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which enables users to query incomplete
databases and get under-approximations of the certain answers, choosing the
evaluation strategy that is most suitable for the application at hand.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>System Overview</title>
      <p>The ACID system has been implemented in Java. The system architecture is
depicted in Figure 1.</p>
      <p>There are three main components: a graphical user interface (GUI), the
evaluation algorithms' engine, and the database.</p>
      <p>The GUI allows user to specify the query to be evaluated, the database, and
the type of evaluation to be performed, that is, the approximation algorithm to
be applied. The GUI displays the result of evaluating the speci ed query over the
provided database according to the chosen evaluation algorithm. Di erent lters
can be applied to the result (more details are discussed in the next section).</p>
      <p>The system's engine supports the four evaluation algorithms mentioned in
the previous section, with the naive algorithm being the most e cient but the
least accurate one, and the aware algorithm being the most accurate but the least
e cient one. The basic ideas of the approximation algorithms are as follows:
{ The naive evaluation evaluates tuples' conditions right after each relational
algebra operator has been applied, using three-valued logic.
{ The semi-naive evaluation behaves like the naive one, but it better exploits
equalities in conditions (by propagating values into tuples and conditions)
to provide more accurate results.
{ The lazy evaluation improves upon the semi-naive one by postponing
conditions' evaluation until the set di erence operator is encountered in the
query.
{ The aware evaluation provides even more accurate results and behaves as
follows: it performs the conditional evaluation of the entire query, then it
uses a set of axioms to \simplify" conditions, and eventually it evaluates
(simpli ed) tuples' conditions.</p>
      <p>
        The ACID system manages relational databases possibly containing labeled
nulls (in the literature, they have been called naive tables, V-tables, and
etables [
        <xref ref-type="bibr" rid="ref1 ref10 ref14">14, 1, 10</xref>
        ]). Thus, the same (labeled) null can occur multiple times|e.g.,
this can be used to express that there are two employees with the same unknown
salary.
      </p>
      <p>The GUI provides information on the query, the database, and the
evaluation strategy to the engine, which computes the approximate certain answers
accessing the database. After the evaluation has been carried out, the engine
returns the result to the GUI.</p>
      <p>The ACID system provides also an API which allow third party applications
to interact with the system.</p>
      <p>We now go into the details of how to interact with the ACID system (cf.
Figure 2).</p>
      <p>A typical interaction with the system involves the following steps:
1. The user speci es the input databases. Speci cally, for each table in the
database, its location in the le system is provided. Tables are supposed to
be in csv format.
2. The user speci es the query to be evaluated using standard SQL syntax.</p>
      <p>Queries can be loaded from and saved to les.
3. The user speci es the evaluation strategy that has to be applied to
evaluate the query (indeed, the system supports also the \standard" evaluation
mentioned in the introduction and the conditional evaluation of a query).
4. After the evaluation has been launched and has nished, the result and
statistics are displayed. Speci cally, the result is a set of a tuples, where each
tuple is associated with a condition that is either true or unknown. Tuples
associated with true are guaranteed to be certain answers to the input query.
The result can be ltered with respect to the truth value of the tuples, thus
displaying only true or only unknown tuples. The total number of true (resp.
unknown) tuples is displayed as well as the execution time. Results can be
saved to les.
With the same query and database, moving to more accurate strategie, that is,
from the naive (resp. semi-naive, lazy) evaluation to the semi-naive (lazy, aware)
one, users can see better results, that is, more tuples with condition true (i.e.,
more certain answers), but running times might get higher.</p>
      <p>In general, using the system and analyzing the query syntax, users can gure
out the strategy that is best suited for their purposes.</p>
      <p>As an example, Table 1 reports the execution time, the number of true and
unknown answers for three sample queries over a database with the same schema
of the one in Example 1, with 1000 tuples per relation and 10% of nulls (randomly
generated).</p>
      <p>The queries are:
{ Qsn = E
{ Qlazy = P
$1=c(S),
(E \ ( $16=c(S))), and
where c is a value randomly chosen from those in S.</p>
      <p>The purpose of the rst scenario is to exhibit a query (namely, Qsn ) that
shows the bene ts of going from the naive to the semi-naive evaluation|notice
that, in this case, there is no bene t in applying the lazy or aware evaluation, as
the structure of the query does not have features that can be exploited by them.</p>
      <p>Likewise, the purpose of the second and third scenarios is to show the
advantage of using the lazy (resp. aware) evaluation rather than the semi-naive (resp.
lazy) one.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Conclusion</title>
      <p>Certain answers are a principled manner to answer queries on incomplete databases.
Since their computation is a coNP-hard problem, recent research has focused on
developing polynomial time algorithms providing under-approximations.
Leveraging conditional tables, we have developed a suite of novel approximation
algorithms.</p>
      <p>We have implemented them in the ACID system, which allows users to
query incomplete information and get approximate answers with the
exibility of choosing the technique that best meets their needs in terms of balance
between e ciency and quality of the result's approximation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abiteboul</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grahne</surname>
          </string-name>
          , G.:
          <article-title>Update semantics for incomplete databases</article-title>
          .
          <source>In: Proc. Very Large Data Bases (VLDB) Conference</source>
          . pp.
          <volume>1</volume>
          {
          <issue>12</issue>
          (
          <year>1985</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Arenas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bertossi</surname>
            ,
            <given-names>L.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chomicki</surname>
          </string-name>
          , J.:
          <article-title>Consistent query answers in inconsistent databases</article-title>
          .
          <source>In: Proc. Symposium on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>68</volume>
          {
          <issue>79</issue>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bertossi</surname>
            ,
            <given-names>L.E.</given-names>
          </string-name>
          :
          <article-title>Database Repairing and Consistent Query Answering</article-title>
          .
          <source>Synthesis Lectures on Data Management</source>
          , Morgan &amp; Claypool Publishers (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bienvenu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ortiz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Ontology-mediated query answering with data-tractable description logics</article-title>
          .
          <source>In: Reasoning Web</source>
          . pp.
          <volume>218</volume>
          {
          <issue>307</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gottlob</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lukasiewicz</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A general datalog-based framework for tractable query answering over ontologies</article-title>
          .
          <source>Journal of Web Semantics</source>
          <volume>14</volume>
          ,
          <issue>57</issue>
          {
          <fpage>83</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Console</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guagliardo</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Libkin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Approximations and re nements of certain answers via many-valued logics</article-title>
          .
          <source>In: Proc. International Conference on Principles of Knowledge Representation and Reasoning (KR)</source>
          . pp.
          <volume>349</volume>
          {
          <issue>358</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. De Giacomo,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Lembo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Lenzerini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Rosati</surname>
          </string-name>
          , R.:
          <article-title>On reconciling data exchange, data integration, and peer data management</article-title>
          .
          <source>In: Proc. Symposium on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>133</volume>
          {
          <issue>142</issue>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fiorentino</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greco</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molinaro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trubitsyna</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>ACID: A system for computing approximate certain query answers over incomplete databases</article-title>
          .
          <source>In: Proc. International Conference on Management of Data (SIGMOD)</source>
          . pp.
          <volume>1685</volume>
          {
          <issue>1688</issue>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Furfaro</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greco</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molinaro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A three-valued semantics for querying and repairing inconsistent databases</article-title>
          .
          <source>Annals of Mathematics and Arti cial Intelligence</source>
          <volume>51</volume>
          (
          <issue>2-4</issue>
          ),
          <volume>167</volume>
          {
          <fpage>193</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Grahne</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <source>The Problem of Incomplete Information in Relational Databases, Lecture Notes in Computer Science</source>
          , vol.
          <volume>554</volume>
          . Springer (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Greco</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molinaro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spezzano</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Incomplete Data and Data Dependencies in Relational Databases</article-title>
          .
          <source>Synthesis Lectures on Data Management</source>
          , Morgan &amp; Claypool Publishers (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Greco</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molinaro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trubitsyna</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Computing approximate certain answers over incomplete databases</article-title>
          .
          <source>In: Proc. Alberto Mendelzon International Workshop on Foundations of Data Management and the Web (AMW)</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Guagliardo</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Libkin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Making SQL queries correct on incomplete databases: A feasibility study</article-title>
          .
          <source>In: Proc. Symposium on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>211</volume>
          {
          <issue>223</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Imielinski</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jr.</surname>
          </string-name>
          , W.L.:
          <article-title>Incomplete information in relational databases</article-title>
          .
          <source>Journal of the ACM</source>
          <volume>31</volume>
          (
          <issue>4</issue>
          ),
          <volume>761</volume>
          {
          <fpage>791</fpage>
          (
          <year>1984</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Koutris</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wijsen</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The data complexity of consistent query answering for selfjoin-free conjunctive queries under primary key constraints</article-title>
          .
          <source>In: Proc. Symposium on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>17</volume>
          {
          <issue>29</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Lenzerini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Data integration: A theoretical perspective</article-title>
          .
          <source>In: Proc. Symposium on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>233</volume>
          {
          <issue>246</issue>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Libkin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>How to de ne certain answers</article-title>
          .
          <source>In: Proc. International Joint Conference on Arti cial Intelligence (IJCAI)</source>
          . pp.
          <volume>4282</volume>
          {
          <issue>4288</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Libkin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Certain answers as objects and knowledge</article-title>
          .
          <source>Arti cial Intelligence</source>
          <volume>232</volume>
          ,
          <issue>1</issue>
          {
          <fpage>19</fpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>