<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="review-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Artif. Intell.</journal-id>
<journal-title>Frontiers in Artificial Intelligence</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Artif. Intell.</abbrev-journal-title>
<issn pub-type="epub">2624-8212</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/frai.2023.1085754</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Artificial Intelligence</subject>
<subj-group>
<subject>Review</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A review of data abstraction</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Cima</surname> <given-names>Gianluca</given-names></name>
<uri xlink:href="http://loop.frontiersin.org/people/2077993/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Console</surname> <given-names>Marco</given-names></name>
<uri xlink:href="http://loop.frontiersin.org/people/2155491/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Lenzerini</surname> <given-names>Maurizio</given-names></name>
<uri xlink:href="http://loop.frontiersin.org/people/2073891/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Poggi</surname> <given-names>Antonella</given-names></name>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/2003113/overview"/>
</contrib>
</contrib-group>
<aff><institution>Dipartimento di Ingegneria Informatica, Automatica e Gestionale &#x0201C;A. Ruberti&#x0201D;, Sapienza University of Rome</institution>, <addr-line>Rome</addr-line>, <country>Italy</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Giovanni Sileno, University of Amsterdam, Netherlands</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Federica Mandreoli, University of Modena and Reggio Emilia, Italy; Joao Pita Costa, UNESCO International Research Center on Artificial Intelligence - IRCAI, Slovenia; Pablo Barcelo, Pontifical Catholic University of Chile, Chile</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Antonella Poggi <email>poggi&#x00040;diag.uniroma1.it</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Machine Learning and Artificial Intelligence, a section of the journal Frontiers in Artificial Intelligence</p></fn></author-notes>
<pub-date pub-type="epub">
<day>23</day>
<month>06</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>6</volume>
<elocation-id>1085754</elocation-id>
<history>
<date date-type="received">
<day>31</day>
<month>10</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>30</day>
<month>03</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2023 Cima, Console, Lenzerini and Poggi.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Cima, Console, Lenzerini and Poggi</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license></permissions>
<abstract>
<p>It is well-known that Artificial Intelligence (AI), and in particular Machine Learning (ML), is not effective without good data preparation, as also pointed out by the recent wave of data-centric AI. Data preparation is the process of gathering, transforming and cleaning raw data prior to processing and analysis. Since nowadays data often reside in distributed and heterogeneous data sources, the first activity of data preparation requires collecting data from suitable data sources and data services, often distributed and heterogeneous. It is thus essential that providers describe their data services in a way to make them compliant with the FAIR guiding principles, i.e., make them automatically Findable, Accessible, Interoperable, and Reusable (FAIR). The notion of data abstraction has been introduced exactly to meet this need. Abstraction is a kind of reverse engineering task that automatically provides a semantic characterization of a data service made available by a provider. The goal of this paper is to review the results obtained so far in data abstraction, by presenting the formal framework for its definition, reporting about the decidability and complexity of the main theoretical problems concerning abstraction, and discuss open issues and interesting directions for future research.</p></abstract>
<kwd-group>
<kwd>knowledge representation</kwd>
<kwd>abstraction</kwd>
<kwd>automated reasoning</kwd>
<kwd>data integration</kwd>
<kwd>data preparation</kwd>
</kwd-group>
<counts>
<fig-count count="0"/>
<table-count count="0"/>
<equation-count count="10"/>
<ref-count count="28"/>
<page-count count="14"/>
<word-count count="12694"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>Despite the increasing centrality of data in AI, the way in which AI deals with data has remained virtually unchanged since the dawn of the discipline. This has to be contrasted with the well-known fact that Artificial Intelligence (AI), and in particular Machine Learning (ML), is not effective without good data preparation, as also pointed out by the recent wave of data-centric AI. The term &#x0201C;data centric&#x0201D; refers to an architecture where data is the primary and permanent asset. So, data preparation precedes the implementation of any given machine learning task, and can potentially support many of such tasks relying on the same domain. More specifically, data preparation is the process of gathering, transforming and cleaning raw data prior to processing and analysis. It is therefore regarded as an important step in any data engineering and data science projects, including machine learning, involving tasks such as understanding, collecting and reformatting data, aggregating, integrating, combining and enriching raw source data and making modifications and corrections in order to meet quality standards.</p>
<p>The first activity of data preparation requires collecting data from suitable data sources and data services, often distributed and heterogeneous. In the era of data as driving asset both for the private and public domain, the availability of services providing data, also called <italic>data services</italic>, is indeed growing incredibly fast. Thus, on one hand, more and more data services are available, on the other hand, more and more AI tasks and applications rely on data services. This scenario opens two crucial issues for data-centric AI. First, from a consumer point of view, how to find the &#x0201C;right&#x0201D; data, i.e., data which properly respond to an information need? Second, from a provider point of view, how to release FAIR-compliant data services, i.e., services automatically Findable, Accessible, Interoperable, and Reusable (FAIR)? An effective answer to the former question is given by exploiting the state of the art technology for <italic>answering queries</italic> over <italic>data integration</italic> systems, which stems from more than thirty years of research. As for the second question, an answer is given by the results on a relatively new service of data integration systems, called <italic>abstraction</italic>. In order to elaborate more on both these answers, let us first make a step back to data integration.</p>
<p>Data integration is the problem of providing a unified and reconciled view of the data stored in a set of autonomous and heterogeneous sources. The theoretical works on data integration systems have advocated a three-layer architecture comprising the <italic>data sources</italic>, which in our setting are the output of the data services, the <italic>global schema</italic>, which is a unified shared conceptualization of the domain of interest, and the <italic>mapping</italic> between the sources and the global schema. Formally, a data integration system is a triple <inline-formula><mml:math id="M1"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M2"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> is the global schema, <inline-formula><mml:math id="M3"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> is the source schema and <inline-formula><mml:math id="M4"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> is the mapping, i.e., a set of logical assertions describing how the data at the sources relate to the elements of the global schema. Then, intuitively, given a set of data sources <italic>D</italic>, <inline-formula><mml:math id="M5"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> represents all the (possibly incomplete) databases that are instances of <inline-formula><mml:math id="M6"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> satisfying <inline-formula><mml:math id="M7"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> w.r.t. <italic>D</italic>.</p>
<p>Once data services have been integrated by means of a data integration system specified through a triple <inline-formula><mml:math id="M8"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, in order to find the &#x0201C;right data,&#x0201D; a data service consumer can rely on query answering. Specifically, by unambiguously expressing an information need as a query over the shared vocabulary of <inline-formula><mml:math id="M9"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>, he can get the answers that &#x0201C;best correspond&#x0201D; to his need without even having to know the relevant data services. In particular, in most approaches, such answers have been identified as <italic>certain answers</italic>, i.e. answers to <inline-formula><mml:math id="M10"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> that would be returned by every database represented by <inline-formula><mml:math id="M11"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> given a set of data sources <italic>D</italic>. Also, typically, such answers are computed by first reformulating <inline-formula><mml:math id="M12"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> in terms of a query <inline-formula><mml:math id="M13"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and then by evaluating <inline-formula><mml:math id="M14"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> over <italic>D</italic>. Conversely, in order to make a data service FAIR-compliant, a provider can rely on abstraction over <inline-formula><mml:math id="M15"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>. Specifically, given a data service originally expressed as a query over a set of data sources, he can get a query over the shared vocabulary of <inline-formula><mml:math id="M16"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>, that unambiguously describes the data service content, thus making it both accessible, interoperable and reusable. Concretely, given a query <inline-formula><mml:math id="M17"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> over the data sources, he would get a query <inline-formula><mml:math id="M18"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> over the global schema whose answers &#x0201C;best correspond&#x0201D; to the data service. Obviously, also for abstraction, the meaning of &#x0201C;best correspond&#x0201D; has to be made precise. Ideally, the query <inline-formula><mml:math id="M19"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is the one whose certain answers are exactly the answers of <inline-formula><mml:math id="M20"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, for every possible source database. Such a query <inline-formula><mml:math id="M21"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is called perfect <italic>J</italic>-abstraction of <inline-formula><mml:math id="M22"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>We next use an example for informally introducing and illustrating the main notions related to abstraction. In the example, we focus on queries that are conjunctions of atoms, called <italic>conjunctive queries (CQ)</italic>, and unions thereof, called <italic>unions of conjunctive queries (UCQ)</italic>, and we assume that the evaluation of a query expressed over the global schema is based on the certain answer semantics.</p>
<p><bold> Example 1</bold>. Let <inline-formula><mml:math id="M23"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> be a data integration system where the elements of the source schema <inline-formula><mml:math id="M24"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> are the predicates (with associated arity) {<italic>s</italic><sub>1</sub>/1, <italic>s</italic><sub>2</sub>/2, <italic>s</italic><sub>3</sub>/1, <italic>s</italic><sub>4</sub>/1, <italic>s</italic><sub>5</sub>/2}, the elements of the global schema <inline-formula><mml:math id="M25"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> are {<italic>g</italic><sub>1</sub>/2, <italic>g</italic><sub>2</sub>/1, <italic>g</italic><sub>3</sub>/2, <italic>g</italic><sub>4</sub>/2, <italic>g</italic><sub>5</sub>/1}, and <inline-formula><mml:math id="M26"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> contains the following assertions (where the free variables are implicitly universally quantified):</p>
<p><inline-formula><mml:math id="M27"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mo>.</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>5</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>z</mml:mi><mml:mo>.</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>5</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>6</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>5</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>7</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>5</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></p>
<p>Consider the query <inline-formula><mml:math id="M28"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. It is easy to see that, for every database <italic>D</italic>, the set of certain answers of <inline-formula><mml:math id="M29"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> coincides with the set of answers of <inline-formula><mml:math id="M30"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> w.r.t. <italic>D</italic>. It follows that the CQ <inline-formula><mml:math id="M31"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> is a perfect <inline-formula><mml:math id="M32"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M33"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p>Consider the query <inline-formula><mml:math id="M34"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. A natural candidate for the perfect <inline-formula><mml:math id="M35"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M36"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is <inline-formula><mml:math id="M37"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. Note, however, that the certain answers to <inline-formula><mml:math id="M38"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> include tuples in <italic>s</italic><sub>1</sub> that may not belong to <italic>s</italic><sub>2</sub>, and therefore <inline-formula><mml:math id="M39"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is not even a sound <inline-formula><mml:math id="M40"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M41"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> (i.e., it does not retrieve only tuples of <inline-formula><mml:math id="M42"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>). Indeed, it can be shown that no UCQ exists that is a perfect <inline-formula><mml:math id="M43"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M44"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. However, the query asking for those <italic>x</italic> such that <italic>g</italic><sub>1</sub>(<italic>x, y</italic>) <italic>is known to be true, i.e., holds in every model of</italic> <inline-formula><mml:math id="M45"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>, cannot exploit mapping <italic>m</italic><sub>1</sub>, and therefore avoids retrieving tuples from <italic>s</italic><sub>1</sub>. It follows that such query, which is not expressible as a UCQ, is a perfect <inline-formula><mml:math id="M46"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M47"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. Consider the query <inline-formula><mml:math id="M48"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. Again, the natural candidate for the perfect <inline-formula><mml:math id="M49"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M50"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is clearly <inline-formula><mml:math id="M51"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. However, because of <italic>m</italic><sub>2</sub>, the certain answers to <inline-formula><mml:math id="M52"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> also include the values in the first component of <italic>s</italic><sub>2</sub>, and this means that <inline-formula><mml:math id="M53"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is not a sound <inline-formula><mml:math id="M54"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M55"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, although it is a complete one (i.e., it retrieves all tuples of <inline-formula><mml:math id="M56"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>). Another possible candidate is the query <inline-formula><mml:math id="M57"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. However, this query captures only the tuples occurring in <italic>s</italic><sub>1</sub> which also occur in <italic>s</italic><sub>4</sub>. It follows that <inline-formula><mml:math id="M58"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is a sound <inline-formula><mml:math id="M59"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction, although not a complete one. Actually, it can be shown that no perfect <inline-formula><mml:math id="M60"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M61"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> exists in the class UCQ, but <inline-formula><mml:math id="M62"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M63"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> are, respectively, the minimally complete and the maximally sound <inline-formula><mml:math id="M64"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M65"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> in the class UCQ.</p>
<p>Consider now the query <inline-formula><mml:math id="M66"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, and assume that we aim at checking whether its perfect <inline-formula><mml:math id="M67"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction can be expressed as a UCQ. We immediately observe that {()&#x02223;&#x02203;<italic>x, y</italic>.<italic>g</italic><sub>4</sub>(<italic>x, y</italic>)&#x02227;<italic>g</italic><sub>2</sub>(<italic>x</italic>)} is a sound <inline-formula><mml:math id="M68"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M69"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. Also, we can easily verify that {()&#x02223;&#x02203;<italic>x, y, x</italic><sub>1</sub>.<italic>g</italic><sub>4</sub>(<italic>x, y</italic>)&#x02227;<italic>g</italic><sub>3</sub>(<italic>x, x</italic><sub>1</sub>)&#x02227;<italic>g</italic><sub>2</sub>(<italic>x</italic><sub>1</sub>)} is also sound, and may retrieve tuples that are not retrieved by {()&#x02223;&#x02203;<italic>x, y</italic>.<italic>g</italic><sub>4</sub>(<italic>x, y</italic>)&#x02227;<italic>g</italic><sub>2</sub>(<italic>x</italic>)}. More generally, all queries of the form {()&#x02223;&#x02203;<italic>x, y, x</italic><sub>1</sub>, &#x02026;, <italic>x</italic><sub><italic>n</italic></sub>.<italic>g</italic><sub>4</sub>(<italic>x, y</italic>)&#x02227;<italic>g</italic><sub>3</sub>(<italic>x, x</italic><sub>1</sub>)&#x02227;&#x02026;&#x02227;<italic>g</italic><sub>3</sub>(<italic>x</italic><sub><italic>n</italic>&#x02212;1</sub>&#x02227;<italic>x</italic><sub><italic>n</italic></sub>)&#x02227;<italic>g</italic><sub>2</sub>(<italic>x</italic><sub><italic>n</italic></sub>)}, for <italic>n</italic>&#x02265;1, are pairwise incomparable sound <inline-formula><mml:math id="M70"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of <inline-formula><mml:math id="M71"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. Based on this observation, one can show that there exists no maximally sound <inline-formula><mml:math id="M72"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M73"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> in the class UCQ. However, the following Datalog query (with goal <italic>Ans</italic>) is the maximally sound <inline-formula><mml:math id="M74"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M75"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> in the whole class of monotone queries:</p>
<disp-formula id="E11"><mml:math id="M888"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mo>&#x000A0;</mml:mo><mml:mo>&#x000A0;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02192;</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x000A0;</mml:mo><mml:mo>&#x000A0;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02192;</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x000A0;</mml:mo><mml:mo>&#x000A0;</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>&#x00394;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>g</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02192;</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x000A0;</mml:mo><mml:mo>&#x000A0;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>g</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>z</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02192;</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We point out that, apart from the scenario of data services providers, data abstraction is relevant in several other contexts. We mention three of them here. In the context of ontology-based data management, abstraction can be used to check whether the mapping provides the right coverage for expressing the relevant data services at the global schema level (Lutz et al., <xref ref-type="bibr" rid="B25">2018</xref>). Also, abstractions can provide the semantics of open datasets and open APIs published by organizations, which is a key aspect for unchaining all the potentials of open data (Cima et al., <xref ref-type="bibr" rid="B13">2017</xref>). Finally, abstraction can be the basis for a semantic-based approach to source profiling (Abedjan et al., <xref ref-type="bibr" rid="B1">2017</xref>), again one of tasks of data preparation, in particular for describing the structure and the content of a data source in terms of the business vocabulary.</p>
<p>The goal of this paper is to review the main notions and results about abstraction. We present the formal framework for its definition, and report about the decidability and complexity of the main theoretical problems concerning abstraction, i.e., verification, existence, and computation. The roadmap of the paper is as follows:</p>
<list list-type="bullet">
<list-item><p>Section 2 introduces some relevant background about databases, queries, and data integration.</p></list-item>
<list-item><p>Section 3 illustrates the formal framework for abstraction in data integration by providing some of the key definitions used throughout the paper.</p></list-item>
<list-item><p>Section 4 reports results appearing in Cima et al. (<xref ref-type="bibr" rid="B11">2021</xref>) on the relationship between abstraction and another well-studied problem, namely <italic>view-based query processing</italic> (see, e.g., Halevy, <xref ref-type="bibr" rid="B20">2001</xref>). The latter is the problem of answering a query over a schema <inline-formula><mml:math id="M76"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> in terms of a set of materialized views over <inline-formula><mml:math id="M77"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>. Interestingly, the established relationship between abstraction and view-based query processing sheds into light new results about both problems.</p></list-item>
<list-item><p>Section 5 illustrates results related to the problem of computing best UCQ abstractions of UCQ source queries (Cima et al., <xref ref-type="bibr" rid="B14">2019</xref>). The main results are that, while minimally complete abstractions are guaranteed to exist, this is not the case for maximally sound abstractions. Motivated by the latter result, a restricted scenario is introduced, in which the existence of maximally sound abstractions is always guaranteed.</p></list-item>
<list-item><p>Section 6 surveys results on computing best <italic>monotone</italic> abstractions of UCQ source queries (Cima et al., <xref ref-type="bibr" rid="B12">2022</xref>). The principal contributions are the definition of a novel monotone query language (in the context of data integration) and the discussion of how such a language is able to express all forms of the best monotone abstractions (perfect, or approximated).</p></list-item>
<list-item><p>Section 7 presents results on computing abstractions of UCQ source queries in a specific, well-known <italic>non-monotone</italic> query language (Cima et al., <xref ref-type="bibr" rid="B15">2020</xref>). The main results are that all forms of best abstractions are not guaranteed to exist in such a language, and, in virtue of this result, two interesting restricted scenarios are investigated.</p></list-item>
<list-item><p>Finally, Section 8 concludes the paper by discussing possible future research on abstraction.</p></list-item>
</list></sec>
<sec id="s2">
<title>2. Preliminaries</title>
<sec>
<title>2.1. Databases and queries</title>
<p>We assume a denumerable set of constant symbols <italic>C</italic> that is included in every alphabet that we shall consider. A <italic>database schema</italic> (or simply schema) <inline-formula><mml:math id="M78"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> is a logical theory, i.e., a finite set of logical axioms, over an alphabet <inline-formula><mml:math id="M79"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> of predicate symbols and constants from <italic>C</italic>. A <inline-formula><mml:math id="M80"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula><italic>-database</italic> is simply a model of <inline-formula><mml:math id="M81"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>, i.e., an interpretation for <inline-formula><mml:math id="M82"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> that satisfies all the axioms of <inline-formula><mml:math id="M83"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>, with the additional requirements that (<italic>i</italic>) the domain of <italic>D</italic> is <italic>C</italic>, (<italic>ii</italic>) every constant is interpreted into itself, and (<italic>iii</italic>) the extention of every predicate is finite.<xref ref-type="fn" rid="fn0001"><sup>1</sup></xref> In what follows, we will often see a <inline-formula><mml:math id="M84"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database as a finite set of ground facts over <inline-formula><mml:math id="M85"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, each of which corresponding to a tuple in the extension of the associated predicate.</p>
<p>As customary, a <italic>database query</italic> over a schema <inline-formula><mml:math id="M86"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> of arity <italic>n</italic>, or simply an <italic>n</italic>-ary <inline-formula><mml:math id="M87"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query, is a function associating to each <inline-formula><mml:math id="M88"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database a finite set of tuples of constants of arity <italic>n</italic>. Often, however, it is more convenient to specify queries using expressions from some formal language to which a semantics, i.e., an actual query function, is associated. In what follows, whenever we talk about a <italic>query language</italic> <inline-formula><mml:math id="M89"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>, we mean the class of all queries that can be expressed using <inline-formula><mml:math id="M90"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula> and its associated semantics.</p>
<p>A fundamental query language for our work is the language of <italic>First-Order Logic (FOL) queries</italic>. A FOL query <italic>q</italic> for a schema <inline-formula><mml:math id="M91"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> is a <inline-formula><mml:math id="M92"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query defined by an expression of the form <inline-formula><mml:math id="M93"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M94"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> is a tuple of variables, called the <italic>distinguished variables</italic> of <italic>q</italic>, and <inline-formula><mml:math id="M95"><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a FOL formula over alphabet of <inline-formula><mml:math id="M96"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> containing all the variables in <inline-formula><mml:math id="M97"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula>. The arity of <italic>q</italic> is the arity of <inline-formula><mml:math id="M98"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula>, and we will often use <inline-formula><mml:math id="M99"><mml:mi>q</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> to say that <inline-formula><mml:math id="M100"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> are the free-variables of the FOL query <italic>q</italic> and write <inline-formula><mml:math id="M101"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> simply as <inline-formula><mml:math id="M102"><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Moreover,we will use the predicate &#x022A4; to form atoms of any arity; such atoms will always be interpreted as true. Given a <inline-formula><mml:math id="M103"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> and a FOL <inline-formula><mml:math id="M104"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> of arity <italic>n</italic>, <italic>q</italic><sup><italic>D</italic></sup> is the set of all tuples <inline-formula><mml:math id="M105"><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> such that <inline-formula><mml:math id="M106"><mml:mi>D</mml:mi><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>A <italic>conjunctive query (CQ)</italic> <italic>q</italic> over a schema <inline-formula><mml:math id="M107"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> is a FOL query of the form <inline-formula><mml:math id="M108"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, where &#x00233; is a tuple of variables, called the <italic>existential variables</italic> of <italic>q</italic>, and <inline-formula><mml:math id="M109"><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a finite conjunction of relational atom. Given a CQ <inline-formula><mml:math id="M110"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, we say that an existential variable <italic>y</italic>&#x02208;&#x00233; is a <italic>join existential variable</italic> of <italic>q</italic> if it occurs more than once in the atoms of <inline-formula><mml:math id="M111"><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. In what follows, we say that a CQ <italic>q</italic> is a <italic>conjunctive query with join-free existential variables (CQJFE)</italic> if there is no join existential variable occurring in <italic>q</italic>.</p>
<p>Other classes of database queries considered in this paper are defined as customary in terms of both syntax and semantics. An <italic>atomic query</italic> is a FOL query where <inline-formula><mml:math id="M112"><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> consists of a single relational atom. A <italic>union of conjunctive queries (UCQ)</italic> (resp., <italic>union of conjunctive queries with join-free existential variables (UCQJFE)</italic>) is a query defined as a finite union of CQs (resp., CQJFEs) having the same arity, called its <italic>disjuncts</italic>, and its semantics is defined via the associated FOL query. For the definition of Datalog, Disjunctive Datalog, and Disjunctive Datalog with inequalities (denoted by <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup>), we refer the reader to Eiter et al. (<xref ref-type="bibr" rid="B18">1997</xref>).</p></sec>
<sec>
<title>2.2. Querying sets of databases</title>
<p>In what follows, we will often need to extend the notion of database queries to sets of databases. A <italic>generalized</italic> <inline-formula><mml:math id="M113"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula><italic>-query</italic> of arity <italic>n</italic> is a function associating to each <italic>set of</italic> <inline-formula><mml:math id="M114"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula><italic>-databases</italic> a finite set of <italic>n</italic>-tuples of constants in <italic>C</italic>, called the <italic>answers of</italic> <italic>q</italic> <italic>for</italic> &#x003A3; and denoted <italic>q</italic><sup>&#x003A3;</sup>. As customary, for two <inline-formula><mml:math id="M115"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-queries <italic>q</italic><sub>1</sub> and <italic>q</italic><sub>2</sub>, we write <italic>q</italic><sub>1</sub>&#x02291;<italic>q</italic><sub>2</sub> if <inline-formula><mml:math id="M116"><mml:mrow><mml:msubsup><mml:mstyle mathsize='140%' displaystyle='true'><mml:mi>q</mml:mi></mml:mstyle><mml:mn>1</mml:mn><mml:mo>&#x02211;</mml:mo></mml:msubsup><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x02286;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mstyle mathsize='140%' displaystyle='true'><mml:mi>q</mml:mi></mml:mstyle><mml:mn>2</mml:mn><mml:mo>&#x02211;</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> for each set &#x003A3; of <inline-formula><mml:math id="M117"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-databases, and we write <italic>q</italic><sub>1</sub>&#x02261;<italic>q</italic><sub>2</sub> if both <italic>q</italic><sub>1</sub>&#x02291;<italic>q</italic><sub>2</sub> and <italic>q</italic><sub>2</sub>&#x02291;<italic>q</italic><sub>1</sub>.</p>
<p>A common method to define a generalized <inline-formula><mml:math id="M118"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query is to lift the semantics of a <inline-formula><mml:math id="M119"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query to sets of <inline-formula><mml:math id="M120"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-databases using the notion of <italic>certain answers</italic>. Given a <inline-formula><mml:math id="M121"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> and a set &#x003A3; of <inline-formula><mml:math id="M122"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-databases, the <italic>certain answers of</italic> <italic>q</italic> <italic>over</italic> &#x003A3; are defined as <inline-formula><mml:math id="M123"><mml:msub><mml:mrow><mml:mo>&#x022C2;</mml:mo></mml:mrow><mml:mrow><mml:mi>D</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003A3;</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. Thus, in what follows, we consider that every generalized <inline-formula><mml:math id="M124"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query is such that given a set &#x003A3; of <inline-formula><mml:math id="M125"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-databases, <italic>q</italic><sup>&#x003A3;</sup> is the set of the certain answers of <italic>q</italic> over &#x003A3;. This small abuse of notation and the observation that <italic>q</italic><sup><italic>D</italic></sup> &#x0003D; <italic>q</italic><sup>{<italic>D</italic>}</sup> allow us to blur the distinction between queries and generalized queries. Therefore, from now on, unless otherwise specified, we will use the term <inline-formula><mml:math id="M126"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query for generalized <inline-formula><mml:math id="M127"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query.</p></sec>
<sec>
<title>2.3. Data integration</title>
<p>A <italic>data integration system</italic> (Lenzerini, <xref ref-type="bibr" rid="B21">2002</xref>) <inline-formula><mml:math id="M128"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> is specified by a triple <inline-formula><mml:math id="M129"><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M130"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>, the global schema, is a schema over an alphabet <inline-formula><mml:math id="M131"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M132"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>, the source schema, is a schema over an alphabet <inline-formula><mml:math id="M133"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> (disjoint from <inline-formula><mml:math id="M134"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, except for the set <italic>C</italic>), and <inline-formula><mml:math id="M135"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> is a mapping relating <inline-formula><mml:math id="M136"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M137"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>. Specifically, <inline-formula><mml:math id="M138"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> is a finite set of assertions of the form <inline-formula><mml:math id="M139"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, where <inline-formula><mml:math id="M140"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is an <inline-formula><mml:math id="M141"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query and <inline-formula><mml:math id="M142"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a <inline-formula><mml:math id="M143"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-query of the same arity as <inline-formula><mml:math id="M144"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>The semantics of <inline-formula><mml:math id="M145"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> is defined relative to an <inline-formula><mml:math id="M146"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>, and, intuitively, is the set of all the <inline-formula><mml:math id="M147"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-databases that satisfy <inline-formula><mml:math id="M148"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> with respect to <italic>D</italic>. A <inline-formula><mml:math id="M149"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>B</italic> satisfies <inline-formula><mml:math id="M150"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> with respect to <italic>D</italic>, denoted by <inline-formula><mml:math id="M151"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x022A7;</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula>, if it satisfies all the assertions in <inline-formula><mml:math id="M152"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula>, i.e., <inline-formula><mml:math id="M153"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x02286;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for each <inline-formula><mml:math id="M154"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p>Formally, the semantics of <inline-formula><mml:math id="M155"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> relative to <italic>D</italic>, denoted as <inline-formula><mml:math id="M156"><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, is defined as <inline-formula><mml:math id="M157"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>B</mml:mi><mml:mo>|</mml:mo><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal"></mml:mtext><mml:mstyle class="math"><mml:mi>B</mml:mi></mml:mstyle><mml:mtext class="textrm" mathvariant="normal">is a</mml:mtext><mml:mstyle class="math"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mstyle><mml:mtext class="textrm" mathvariant="normal">-database such that</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x022A7;</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. We say that <italic>D</italic> is consistent with <inline-formula><mml:math id="M158"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> if <inline-formula><mml:math id="M159"><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02260;</mml:mo><mml:mi>&#x02205;</mml:mi></mml:math></inline-formula>. The answers to a <inline-formula><mml:math id="M160"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> w.r.t. a data integration system <inline-formula><mml:math id="M161"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> and an <inline-formula><mml:math id="M162"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> is simply <inline-formula><mml:math id="M163"><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>, that we often write simply as <inline-formula><mml:math id="M164"><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. For two <inline-formula><mml:math id="M165"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-queries <italic>q</italic><sub>1</sub> and <italic>q</italic><sub>2</sub>, we write <inline-formula><mml:math id="M166"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mo>&#x02291;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula><mml:math id="M167"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x02286;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for each <inline-formula><mml:math id="M168"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>; <inline-formula><mml:math id="M169"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>&#x0228F;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M170"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-equivalence are defined accordingly.</p>
<p>Specific classes of mappings considered in the literature are GAV, LAV, GLAV, PGAV, and SPGAV. We introduce them under the assumption that the queries appearing in mapping assertions are conjunctive queries or restricted forms thereof.</p>
<p>A GLAV mapping is a set of assertions of the form <inline-formula><mml:math id="M171"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, where both <inline-formula><mml:math id="M172"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M173"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> are conjunctive queries over <inline-formula><mml:math id="M174"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M175"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> respectively, with distinguished variables <inline-formula><mml:math id="M176"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:math></inline-formula>.</p>
<p>A GAV mapping is a special case of GLAV, constituted by a set of assertions of the form <inline-formula><mml:math id="M177"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mi>A</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, where (<italic>i</italic>) <inline-formula><mml:math id="M178"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a conjunctive query over <inline-formula><mml:math id="M179"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> and (<italic>ii</italic>) <inline-formula><mml:math id="M180"><mml:mi>A</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is an atomic <inline-formula><mml:math id="M181"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query. A pure GAV mapping (PGAV) is a GAV mapping in which each assertion <inline-formula><mml:math id="M182"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mi>A</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is such that no repeated variables appear in <inline-formula><mml:math id="M183"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:math></inline-formula>. A PGAV mapping is called SPGAV (PGAV with single assertion per predicate) if it does not contain a pair of assertions with the same predicate symbol the right-hand side.</p>
<p>A LAV mapping is a special case of GLAV, constituted by a set of assertions <inline-formula><mml:math id="M184"><mml:mi>A</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, where (<italic>i</italic>) <inline-formula><mml:math id="M185"><mml:mi>A</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is an atomic <inline-formula><mml:math id="M186"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query and (<italic>ii</italic>) <inline-formula><mml:math id="M187"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a conjunctive query over <inline-formula><mml:math id="M188"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> with distinguished variables <inline-formula><mml:math id="M189"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:math></inline-formula>.</p>
<p>In what follows, we implicitly refer to a data integration system <inline-formula><mml:math id="M190"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, and when we denote a query by <inline-formula><mml:math id="M191"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> (resp., <inline-formula><mml:math id="M192"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>) we mean that the query is a <inline-formula><mml:math id="M193"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-query (resp., <inline-formula><mml:math id="M194"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query).</p></sec>
<sec>
<title>2.4. The EQL-Lite(UCQ) language</title>
<p><italic>EQL-Lite</italic>(UCQ) is a powerful query language in the context of data integrations systems introduced and studied in Calvanese et al. (<xref ref-type="bibr" rid="B4">2007a</xref>). An <italic>EQL-Lite</italic>(UCQ) <inline-formula><mml:math id="M195"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> is an expression of the form <inline-formula><mml:math id="M196"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M197"><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is an <italic>EQL</italic> formula built according to the following syntax:</p>
<disp-formula id="E1"><mml:math id="M198"><mml:mrow><mml:mi>&#x003C6;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover><mml:mo stretchy='false'>)</mml:mo><mml:mo>:</mml:mo><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>K</mml:mtext></mml:mstyle><mml:mi>&#x003F1;</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext>.</mml:mtext><mml:mi>&#x003C6;</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mo>&#x000AC;</mml:mo><mml:mi>&#x003C6;</mml:mi></mml:mrow></mml:math></disp-formula>
<p>with &#x003F1; being a disjunction of conjunction of relational atoms over <inline-formula><mml:math id="M199"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> possibly involving existentially quantified variables. The semantics is based on the notion of satisfaction of <italic>EQL</italic> sentences w.r.t. <italic>epistemic interpretations</italic>, which are pairs <inline-formula><mml:math id="M200"><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">I</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> with <italic>E</italic> being a set of interpretations and <inline-formula><mml:math id="M201"><mml:mrow><mml:mi mathvariant="script">I</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>E</mml:mi></mml:math></inline-formula>. We now inductively define when an epistemic interpretation <inline-formula><mml:math id="M202"><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">I</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> satisfies an <italic>EQL</italic> sentence &#x003C6;, written <inline-formula><mml:math id="M203"><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">I</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003C6;</mml:mi></mml:math></inline-formula>:</p>
<disp-formula id="E2"><mml:math id="M204"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mover accent='true'><mml:mi>c</mml:mi><mml:mo>&#x02192;</mml:mo></mml:mover><mml:mo stretchy='false'>)</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;if&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x022A8;</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mover accent='true'><mml:mi>c</mml:mi><mml:mo>&#x02192;</mml:mo></mml:mover><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mtext>&#x000A0;&#x000A0;&#x000A0;if&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>&#x000A0;and&#x000A0;</mml:mtext><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:mo>&#x000AC;</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;if&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:menclose notation='updiagonalstrike'><mml:mo>&#x022A8;</mml:mo></mml:menclose><mml:mi>&#x003C6;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;if&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:msubsup><mml:mi>&#x003C6;</mml:mi><mml:mi>c</mml:mi><mml:mi>x</mml:mi></mml:msubsup><mml:mtext>&#x000A0;for&#x000A0;some&#x000A0;constant&#x000A0;</mml:mtext><mml:mi>c</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>K</mml:mtext></mml:mstyle><mml:mi>&#x003C6;</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;if&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02329;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:mo>&#x0232A;</mml:mo><mml:mo>&#x022A8;</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mtext>&#x000A0;for&#x000A0;every&#x000A0;</mml:mtext><mml:msup><mml:mi mathvariant="script">I</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:mo>&#x02208;</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Then, the answers <inline-formula><mml:math id="M205"><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> of an <italic>EQL-Lite</italic>(UCQ) query <inline-formula><mml:math id="M206"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> w.r.t. a data integration system <inline-formula><mml:math id="M207"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> and an <inline-formula><mml:math id="M208"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> are those tuples <inline-formula><mml:math id="M209"><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> of constants such that <inline-formula><mml:math id="M210"><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">mod</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow><mml:mo>&#x022A7;</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> for every <inline-formula><mml:math id="M211"><mml:mi>B</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">mod</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p><bold> Example 2</bold>. Consider Example 1 and suppose we are interested in asking for all <italic>x</italic> such that there exists <italic>y</italic> such that we know (<italic>x, y</italic>) belongs to <italic>g</italic><sub>1</sub>. This can be expressed in <italic>EQL-Lite</italic>(UCQ) as follows:</p>
<disp-formula id="E3"><mml:math id="M212"><mml:mrow><mml:msubsup><mml:mi>q</mml:mi><mml:mi mathvariant='script'>G</mml:mi><mml:mn>6</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mo stretchy='false'>&#x0007B;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mo>.</mml:mo><mml:mstyle mathvariant='bold-italic'><mml:mtext>K</mml:mtext></mml:mstyle><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>&#x0007D;</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Note that the query <inline-formula><mml:math id="M213"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is different from the query asking for all <italic>x</italic> such that we know there exists <italic>y</italic> such that (<italic>x, y</italic>) belongs to <italic>g</italic><sub>1</sub>, which is expressed as follows:</p>
<disp-formula id="E4"><mml:math id="M214"><mml:mrow><mml:msubsup><mml:mi>q</mml:mi><mml:mi mathvariant='script'>G</mml:mi><mml:mn>7</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mo stretchy='false'>&#x0007B;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant='bold-italic'><mml:mtext>K</mml:mtext></mml:mstyle><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext>.</mml:mtext><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>&#x0007D;</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Indeed, while it can be verified that the answers to <inline-formula><mml:math id="M215"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> over <inline-formula><mml:math id="M216"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> coincide with the answers to the query <inline-formula><mml:math id="M217"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, the answers to <inline-formula><mml:math id="M218"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>7</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> over <inline-formula><mml:math id="M219"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> coincide with the answers to the query <inline-formula><mml:math id="M220"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0222A;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>.</p></sec></sec>
<sec id="s3">
<title>3. Framework</title>
<p>We proceed to introduce the notion of query abstraction following Cima et al. (<xref ref-type="bibr" rid="B14">2019</xref>) for the basic definitions. We say that <inline-formula><mml:math id="M221"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a <italic>perfect</italic> <inline-formula><mml:math id="M222"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula><italic>-abstraction of</italic> <inline-formula><mml:math id="M223"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula><mml:math id="M224"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, for each <inline-formula><mml:math id="M225"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> consistent with <inline-formula><mml:math id="M226"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>. Clearly, if a perfect <inline-formula><mml:math id="M227"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M228"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> exists, then it is unique up to <inline-formula><mml:math id="M229"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-equivalence, i.e., if <italic>q</italic>&#x02032; is a perfect <inline-formula><mml:math id="M230"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M231"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> then <inline-formula><mml:math id="M232"><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mo>=</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. Therefore in the following we will talk about <italic>the</italic> perfect <inline-formula><mml:math id="M233"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M234"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><bold> Example 3</bold>. Consider Example 1. It is easy to verify that <inline-formula><mml:math id="M235"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is the perfect <inline-formula><mml:math id="M236"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M237"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p>The following theorem presents a preliminary characterization of the existence of perfect <inline-formula><mml:math id="M238"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions.</p>
<p><bold> Theorem 1</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Theorem 1)] There exists a perfect <inline-formula><mml:math id="M239"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M240"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if and only if for all pair <italic>D, D</italic>&#x02032; of <inline-formula><mml:math id="M241"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-databases, <inline-formula><mml:math id="M242"><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> implies <inline-formula><mml:math id="M243"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p>As the condition of being a perfect <inline-formula><mml:math id="M244"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of source query is rather strong one, it might be very well the case that such a global schema query may not exist.</p>
<p><bold> Example 4</bold>. Consider again Example 1. Using Theorem 1, we can show that there exists no perfect <inline-formula><mml:math id="M245"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction for <inline-formula><mml:math id="M246"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. In fact, for the databases <italic>D</italic> &#x0003D; {<italic>s</italic><sub>5</sub>(<italic>a, b</italic>)} and <inline-formula><mml:math id="M247"><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, we have <inline-formula><mml:math id="M248"><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> but <inline-formula><mml:math id="M249"><mml:mi>D</mml:mi><mml:mo>&#x022AD;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> while <inline-formula><mml:math id="M250"><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x022A7;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p>In these cases, it is reasonable to consider weaker notions, such as sound or complete approximations of perfectness. We say that <inline-formula><mml:math id="M251"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a <italic>complete</italic> <inline-formula><mml:math id="M252"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula><italic>-abstraction of</italic> <inline-formula><mml:math id="M253"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula><mml:math id="M254"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x02286;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, for each <inline-formula><mml:math id="M255"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> consistent with <inline-formula><mml:math id="M256"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>. Similarly, we say that <inline-formula><mml:math id="M257"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a <italic>sound</italic> <inline-formula><mml:math id="M258"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula><italic>-abstraction of</italic> <inline-formula><mml:math id="M259"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula><mml:math id="M260"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x02286;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, for each <inline-formula><mml:math id="M261"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> consistent with <inline-formula><mml:math id="M262"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>. Obviously, one is interested in complete or sound abstractions that approximate <inline-formula><mml:math id="M263"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> <italic>at best</italic>, at least in the context of a specific class of queries. If <inline-formula><mml:math id="M264"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a class of queries, we say that a global schema query <inline-formula><mml:math id="M265"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is an <inline-formula><mml:math id="M266"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula><italic>-minimally complete</italic> <inline-formula><mml:math id="M267"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula><italic>-abstraction of</italic> <inline-formula><mml:math id="M268"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula><mml:math id="M269"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a complete <inline-formula><mml:math id="M270"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M271"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and there is no global schema query <inline-formula><mml:math id="M272"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> such that <inline-formula><mml:math id="M273"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is a complete <inline-formula><mml:math id="M274"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M275"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M276"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mi>&#x0228F;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. Similarly, we say that a global schema query <inline-formula><mml:math id="M277"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is an <inline-formula><mml:math id="M278"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula><italic>-maximally sound</italic> <inline-formula><mml:math id="M279"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula><italic>-abstraction of</italic> <inline-formula><mml:math id="M280"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula><mml:math id="M281"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a sound <inline-formula><mml:math id="M282"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M283"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and there is no global schema query <inline-formula><mml:math id="M284"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> such that <inline-formula><mml:math id="M285"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is a sound <inline-formula><mml:math id="M286"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M287"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and resp., <inline-formula><mml:math id="M288"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>&#x0228F;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p><bold> Example 5</bold>. Consider again Example 1. Queries <inline-formula><mml:math id="M289"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M290"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> are, respectively, the UCQ-minimally complete and UCQ-maximally sound <inline-formula><mml:math id="M291"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M292"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p>Depending on the chosen language <inline-formula><mml:math id="M293"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, it may be the case that no <inline-formula><mml:math id="M294"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>-minimally complete or <inline-formula><mml:math id="M295"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>-maximally sound <inline-formula><mml:math id="M296"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction exists (see again Example 1 for some concrete cases). Moreover, even if one such abstraction exists, it may not be unique. For some classes <inline-formula><mml:math id="M297"><mml:mrow><mml:mi mathvariant="script">Q</mml:mi></mml:mrow></mml:math></inline-formula> of queries, however, one can show that a <inline-formula><mml:math id="M298"><mml:mrow><mml:mi mathvariant="script">Q</mml:mi></mml:mrow></mml:math></inline-formula>-maximally sound (resp., <inline-formula><mml:math id="M299"><mml:mrow><mml:mi mathvariant="script">Q</mml:mi></mml:mrow></mml:math></inline-formula>-minimally complete) <inline-formula><mml:math id="M300"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M301"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> exists, then it is unique up to <inline-formula><mml:math id="M302"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-equivalence. This is the case, for example, of the class of UCQs for which, if a UCQ-maximally sound (resp., UCQ-minimally complete) <inline-formula><mml:math id="M303"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of exists, then it is unique up to <inline-formula><mml:math id="M304"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-equivalence. Thus, in the following, we simply talk about <italic>the</italic> UCQ-maximally sound and <italic>the</italic> UCQ-minimally complete <inline-formula><mml:math id="M305"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of a source query <inline-formula><mml:math id="M306"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. Other classes of queries with this properties will be introduced in the subsequent sections.</p>
<p>In the next sections, we will study <inline-formula><mml:math id="M307"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction for data integration systems of a specific form, namely where (<italic>i</italic>) the mapping is of type GLAV or special cases of GLAV, and (<italic>ii</italic>) if not otherwise stated, the set of axioms of both the global schema and the source schema is empty. Also, we will limit our analysis to abstractions of UCQ source queries.</p></sec>
<sec id="s4">
<title>4. View-based query processing and query abstraction</title>
<p>It is well-known that there is a relationship between data integration and view-based query processing, grounded on the idea that the sources of a LAV data integration systems can be considered as views defined over the global schema, in particular sound views (Lenzerini, <xref ref-type="bibr" rid="B21">2002</xref>). In this section, we take another approach and establish a relationship between GAV data integration systems and views, based on the idea that the elements of the global schema can be considered as views defined over the source schema.</p>
<p>This section is organized as follows. We first recall the basic notions about view-based query processing. Then, in Section 4.1 we make clear the relationship between GAV data integration systems and views, while in Section 4.2 we establish the connection between abstractions and rewriting queries using views. Finally, in Sections 4.3 and 4.4 we use the above connection to introduce results for abstraction and view-based query processing, respectively. All the results presented in this section appear in Cima et al. (<xref ref-type="bibr" rid="B11">2021</xref>).</p>
<p>View-based query processing is a general term denoting several tasks related to the presence of views in databases. A set of views <inline-formula><mml:math id="M308"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> over a schema <inline-formula><mml:math id="M309"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> is constituted by a finite set of view predicate symbols, where each <inline-formula><mml:math id="M310"><mml:mi>V</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> has a specific arity, and an associated <italic>view definition</italic> <inline-formula><mml:math id="M311"><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, i.e., a query over <inline-formula><mml:math id="M312"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> of the same arity of <italic>V</italic>. An extension of a view <italic>V</italic> is simply a set of facts for <italic>V</italic>, and a <inline-formula><mml:math id="M313"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula><italic>-extension</italic> <inline-formula><mml:math id="M314"><mml:mrow><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:math></inline-formula> is constituted by an extension for each view in <inline-formula><mml:math id="M315"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>. Given a <inline-formula><mml:math id="M316"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>, we denote by <inline-formula><mml:math id="M317"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> the <inline-formula><mml:math id="M318"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-extension <inline-formula><mml:math id="M319"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>V</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mi>V</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">and</mml:mtext></mml:mstyle><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. In what follows, we use the term <inline-formula><mml:math id="M320"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula> views to indicate a set of views in which all view definitions are queries expressed in the query language <inline-formula><mml:math id="M321"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p>Two particular notions have been subject to extensive investigations in the view-based processing literature, namely <italic>view-based query rewriting</italic> and <italic>view-based query answering</italic> (Calvanese et al., <xref ref-type="bibr" rid="B5">2000</xref>, <xref ref-type="bibr" rid="B7">2007b</xref>).</p>
<p>In the former notion, originated in Levy et al. (<xref ref-type="bibr" rid="B22">1995</xref>), we are given a query <inline-formula><mml:math id="M322"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> over a schema <inline-formula><mml:math id="M323"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> and a set of views <inline-formula><mml:math id="M324"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> over <inline-formula><mml:math id="M325"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>, and the goal is to reformulate <inline-formula><mml:math id="M326"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> into a query <inline-formula><mml:math id="M327"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, called a <inline-formula><mml:math id="M328"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting, in terms of the view predicate symbols of <inline-formula><mml:math id="M329"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>. We obtain different variants of <inline-formula><mml:math id="M330"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings depending on the relationship between <inline-formula><mml:math id="M331"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M332"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> we aim at. We call <inline-formula><mml:math id="M333"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> (<italic>i</italic>) a <inline-formula><mml:math id="M334"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula><italic>-rewriting of</italic> <inline-formula><mml:math id="M335"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> <italic>under exact views</italic>, or simply <inline-formula><mml:math id="M336"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula><italic>-rewriting of</italic> <inline-formula><mml:math id="M337"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, if for every <inline-formula><mml:math id="M338"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> it holds that <inline-formula><mml:math id="M339"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>&#x02286;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, (<italic>ii</italic>) an <italic>exact</italic> <inline-formula><mml:math id="M340"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula><italic>-rewriting of</italic> <inline-formula><mml:math id="M341"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if for every <inline-formula><mml:math id="M342"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> it holds that <inline-formula><mml:math id="M343"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. Note that, if we fix a specific query language <inline-formula><mml:math id="M344"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> for expressing <inline-formula><mml:math id="M345"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings, we might lose power in expressing <inline-formula><mml:math id="M346"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings. In this case, a reasonable goal is to compute <inline-formula><mml:math id="M347"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings expressible in <inline-formula><mml:math id="M348"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> that are &#x0201C;maximal&#x0201D; in the class <inline-formula><mml:math id="M349"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. Formally, we say that a query <inline-formula><mml:math id="M350"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is an <inline-formula><mml:math id="M351"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula><italic>-maximal</italic> <inline-formula><mml:math id="M352"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula><italic>-rewriting of</italic> <inline-formula><mml:math id="M353"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, if (<italic>i</italic>) <inline-formula><mml:math id="M354"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a <inline-formula><mml:math id="M355"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M356"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>; and (<italic>ii</italic>) there is no <inline-formula><mml:math id="M357"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> such that (<italic>a</italic>) <italic>q</italic><sub>1</sub> is a <inline-formula><mml:math id="M358"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M359"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, (<italic>b</italic>) <inline-formula><mml:math id="M360"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>&#x02286;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> for each <inline-formula><mml:math id="M361"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>, and (<italic>c</italic>) there is a <inline-formula><mml:math id="M362"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> for which <inline-formula><mml:math id="M363"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>&#x0228A;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p>As argued in Nash et al. (<xref ref-type="bibr" rid="B26">2010</xref>), given <inline-formula><mml:math id="M364"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M365"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>, the problem of checking whether there exists an exact <inline-formula><mml:math id="M366"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M367"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> (called <italic>losslessness with respect to rewriting</italic> Calvanese et al., <xref ref-type="bibr" rid="B7">2007b</xref>) is equivalent to the problem, called <italic>view determinacy</italic> (Nash et al., <xref ref-type="bibr" rid="B26">2010</xref>), of checking whether <inline-formula><mml:math id="M368"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is determined by <inline-formula><mml:math id="M369"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>, denoted <inline-formula><mml:math id="M370"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mo>&#x021A0;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, i.e., whether <inline-formula><mml:math id="M371"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> implies <inline-formula><mml:math id="M372"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math></inline-formula> for each pair of <inline-formula><mml:math id="M373"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-databases <italic>D</italic><sub>1</sub> and <italic>D</italic><sub>2</sub>. Indeed, on the one hand, if <inline-formula><mml:math id="M374"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mo>&#x021A0;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, then the function <inline-formula><mml:math id="M375"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> associating to each <inline-formula><mml:math id="M376"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> the tuples <inline-formula><mml:math id="M377"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, for each <inline-formula><mml:math id="M378"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>, is an exact <inline-formula><mml:math id="M379"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M380"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, on the other hand, if <inline-formula><mml:math id="M381"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mo>&#x021A0;&#x00338;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, then such <inline-formula><mml:math id="M382"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is not a function, and hence an exact <inline-formula><mml:math id="M383"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M384"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> cannot exist.</p>
<p>In the view-based query answering, originated in Duschka and Genesereth (<xref ref-type="bibr" rid="B16">1997</xref>), besides <inline-formula><mml:math id="M385"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M386"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> we are also given a <inline-formula><mml:math id="M387"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-extension <inline-formula><mml:math id="M388"><mml:mrow><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:math></inline-formula>, and the goal is to compute the so-called <italic>certain answers of</italic> <inline-formula><mml:math id="M389"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> <italic>w.r.t</italic>. <inline-formula><mml:math id="M390"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> <italic>and</italic> <inline-formula><mml:math id="M391"><mml:mrow><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:math></inline-formula>, denoted by <inline-formula><mml:math id="M392"><mml:msubsup><mml:mrow><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">cert</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula>, which are those tuples of constants <inline-formula><mml:math id="M393"><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> such that <inline-formula><mml:math id="M394"><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for each <inline-formula><mml:math id="M395"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic> satisfying <inline-formula><mml:math id="M396"><mml:mrow><mml:mi mathvariant="script">E</mml:mi></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. We denote by <inline-formula><mml:math id="M397"><mml:msub><mml:mrow><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">cert</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> the query over <inline-formula><mml:math id="M398"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> that, for every <inline-formula><mml:math id="M399"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-extension <inline-formula><mml:math id="M400"><mml:mrow><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:math></inline-formula>, computes the certain answers of <inline-formula><mml:math id="M401"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> w.r.t. <inline-formula><mml:math id="M402"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M403"><mml:mrow><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:math></inline-formula>, and we call <inline-formula><mml:math id="M404"><mml:msub><mml:mrow><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">cert</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> the <italic>perfect</italic> <inline-formula><mml:math id="M405"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula><italic>-rewriting of</italic> <inline-formula><mml:math id="M406"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> <italic>under sound views</italic>, or simply <italic>perfect</italic> <inline-formula><mml:math id="M407"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula><italic>-rewriting of</italic> <inline-formula><mml:math id="M408"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<sec>
<title>4.1. View-based query processing and data integration</title>
<p>We start by describing how to obtain, from any data integration system <inline-formula><mml:math id="M409"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> with PGAV mapping, a suitable set of UCQ views<xref ref-type="fn" rid="fn0002"><sup>2</sup></xref> <inline-formula><mml:math id="M410"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, and, viceversa, from any set of UCQ views <inline-formula><mml:math id="M411"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>, a suitable data integration system <inline-formula><mml:math id="M412"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> with PGAV mapping.</p>
<p>For a data integration system <inline-formula><mml:math id="M413"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M414"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula>, the set of UCQ views <inline-formula><mml:math id="M415"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is such that (<italic>i</italic>) the set of view symbols coincides with <inline-formula><mml:math id="M416"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, and (<italic>ii</italic>) for each view symbol <italic>g</italic>, the associated view definition <inline-formula><mml:math id="M417"><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is the following UCQ over <inline-formula><mml:math id="M418"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>:</p>
<disp-formula id="E5"><mml:math id="M419"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msubsup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>&#x0222A;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x0222A;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msubsup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></disp-formula>
<p>where we have one disjunct <inline-formula><mml:math id="M420"><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> for each mapping assertion in <inline-formula><mml:math id="M421"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> of the form <inline-formula><mml:math id="M422"><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Note that, if <inline-formula><mml:math id="M423"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula>, then all view definitions in <inline-formula><mml:math id="M424"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> are CQs.</p>
<p><bold> Example 6</bold>. Let <inline-formula><mml:math id="M425"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> be a data integration system such that <inline-formula><mml:math id="M426"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> with:</p>
<disp-formula id="E6"><mml:math id="M427"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Then, the UCQ views <inline-formula><mml:math id="M428"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> over <inline-formula><mml:math id="M429"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> is <inline-formula><mml:math id="M430"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M431"><mml:msub><mml:mrow><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M432"><mml:msub><mml:mrow><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>&#x0222A;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>For a set of UCQ views <inline-formula><mml:math id="M433"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> over a schema <inline-formula><mml:math id="M434"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>, the data integration system <inline-formula><mml:math id="M435"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> is such that (<italic>i</italic>) <inline-formula><mml:math id="M436"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> coincides with the view predicate symbols in <inline-formula><mml:math id="M437"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>, (<italic>ii</italic>) <inline-formula><mml:math id="M438"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> has no axiom, and (<italic>iii</italic>) <inline-formula><mml:math id="M439"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> is defined as follows: for each view symbol <inline-formula><mml:math id="M440"><mml:mi>V</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> and for each CQ <inline-formula><mml:math id="M441"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> that is a disjunct in the UCQ <inline-formula><mml:math id="M442"><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, the mapping <inline-formula><mml:math id="M443"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> includes a mapping assertion of the form: <inline-formula><mml:math id="M444"><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mi>V</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:math></inline-formula> Note that, in general, <inline-formula><mml:math id="M445"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula>. However, if <inline-formula><mml:math id="M446"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> is a set of CQ views, then <inline-formula><mml:math id="M447"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula>.</p>
<p><bold> Example 7</bold>. Let <inline-formula><mml:math id="M448"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> be a set of UCQ views over <inline-formula><mml:math id="M449"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> such that: <inline-formula><mml:math id="M450"><mml:msub><mml:mrow><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x0222A;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x0222A;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M451"><mml:msub><mml:mrow><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>Then, the data integration system is <inline-formula><mml:math id="M452"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M453"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M454"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> with:</p>
<disp-formula id="E7"><mml:math id="M455"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For a data integration system <inline-formula><mml:math id="M456"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> with PGAV mapping and a set of UCQ views <inline-formula><mml:math id="M457"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>, the pair <inline-formula><mml:math id="M458"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is said to be <italic>coherent</italic> if (<italic>i</italic>) the schema over which the set of views <inline-formula><mml:math id="M459"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> is defined and the source of <inline-formula><mml:math id="M460"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> coincide, and (<italic>ii</italic>) <inline-formula><mml:math id="M461"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> or <inline-formula><mml:math id="M462"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. In what follows, when we talk about a coherent pair <inline-formula><mml:math id="M463"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, we use <inline-formula><mml:math id="M464"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> to denote the common schema between <inline-formula><mml:math id="M465"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M466"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p>Based on the relationship between <inline-formula><mml:math id="M467"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M468"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, the following proposition provides a connection between existence of perfect abstractions and existence of exact rewritings.</p>
<p><bold> Proposition 1</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Proposition 1)] If <inline-formula><mml:math id="M469"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a coherent pair and <inline-formula><mml:math id="M470"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is an <inline-formula><mml:math id="M471"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query, then there exists a perfect <inline-formula><mml:math id="M472"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M473"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if and only if there exists an exact <inline-formula><mml:math id="M474"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M475"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p></sec>
<sec>
<title>4.2. Abstractions and rewritings of <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup></title>
<p>We now turn our attention to a concrete class of queries, namely <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup>. From now on, when we use <inline-formula><mml:math id="M476"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>, we refer to a sublanguage of <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup>. By exploiting well-known results, we provide connections between the notion of <inline-formula><mml:math id="M477"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions and <inline-formula><mml:math id="M478"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings in the context of <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup> and its sublanguages. To this end, we first introduce some terminology.</p>
<p>Given a mapping <inline-formula><mml:math id="M479"><mml:mrow><mml:mi>&#x02133;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mtext>PGAV</mml:mtext></mml:mrow></mml:math></inline-formula> relating <inline-formula><mml:math id="M480"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M481"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> and a <inline-formula><mml:math id="M482"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> in a certain query language <inline-formula><mml:math id="M483"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>, the <inline-formula><mml:math id="M484"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula><italic>-unfolding of</italic> <italic>q</italic> (Lenzerini, <xref ref-type="bibr" rid="B21">2002</xref>), denoted by <inline-formula><mml:math id="M485"><mml:msub><mml:mrow><mml:mtext class="textit" mathvariant="italic">unf</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">q</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, is the <inline-formula><mml:math id="M486"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query obtained by replacing each atom &#x003B1; occurring in the expression corresponding to <italic>q</italic> by the logical disjunction of all the left-hand sides of the mapping assertions in <inline-formula><mml:math id="M487"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> having the predicate symbol of &#x003B1; in the right-hand side (being careful to use unique variables in place of those variables that appear in the left-hand side of the mapping assertions but not in the right-hand side of those).</p>
<p>Given a set of UCQ views <inline-formula><mml:math id="M488"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> over <inline-formula><mml:math id="M489"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> and a <inline-formula><mml:math id="M490"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> in a certain query language <inline-formula><mml:math id="M491"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>, the <inline-formula><mml:math id="M492"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula><italic>-expansion of</italic> <italic>q</italic> (Levy et al., <xref ref-type="bibr" rid="B22">1995</xref>), denoted by <inline-formula><mml:math id="M493"><mml:msub><mml:mrow><mml:mstyle mathvariant="italic"><mml:mtext mathvariant="italic">exp</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">q</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, is the <inline-formula><mml:math id="M494"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query obtained by replacing each atom &#x003B1; occurring in in the expression corresponding to <italic>q</italic> by the view definition associated to the view predicate name of &#x003B1; (again, being careful to use unique variables in place of those variables that appear in the bodies of the view but not in the heads of those).</p>
<p><bold> Proposition 2</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Proposition 2)] If <inline-formula><mml:math id="M495"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a coherent pair, <inline-formula><mml:math id="M496"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is an <inline-formula><mml:math id="M497"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query in <inline-formula><mml:math id="M498"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>, and <italic>q</italic> is a query in <inline-formula><mml:math id="M499"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>, then <italic>q</italic> is a sound (resp., perfect) <inline-formula><mml:math id="M500"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M501"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if and only if <italic>q</italic> is a <inline-formula><mml:math id="M502"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting (resp.,exact <inline-formula><mml:math id="M503"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting) of <inline-formula><mml:math id="M504"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>Actually, as shown in Duschka and Genesereth (<xref ref-type="bibr" rid="B17">1998</xref>, Lemma 1), if <inline-formula><mml:math id="M505"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula> allows for the union operator, then for any pair of UCQ views <inline-formula><mml:math id="M506"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> over <inline-formula><mml:math id="M507"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> and query <inline-formula><mml:math id="M508"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula> over <inline-formula><mml:math id="M509"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>, if an <inline-formula><mml:math id="M510"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>-maximal <inline-formula><mml:math id="M511"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M512"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> exists, then it is unique up to <inline-formula><mml:math id="M513"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-equivalence, and, moreover, it coincides with the perfect <inline-formula><mml:math id="M514"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M515"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.<xref ref-type="fn" rid="fn0003"><sup>3</sup></xref> From Proposition 2 and the above observation, we can derive the following result.</p>
<p><bold> Corollary 1</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Corollary 1)] If <inline-formula><mml:math id="M516"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a coherent pair and <inline-formula><mml:math id="M517"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula> allows for the union operator, then for every pair of queries <inline-formula><mml:math id="M518"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>, we have that <italic>q</italic> is the <inline-formula><mml:math id="M519"><mml:mrow><mml:mi mathvariant="script">L</mml:mi></mml:mrow></mml:math></inline-formula>-maximally sound <inline-formula><mml:math id="M520"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M521"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> if and only if <italic>q</italic> is the perfect <inline-formula><mml:math id="M522"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M523"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>By exploiting the above provided relationships, we are now ready to investigate how results and techniques from the view-based query processing literature can be directly translated into results and techniques in the context of abstraction, and viceversa.</p></sec>
<sec>
<title>4.3. From view-based query processing to abstraction</title>
<p>By combining Proposition 1 with a well-known undecidability result about view determinacy, we can derive a negative result about an arguably fundamental problem for the notion of abstraction, namely the <italic>existence problem</italic> (with no restrictions on the query language to express perfect abstractions) of perfect abstractions, even in very restricted settings.</p>
<p><bold> Theorem 2</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Theorem 2)] Given a data integration system <inline-formula><mml:math id="M524"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M525"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula> and a CQ <inline-formula><mml:math id="M526"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query <inline-formula><mml:math id="M527"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, checking whether there exists a perfect <inline-formula><mml:math id="M528"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M529"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is undecidable.</p>
<p>By exploiting Corollary 1, we now illustrate how to use off-the-shelf algorithms for rewriting queries in the presence of views as algorithms for computing abstractions. By results of Levy et al. (<xref ref-type="bibr" rid="B22">1995</xref>), for CQ views <inline-formula><mml:math id="M530"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>, perfect <inline-formula><mml:math id="M531"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of UCQs <inline-formula><mml:math id="M532"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> can be always expressed as UCQs, and can be always computed [e.g., by means of the <italic>bucket</italic> algorithm (Levy et al., <xref ref-type="bibr" rid="B23">1996</xref>) or the <italic>MiniCon</italic> algorithm (Pottinger and Halevy, <xref ref-type="bibr" rid="B27">2001</xref>)]. Thus Corollary 1 implies that, given a data integration system <inline-formula><mml:math id="M533"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M534"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>S</mml:mi><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula> and a UCQ <inline-formula><mml:math id="M535"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query <inline-formula><mml:math id="M536"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, we can compute the UCQ-maximally sound <inline-formula><mml:math id="M537"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M538"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> as follows: (<italic>i</italic>) compute <inline-formula><mml:math id="M539"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, and (<italic>ii</italic>) compute and return the UCQ corresponding to the perfect <inline-formula><mml:math id="M540"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M541"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><bold> Corollary 2</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Corollary 2)] If <inline-formula><mml:math id="M542"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> is a data integration system with SPGAV mapping and <inline-formula><mml:math id="M543"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a UCQ <inline-formula><mml:math id="M544"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query, then the UCQ-maximally sound <inline-formula><mml:math id="M545"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M546"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> exists and is computable.</p>
<p>Things get more complicated when we consider a data integration system <inline-formula><mml:math id="M547"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> with PGAV mappings, which are clearly more expressive than SPGAV, for which <inline-formula><mml:math id="M548"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a set of UCQ views, rather than CQ views. Indeed, for UCQ views <inline-formula><mml:math id="M549"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>, UCQ-maximal <inline-formula><mml:math id="M550"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of CQs <inline-formula><mml:math id="M551"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> are not guaranteed to exist (Duschka and Genesereth, <xref ref-type="bibr" rid="B17">1998</xref>; Afrati and Chirkova, <xref ref-type="bibr" rid="B2">2019</xref>), and thus, in general, perfect <inline-formula><mml:math id="M552"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of CQs <inline-formula><mml:math id="M553"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> are not expressible as UCQs. However, the perfect <inline-formula><mml:math id="M554"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of UCQs (actually, even of <italic>Datalog</italic> queries) <inline-formula><mml:math id="M555"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> can always be expressed in <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup>, and can always be computed using the technique presented in Duschka and Genesereth (<xref ref-type="bibr" rid="B17">1998</xref>). Thus, Corollary 1 implies that, given a data integration system <inline-formula><mml:math id="M556"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M557"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula> and a UCQ <inline-formula><mml:math id="M558"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query <inline-formula><mml:math id="M559"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, we can compute the <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup>-maximally sound <inline-formula><mml:math id="M560"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M561"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> as follows: (<italic>i</italic>) compute <inline-formula><mml:math id="M562"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, and (<italic>ii</italic>) compute and return the <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup> query corresponding to the perfect <inline-formula><mml:math id="M563"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M564"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><bold> Corollary 3</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Corollary 3)] If <inline-formula><mml:math id="M565"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> is a data integration system with PGAV mapping and <inline-formula><mml:math id="M566"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a UCQ <inline-formula><mml:math id="M567"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query, then the <sans-serif><italic>DD</italic></sans-serif><sup>&#x02260;</sup>-maximally sound <inline-formula><mml:math id="M568"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M569"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> exists and is computable.</p></sec>
<sec>
<title>4.4. From abstraction to view-based query processing</title>
<p>As already observed, Duschka and Genesereth (<xref ref-type="bibr" rid="B17">1998</xref>) and Afrati and Chirkova (<xref ref-type="bibr" rid="B2">2019</xref>) show that for a given set <inline-formula><mml:math id="M570"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> of UCQ views, UCQ-maximal <inline-formula><mml:math id="M571"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of CQs may not exist. Combined with an observation made above, this means that perfect <inline-formula><mml:math id="M572"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of CQs are in general not expressible as UCQs. We point out that the CQ <inline-formula><mml:math id="M573"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> used to prove such results contain more than one join existential variable. As a consequence, in the case of UCQ views <inline-formula><mml:math id="M574"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>, it is still open whether (<italic>i</italic>) the result holds even for <inline-formula><mml:math id="M575"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> with just one join existential variable (<italic>ii</italic>) perfect <inline-formula><mml:math id="M576"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of UCQJFEs are expressible as UCQs. By combining Corollary 1 with results of Cima et al. (<xref ref-type="bibr" rid="B14">2019</xref>) (that we will discuss in Section 5), we can actually answer positively to both questions.</p>
<p><bold> Corollary 4</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Corollary 4)] For a set <inline-formula><mml:math id="M577"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> of UCQ views, the UCQ-maximal <inline-formula><mml:math id="M578"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of <inline-formula><mml:math id="M579"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> may not exist, even if <inline-formula><mml:math id="M580"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a CQ with one join existential variable.</p>
<p>On the other hand, in Section 5, we will show that for a data integration systems <inline-formula><mml:math id="M581"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> with PGAV mapping, UCQ-maximally sound <inline-formula><mml:math id="M582"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of UCQJFEs are guaranteed to exist, and we will provide an algorithm to compute them (Theorem 5). Thus, given a set of UCQ views <inline-formula><mml:math id="M583"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> over a schema <inline-formula><mml:math id="M584"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> and a UCQJFE <inline-formula><mml:math id="M585"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query <inline-formula><mml:math id="M586"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, we can compute the perfect <inline-formula><mml:math id="M587"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M588"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> as follows: (<italic>i</italic>) compute <inline-formula><mml:math id="M589"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, and (<italic>ii</italic>) compute and return the UCQ-maximally sound <inline-formula><mml:math id="M590"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M591"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. This leads to the following positive result for <inline-formula><mml:math id="M592"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewritings of UCQJFEs.</p>
<p><bold> Corollary 5</bold>. [(Cima et al., <xref ref-type="bibr" rid="B11">2021</xref>, Corollary 5)] If <inline-formula><mml:math id="M593"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula> is a set of UCQ views and <inline-formula><mml:math id="M594"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a UCQJFE <inline-formula><mml:math id="M595"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query, then the perfect <inline-formula><mml:math id="M596"><mml:mrow><mml:mi mathvariant="script">V</mml:mi></mml:mrow></mml:math></inline-formula>-rewriting of <inline-formula><mml:math id="M597"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is computable and can be expressed as a UCQ.</p></sec></sec>
<sec id="s5">
<title>5. UCQ abstractions</title>
<p>In this section we investigate the problem of checking the existence of abstractions in the class UCQ, and of their computation. We first study the case of UCQ-minimally complete <inline-formula><mml:math id="M598"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions, then we switch to UCQ-maximally sound <inline-formula><mml:math id="M599"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions, and finally we tackle perfect <inline-formula><mml:math id="M600"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions in the class UCQ. We observe that all the results presented in this section appear in Cima et al. (<xref ref-type="bibr" rid="B14">2019</xref>).</p>
<p>On the positive side, we show that UCQ-minimally complete abstractions always exist, by providing an algorithm to compute them. In a nutshell, given a data integration system <inline-formula><mml:math id="M601"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> and a UCQ <inline-formula><mml:math id="M602"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0222A;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x0222A;</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, an algorithm to compute the UCQ minimally-complete <inline-formula><mml:math id="M603"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M604"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> returns the union of CQs of the form <inline-formula><mml:math id="M605"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">Y</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:mo>&#x022A4;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> obtained by simply &#x0201C;applying&#x0201D; the mapping <inline-formula><mml:math id="M606"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> to each CQ <inline-formula><mml:math id="M607"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> in <inline-formula><mml:math id="M608"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, using &#x022A4; to bind the distinguished variables that are not involved in the application of <inline-formula><mml:math id="M609"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M610"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. Formally, applying the GLAV mapping <inline-formula><mml:math id="M611"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> to a CQ <italic>q</italic> means to chase (Fagin et al., <xref ref-type="bibr" rid="B19">2005</xref>) the atoms in <italic>q</italic> by using the tuple generating dependencies corresponding to the assertions in <inline-formula><mml:math id="M612"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><bold> Theorem 3</bold>. [(Cima et al., <xref ref-type="bibr" rid="B14">2019</xref>, Theorem 13)] The UCQ-minimally complete <inline-formula><mml:math id="M613"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M614"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> always exists and is computable.</p>
<p>On the negative side, the following shows that UCQ-maximally sound abstractions may not exist.</p>
<p><bold> Theorem 4</bold>. [(Cima et al., <xref ref-type="bibr" rid="B14">2019</xref>, Theorem 16)] The UCQ-maximally sound <inline-formula><mml:math id="M615"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of <inline-formula><mml:math id="M616"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> may not exist if at least one of the following is true:</p>
<list list-type="simple">
<list-item><p>(a) <inline-formula><mml:math id="M617"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> contains a join existential variable;</p></list-item>
<list-item><p>(b) <inline-formula><mml:math id="M618"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> contains a LAV mapping assertion;</p></list-item>
<list-item><p>(c) <inline-formula><mml:math id="M619"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> contains a non-PGAV mapping assertion.</p></list-item>
</list>
<p>Interestingly, in order to illustrate the case (a) of the above theorem we can refer to a slight modification of the data integration system <inline-formula><mml:math id="M620"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> introduced in Example 1. In particular, let <inline-formula><mml:math id="M621"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> be obtained from <inline-formula><mml:math id="M622"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> by removing from <inline-formula><mml:math id="M623"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> the mapping <italic>m</italic><sub>1</sub>, and consider the query <inline-formula><mml:math id="M624"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> of Example 1. Note that <inline-formula><mml:math id="M625"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="M626"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> contains a join existential variable, <italic>x</italic>. Clearly, removing <italic>m</italic><sub>1</sub> has no impact on the abstraction of <inline-formula><mml:math id="M627"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. Thus, as already discussed in Example 1, there exists no UCQ-maximally sound <inline-formula><mml:math id="M628"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M629"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p>Motivated by Theorem 4, we next introduce a specific scenario, that we call <italic>restricted</italic>, obtained from the general one by limiting the mapping language to PGAV, and <inline-formula><mml:math id="M630"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> to be UCQJFEs. It can be shown that for such a restricted scenario, UCQ-maximally sound abstractions always exist. Intuitively, the latter can be derived by showing that for any UCQJFE <inline-formula><mml:math id="M631"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and data integration system <inline-formula><mml:math id="M632"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M633"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="sans-serif"><mml:mi>P</mml:mi><mml:mi>G</mml:mi><mml:mi>A</mml:mi><mml:mi>V</mml:mi></mml:mstyle></mml:math></inline-formula>, a CQ-maximally sound <inline-formula><mml:math id="M634"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M635"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> may comprise at most <inline-formula><mml:math id="M636"><mml:msubsup><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> atoms, where <inline-formula><mml:math id="M637"><mml:msubsup><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> is an integer that depends on the number of atoms occurring in <inline-formula><mml:math id="M638"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and the number of mapping assertions occurring in <inline-formula><mml:math id="M639"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula>. Hence, given a data integration system <inline-formula><mml:math id="M640"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> with PGAV mapping and an UCQJFE <inline-formula><mml:math id="M641"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, an algorithm to compute the UCQ-maximally sound <inline-formula><mml:math id="M642"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M643"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> simply returns the union of all CQs <inline-formula><mml:math id="M644"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> comprising at most <inline-formula><mml:math id="M645"><mml:msubsup><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> atoms, that are sound <inline-formula><mml:math id="M646"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of <inline-formula><mml:math id="M647"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. The crucial observation here is that in order to check whether <inline-formula><mml:math id="M648"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a sound <inline-formula><mml:math id="M649"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M650"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, it is sufficient to check whether <inline-formula><mml:math id="M651"><mml:mrow><mml:mi>u</mml:mi><mml:mi>n</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mi>&#x02133;</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant='script'>G</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M652"><mml:mo>&#x02291;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, which is decidable, since both <inline-formula><mml:math id="M653"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula><mml:math id="M654"><mml:mrow><mml:mi>u</mml:mi><mml:mi>n</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mi>&#x02133;</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant='script'>G</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula> are UCQs (Sagiv and Yannakakis, <xref ref-type="bibr" rid="B28">1980</xref>).</p>
<p><bold> Theorem 5</bold>. [(Cima et al., <xref ref-type="bibr" rid="B14">2019</xref>, Theorem 21)] In the restricted scenario, the UCQ-maximally sound <inline-formula><mml:math id="M655"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of <inline-formula><mml:math id="M656"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> always exists and is computable.</p>
<p>To conclude the section, we provide the last positive result about perfect abstractions in the class UCQ. Namely, we show that checking whether there exists a UCQ that is the perfect <inline-formula><mml:math id="M657"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M658"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is decidable. In particular, given a data integration system <inline-formula><mml:math id="M659"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> with GLAV mapping and a UCQ <inline-formula><mml:math id="M660"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, an algorithm to decide whether there exists a UCQ that is a perfect <inline-formula><mml:math id="M661"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M662"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> proceeds as follows. First, it computes the query <inline-formula><mml:math id="M663"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> that is the UCQ-minimally complete <inline-formula><mml:math id="M664"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M665"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. Then, it checks whether <inline-formula><mml:math id="M666"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is a sound abstraction of <inline-formula><mml:math id="M667"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> (as discussed above). If the answer is negative, then there exists no UCQ that is a perfect <inline-formula><mml:math id="M668"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M669"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. If the answer is positive, then <inline-formula><mml:math id="M670"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is actually a UCQ, and is the perfect <inline-formula><mml:math id="M671"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M672"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. Thus the algorithm also solves the computation problem for perfect abstractions in the UCQ language.</p>
<p><bold> Theorem 6</bold>. [Cima et al. (<xref ref-type="bibr" rid="B14">2019</xref>)] Checking whether there exists a query <italic>q</italic> in the class UCQ that is the perfect <inline-formula><mml:math id="M673"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M674"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is decidable. Moreover, there is an algorithm that computes <italic>q</italic>, whenever it exists.</p></sec>
<sec id="s6">
<title>6. Monotone abstractions</title>
<p>The notion of monotonicity defines a very natural class of queries that is popular in the field of databases and knowledge representation alike. The intuition behind monotone queries is simple: a query <italic>q</italic> is monotone if, whenever the data we posses increases, the answers for <italic>q</italic> do not decrease. In the literature, however, this notion has been formalized in two distinct ways. In the context of databases, a <inline-formula><mml:math id="M675"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> is monotone if, for every pair of <inline-formula><mml:math id="M676"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-databases <italic>D, D</italic>&#x02032; such that <italic>D</italic>&#x02286;<italic>D</italic>&#x02032;, we have <italic>q</italic><sup><italic>D</italic></sup>&#x02286;<italic>q</italic><sup><italic>D</italic></sup>&#x02032;. Even very simple FOL queries can be shown not to be monotone under this notion. On the other hand, in the context of mathematical logic, the notion of monotonicity comes in a different flavor: a <inline-formula><mml:math id="M677"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> is monotone, if, for every every set of interpretations &#x003A3;, &#x003A3;&#x02032; for <inline-formula><mml:math id="M678"><mml:mrow><mml:mi mathvariant="script">T</mml:mi></mml:mrow></mml:math></inline-formula> such that &#x003A3;&#x02286;&#x003A3;&#x02032;, we have <italic>q</italic><sup>&#x003A3;</sup>&#x02286;<italic>q</italic><sup>&#x003A3;</sup>&#x02032;. We observe here that, under the semantics of certain answers, FOL queries are monotone in this sense.</p>
<p>To define the notion of monotone queries in the context of a data integration system, we use the notion of monotonicty from logic. A <inline-formula><mml:math id="M679"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic> is <italic>monotone in the context of a data integration system</italic> <inline-formula><mml:math id="M680"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> if for every pair <italic>D, D</italic>&#x02032; of <inline-formula><mml:math id="M681"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-databases, <inline-formula><mml:math id="M682"><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02286;</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> implies <inline-formula><mml:math id="M683"><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>&#x02286;</mml:mo><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. In the following, we use &#x1D510;<sup><italic>J</italic></sup> to denote the class of monotone queries in the context of <inline-formula><mml:math id="M684"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, and when <inline-formula><mml:math id="M685"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> is understood, we simply use &#x1D510;.</p>
<p>This notion of monotonicity is natural yet broad enough to characterize some of the most popular classes of queries. For example, it is trivial to see that queries evaluated under certain answer semantics are monotone. In the light of this consideration, it is natural to ask whether perfect and approximated abstractions in the class of monotone queries always exist for a given class of source queries and whether they can be computed. Moreover, one can show that, whenever an &#x1D510;-maximally sound (resp., &#x1D510;-minimally complete) <inline-formula><mml:math id="M686"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction exists, then it is unique. Therefore, from now on, given a source query <inline-formula><mml:math id="M687"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, we will talk about the &#x1D510;-maximally sound (resp., the &#x1D510;-minimally complete) <inline-formula><mml:math id="M688"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M689"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>In the remainder of this section, we survey recent results on monotone abstractions of UCQs presented in Cima et al. (<xref ref-type="bibr" rid="B12">2022</xref>). We introduce a language of monotone queries, called DD<sup><bold>K</bold></sup>, with attractive computational properties (Section 6.1). For the case of data integration systems with no axioms in both the global schema and in the source schema, we show that minimally complete and maximally sound monotone abstractions for UCQ source queries always exist, and are expressible in DD<sup><bold>K</bold></sup>. From these results, we also derive the decidability of checking whether a perfect monotone abstraction of a given source query exists (Section 6.2).</p>
<sec>
<title>6.1. A language for monotone abstractions</title>
<p>Monotone queries form a natural yet expressive class of queries. Unsurprisingly, perfect and approximated monotone abstractions require a suitably expressive query language. We now introduce one such language and discuss some of its most compelling computational characteristics. The language, called DD<sup><bold>K</bold></sup>, is based on disjunctive Datalog, extended with an epistemic operator. We present it in a form specifically tailored for querying data integration systems.</p>
<p>Assume a data integration system <inline-formula><mml:math id="M690"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> and an alphabet of predicate symbols <italic>Int</italic>, called <italic>intensional predicate symbols</italic>, disjoint from the alphabets of <inline-formula><mml:math id="M691"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M692"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>. We now consider the case where the logical theories corresponding to both <inline-formula><mml:math id="M693"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M694"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> may have a nonempty set of axioms.</p>
<p>A DD<sup><bold>K</bold></sup> query for <inline-formula><mml:math id="M695"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> includes a set of rules, each one of two possible forms:</p>
<list list-type="bullet">
<list-item><p>the typical form of disjunctive Datalog, i.e.,</p></list-item></list>
<disp-formula id="E8"><label>(1)</label><mml:math id="M696"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02227;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02228;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>b</italic><sub>1</sub>, &#x02026;, <italic>b</italic><sub><italic>m</italic></sub> and <italic>i</italic><sub>1</sub>, &#x02026;, <italic>i</italic><sub><italic>n</italic></sub> are atoms on intensional predicates, and</p>
<list list-type="bullet">
<list-item><p>a new form specified as follows</p></list-item></list>
<disp-formula id="E9"><label>(2)</label><mml:math id="M697"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle mathvariant='bold'><mml:mtext>K</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02228;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x02228;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo stretchy="true">&#x02228;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext><mml:msub><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where each &#x003C8;<sub><italic>i</italic></sub> is a conjunction of atoms over <italic>Int</italic>, and each &#x003D5;<sub><italic>i</italic></sub> is of the form <inline-formula><mml:math id="M698"><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:mi>&#x003BE;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, with <inline-formula><mml:math id="M699"><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> a conjunction of atoms over <inline-formula><mml:math id="M700"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M701"><mml:mi>&#x003BE;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> a conjunction of inequalities over variables in <inline-formula><mml:math id="M702"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> only.</p>
<p>An <italic>n</italic>-ary DD<sup><bold>K</bold></sup> query <italic>q</italic> for <inline-formula><mml:math id="M703"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> is a pair <inline-formula><mml:math id="M704"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M705"><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:math></inline-formula> is a finite set of DD<sup><bold>K</bold></sup> rules, called the definition of <italic>q</italic>, and <italic>Ans</italic> is an <italic>n</italic>-ary intensional predicate in <italic>Int</italic>, called the answer predicate of <italic>q</italic>.</p>
<p>Answers for DD<sup><bold>K</bold></sup> queries are defined based on the notions presented in Calvanese et al. (<xref ref-type="bibr" rid="B4">2007a</xref>). An interpretation for <italic>q</italic> is a pair <italic>I</italic> &#x0003D; (<italic>E, f</italic>), where <italic>E</italic> is a set of interpretations for <inline-formula><mml:math id="M706"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>, and <italic>f</italic> is an interpretation for <italic>Int</italic> with domain <italic>C</italic>. An interpretation <italic>I</italic> &#x0003D; (<italic>E, f</italic>) satisfies a DD<sup><bold>K</bold></sup> rule &#x003C1; of <italic>q</italic> (written <italic>I</italic>&#x022A7;&#x003C1;) if the following conditions hold:</p>
<list list-type="bullet">
<list-item><p>If &#x003C1; is a formula of the form (1), then <italic>I</italic>&#x022A7;&#x003C1; if <italic>f</italic>&#x022A7;&#x003C1;, i.e., <italic>f</italic> satisfies the implication in (1).</p></list-item>
<list-item><p>If &#x003C1; is a formula of the form (2), then <italic>I</italic>&#x022A7;&#x003C1; if for all tuples <inline-formula><mml:math id="M707"><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> of values in <italic>C</italic>, if <italic>I</italic> satisfies the epistemic formula <inline-formula><mml:math id="M708"><mml:mrow><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mtext>K</mml:mtext></mml:mstyle><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mo>&#x02227;</mml:mo><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>&#x003D5;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mover accent='true'><mml:mi>c</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x0007D;</mml:mo></mml:mrow></mml:math></inline-formula>, then there is <italic>j</italic> such that <inline-formula><mml:math id="M709"><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is true in <italic>f</italic>.</p></list-item>
</list>
<p>An interpretation <italic>I</italic> for <italic>q</italic> is called a <italic>model</italic> of <italic>q</italic> if all the rules in the definition of <italic>q</italic> are satisfied by <italic>I</italic>. It should be clear that, under this definition of semantics, <bold>K</bold> represents the &#x0201C;knowledge" operator of the modal logic system S5. In other words, the formula <bold>K</bold>&#x003B1; should be read as &#x0201C;&#x003B1; is known (i.e., logically implied) by the system&#x0201D;.</p>
<p>We are ready to define what is the answer <inline-formula><mml:math id="M710"><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> of a DD<sup><bold>K</bold></sup> query <inline-formula><mml:math id="M711"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> with respect to <inline-formula><mml:math id="M712"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> and the <inline-formula><mml:math id="M713"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>. Specifically, <inline-formula><mml:math id="M714"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant='script'>J</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo>&#x02229;</mml:mo><mml:mo>&#x0007B;</mml:mo><mml:mover accent='true'><mml:mi>c</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover><mml:mo>&#x02208;</mml:mo><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mi>f</mml:mi></mml:msup><mml:mo>&#x0007C;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi mathvariant='script'>J</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula> is a model of <italic>q</italic>}.</p>
<p>While a thorough analysis of DD<sup><bold>K</bold></sup> is outside the scope of the present work, we mention some of its most appealing characteristics. Firstly, we observe that DD<sup><bold>K</bold></sup> generalizes UCQs. In particular, every UCQ <italic>q</italic> of <italic>m</italic> disjuncts is equivalent to a DD<sup><bold>K</bold></sup> query with one rule of the form (2) where the disjuncts of <italic>q</italic> are in the scope of <bold>K</bold>. Secondly, every DD<sup><bold>K</bold></sup> query <italic>q</italic> over <inline-formula><mml:math id="M715"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> is monotone in the context of <inline-formula><mml:math id="M716"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>. Intuitively, monotonicity follows from a simple form of stratification where certain answers to UCQs (rules of the form (2)) and recursive computations (rules (1)) never mix. In turn, this simple form of stratification guarantees that answering <italic>q</italic> over <inline-formula><mml:math id="M717"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> boils down to the following: (<italic>i</italic>) computing certain answers for the UCQs in the scope of <bold>K</bold> in the left-hand side of rules of the form (1) in <italic>q</italic>, and (<italic>ii</italic>) computing the answers for the remaining rules (form (2)) over the result of the previous step. Monotonicity follows from the monotonicity of certain answers to UCQs, and from the fact that the rules of the form (2) define a monotone query. These considerations indicate a third appealing characteristic of DD<sup><bold>K</bold></sup>. Specifically, the decidability of answering a DD<sup><bold>K</bold></sup> query <italic>q</italic> w.r.t. <inline-formula><mml:math id="M718"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> and <italic>D</italic> depends exclusively on the decidability of answering UCQs over <inline-formula><mml:math id="M719"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>, as the following proposition shows.</p>
<p><bold> Proposition 3</bold>. [(Cima et al., <xref ref-type="bibr" rid="B12">2022</xref>, Proposition 2)] Answering DD<sup><bold>K</bold></sup> queries w.r.t. <inline-formula><mml:math id="M720"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> and <italic>D</italic> is decidable if and only if computing the certain answers of UCQs w.r.t. <inline-formula><mml:math id="M721"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> and <italic>D</italic> is decidable.</p>
<p>These results sharply contrast with similar results obtained for plain (non-disjunctive) Datalog. In particular, the undecidability of the latter can be proved even in the case of global schema axioms expressed in very simple Description Logics of the <italic>DL-Lite</italic> family (see, e.g., Levy and Rousset, <xref ref-type="bibr" rid="B24">1998</xref>; Calvanese and Rosati, <xref ref-type="bibr" rid="B8">2003</xref>).</p></sec>
<sec>
<title>6.2. Monotone abstractions via DD<sup><bold>K</bold></sup></title>
<p>We now turn our attention to monotone abstractions expressed in DD<sup><bold>K</bold></sup>. We start by observing that, in terms of computational complexity, DD<sup><bold>K</bold></sup> perfectly fits the problem of computing approximated abstractions, as the following proposition shows.</p>
<p><bold> Proposition 4</bold>. [(Cima et al., <xref ref-type="bibr" rid="B12">2022</xref>, Proposition 3)] There exists a data integration system <inline-formula><mml:math id="M722"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> with PGAV mapping and a UCQ <inline-formula><mml:math id="M723"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> such that answering the &#x1D510;-maximally sound <inline-formula><mml:math id="M724"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M725"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is coNP-hard in data complexity.</p>
<p>In the remainder of this section, we show that DD<sup><bold>K</bold></sup> is well-suited to express monotone abstractions, both perfect and approximated. In discussing this issue, we go back to our assumption of dealing with data integration systems with no axioms in both the global and the source schema. So, in what follows, we implicitly deal with a data integration system <inline-formula><mml:math id="M726"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M727"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M728"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> have no axioms, and a UCQ <inline-formula><mml:math id="M729"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query <inline-formula><mml:math id="M730"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0222A;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x0222A;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, where <inline-formula><mml:math id="M731"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, for <italic>i</italic> &#x0003D; 1, &#x02026;, <italic>n</italic>.</p>
<sec>
<title>6.2.1. &#x1D510;-maximally sound abstractions</title>
<p>In Cima et al. (<xref ref-type="bibr" rid="B12">2022</xref>), it is shown that DD<sup><bold>K</bold></sup> can always express &#x1D510;-maximally sound <inline-formula><mml:math id="M732"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of UCQs, by illustrating a technique that, given query <inline-formula><mml:math id="M733"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, builds a set <inline-formula><mml:math id="M734"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> of DD<sup><bold>K</bold></sup> rules whose intensional predicates are the predicates in <inline-formula><mml:math id="M735"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>, and then uses such rules to construct the &#x1D510;-maximally sound <inline-formula><mml:math id="M736"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of <inline-formula><mml:math id="M737"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> as a DD<sup><bold>K</bold></sup> query. We do not describe the technique in detail here. Rather, we use an example to give an intuition of the construction.</p>
<p><bold> Example 8</bold>. Given the following mapping in <inline-formula><mml:math id="M738"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>:</p>
<p><inline-formula><mml:math id="M739"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext>.</mml:mtext><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext>.</mml:mtext><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></p>
<p><inline-formula><mml:math id="M740"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is the following set of DD<sup><bold>K</bold></sup> rules:</p>
<p><inline-formula><mml:math id="M741"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mstyle mathvariant='bold-italic' mathsize='normal'><mml:mi>K</mml:mi></mml:mstyle><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext>.</mml:mtext><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02228;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle mathvariant='bold-italic' mathsize='normal'><mml:mi>K</mml:mi></mml:mstyle><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x02260;</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle mathvariant='bold-italic' mathsize='normal'><mml:mi>K</mml:mi></mml:mstyle><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext>.</mml:mtext><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02228;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext>.</mml:mtext><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02228;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x02009;</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mtext>.</mml:mtext><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></p>
<p>Intuitively, the rules of <inline-formula><mml:math id="M742"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> specify, for the various facts over <inline-formula><mml:math id="M743"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> that are certain, i.e., that are <italic>known</italic> to hold, the queries over the sources that generate them. For example, the first rule of <inline-formula><mml:math id="M744"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> specifies that, if a constant is known to satisfy <italic>g</italic><sub>1</sub>(<italic>x, x</italic>), then this knowledge derives either from the answers to the source query {<italic>x</italic>|&#x02203;<italic>y</italic>.<italic>s</italic><sub>1</sub>(<italic>x</italic>)&#x02227;<italic>s</italic><sub>2</sub>(<italic>x, y</italic>)} or from the answers to the source query {<italic>x</italic>|<italic>s</italic><sub>1</sub>(<italic>x</italic>)&#x02227;<italic>s</italic><sub>3</sub>(<italic>x, x</italic>)}. As another example, the second rule of <inline-formula><mml:math id="M745"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> specifies that the pairs of distinct constants <italic>x, y</italic> known to satisfy <italic>g</italic><sub>1</sub>(<italic>x, y</italic>) derive from the query {<italic>x, y</italic>|<italic>s</italic><sub>1</sub>(<italic>x</italic>)&#x02227;<italic>s</italic><sub>3</sub>(<italic>x, y</italic>)}. It can be shown that this is crucial for ensuring that the abstraction of queries involving the join of <italic>s</italic><sub>1</sub> and <italic>s</italic><sub>3</sub>, which is based on the certain answers of <italic>g</italic><sub>1</sub>, do not include data deriving from source queries whose abstraction is based on the certain answers of the projection of <italic>g</italic><sub>1</sub>. Finally, the third rule of <inline-formula><mml:math id="M746"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> takes care of those constants <italic>x</italic> known to satisfy <italic>g</italic><sub>1</sub>(<italic>x, y</italic>), for some, not necessarily known, <italic>y</italic>. Such constants may derive from each of source queries above.</p>
<p>Using the notion of <inline-formula><mml:math id="M747"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, we can immediately obtain the &#x1D510;-maximally sound <inline-formula><mml:math id="M748"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M749"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, by adding to <inline-formula><mml:math id="M750"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> the set <inline-formula><mml:math id="M751"><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:math></inline-formula> constituted by one rule of the form <inline-formula><mml:math id="M752"><mml:msub><mml:mrow><mml:mi>&#x003D5;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> for each disjunct <inline-formula><mml:math id="M753"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> in <inline-formula><mml:math id="M754"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><bold> Proposition 5</bold>. [(Cima et al., <xref ref-type="bibr" rid="B12">2022</xref>, Theorem 2)] The DD<sup><bold>K</bold></sup> query <inline-formula><mml:math id="M755"><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x0222A;</mml:mo><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> is the &#x1D510;-maximally sound <inline-formula><mml:math id="M756"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M757"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>In the light of Proposition 5 and from the existence of an algorithm to compute <inline-formula><mml:math id="M758"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="script">R</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x0222A;</mml:mo><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:math></inline-formula>, we obtain the following.</p>
<p><bold> Theorem 7</bold>. [(Cima et al., <xref ref-type="bibr" rid="B12">2022</xref>, Theorem 2)] The &#x1D510;-maximally sound <inline-formula><mml:math id="M759"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M760"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> always exists, is computable, and can be expressed in DD<sup><bold>K</bold></sup>.</p></sec>
<sec>
<title>6.2.2. &#x1D510;-minimally complete abstractions</title>
<p>We show that DD<sup><bold>K</bold></sup> can always express &#x1D510;-minimally complete <inline-formula><mml:math id="M761"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of UCQs.</p>
<p>Let us first introduce a useful notion. Given a CQ <inline-formula><mml:math id="M762"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, Saturate(<italic>q</italic>) denotes the UCQ with inequalities obtained as follows. For each possible unifier &#x003BC; on the variables in <inline-formula><mml:math id="M763"><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x0222A;</mml:mo><mml:mi>&#x00233;</mml:mi></mml:math></inline-formula> such that <inline-formula><mml:math id="M764"><mml:mi>&#x003BC;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> for each <inline-formula><mml:math id="M765"><mml:mi>x</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula>, Saturate(<italic>q</italic>) contains a query obtained from &#x003BC;(<italic>q</italic>) by adding an inequality atom (<italic>t</italic><sub>1</sub>&#x02260;<italic>t</italic><sub>2</sub>) for each pair of distinct variables <italic>t</italic><sub>1</sub>, <italic>t</italic><sub>2</sub> occurring in &#x003BC;(<italic>q</italic>). For a UCQ <italic>Q</italic>, we denote by Saturate(<italic>Q</italic>) the UCQ with inequalities consisting of the union of Saturate(<italic>q</italic>), for each disjunct <italic>q</italic> of <italic>Q</italic>. It is easy to see that Saturate(<italic>Q</italic>) is equivalent to <italic>Q</italic>, for every UCQ <italic>Q</italic>.</p>
<p>Consider a disjunct <italic>q</italic><sub><italic>h</italic></sub> in in <inline-formula><mml:math id="M766"><mml:mstyle mathvariant="sans-serif"><mml:mi>S</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>u</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>e</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Clearly, <italic>q</italic><sub><italic>h</italic></sub> is a CQ with inequalities of the form <inline-formula><mml:math id="M767"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:mi>&#x003C7;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M768"><mml:mi>&#x003C7;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> are inequality atoms. Let <inline-formula><mml:math id="M769"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> denote the result of chasing the set of relational atoms occurring in <italic>q</italic><sub><italic>h</italic></sub> with <inline-formula><mml:math id="M770"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula>. Let &#x003C1;<sub><italic>q</italic><sub><italic>h</italic></sub></sub> denote the DD<sup><bold>K</bold></sup> rule <inline-formula><mml:math id="M771"><mml:mstyle class="text"><mml:mtext mathvariant="bold">K</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:mo>&#x022A4;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:mi>&#x003C7;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Finally, let <italic>q</italic><sub><italic>c</italic></sub> denote the DD<sup><bold>K</bold></sup> query consisting of all the rules &#x003C1;<sub><italic>q</italic><sub><italic>h</italic></sub></sub> for the various <italic>q</italic><sub><italic>h</italic></sub> in <inline-formula><mml:math id="M772"><mml:mstyle mathvariant="sans-serif"><mml:mi>S</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>u</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>e</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> and with answer predicate <italic>Ans</italic>. We can now prove the following.</p>
<p><bold> Proposition 6</bold>. [(Cima et al., <xref ref-type="bibr" rid="B12">2022</xref>, Theorem 1)] <italic>q</italic><sub><italic>c</italic></sub> is the &#x1D510;-minimally complete <inline-formula><mml:math id="M773"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M774"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>The following statement is a straightforward consequence of Proposition 6.</p>
<p><bold> Theorem 8</bold>. [(Cima et al., <xref ref-type="bibr" rid="B12">2022</xref>, Theorem 1)] The &#x1D510;-minimally complete <inline-formula><mml:math id="M775"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M776"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> always exists, is computable, and can be expressed in DD<sup><bold>K</bold></sup>.</p></sec>
<sec>
<title>6.2.3. Perfect monotone abstractions</title>
<p>From the results presented above, we can derive an algorithm for checking whether there exists a query in &#x1D510; that is the perfect <inline-formula><mml:math id="M777"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M778"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. In particular, observe that if the perfect <inline-formula><mml:math id="M779"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M780"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> can be expressed as a query in &#x1D510;, then it is <inline-formula><mml:math id="M781"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-equivalent to the &#x1D510;-minimally complete <inline-formula><mml:math id="M782"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M783"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. Then, from Proposition 6 we know that, in order to check whether there exists a query in &#x1D510; that is the perfect <inline-formula><mml:math id="M784"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M785"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, we have to check whether <inline-formula><mml:math id="M786"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is equivalent to <italic>q</italic><sub><italic>c</italic></sub> modulo <inline-formula><mml:math id="M787"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p>To this end, we observe the following. There exists a UCQ with inequalities <inline-formula><mml:math id="M788"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-query <italic>q</italic><sub><italic>min</italic></sub> such that <inline-formula><mml:math id="M789"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, for every <inline-formula><mml:math id="M790"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>. Moreover, <italic>q</italic><sub><italic>min</italic></sub> is computable. These two properties result from <inline-formula><mml:math id="M791"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> being a GLAV data integration system with no source and global schema axioms, and from the specific form of <italic>q</italic><sub><italic>c</italic></sub>. Therefore, in order to check whether there exists a query in &#x1D510; that is the perfect <inline-formula><mml:math id="M792"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M793"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, we just need to check whether <inline-formula><mml:math id="M794"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02291;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. The next claim follows from these considerations.</p>
<p><bold> Theorem 9</bold>. [(Cima et al., <xref ref-type="bibr" rid="B12">2022</xref>, Theorem 3)] Checking whether there exists a query <italic>q</italic> in the class &#x1D510; that is the perfect <inline-formula><mml:math id="M795"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M796"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is decidable. Moreover, there is an algorithm that computes <italic>q</italic>, whenever it exists.</p></sec></sec></sec>
<sec id="s7">
<title>7. Non-monotone abstractions</title>
<p>So far, we have limited our analysis of the abstraction reasoning task by focusing on monotone query languages in the context of data integration systems. There exist, however, very simple scenarios in which the perfect abstraction can only be expressed by means of a non-monotone query.</p>
<p><bold> Example 9</bold>. Let <inline-formula><mml:math id="M797"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> be such that the global schema <inline-formula><mml:math id="M798"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> has the predicates {<italic>A</italic>/1, <italic>B</italic>/1, <italic>C</italic>/1}, the source schema <inline-formula><mml:math id="M799"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula> has the predicates {<italic>s</italic><sub>1</sub>/1, <italic>s</italic><sub>2</sub>/1}, and <inline-formula><mml:math id="M800"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, where:</p>
<p><inline-formula><mml:math id="M801"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:mi>A</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:mi>A</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>m</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02192;</mml:mo><mml:mi>C</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></p>
<p>Consider the query <inline-formula><mml:math id="M802"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. One can verify that the perfect <inline-formula><mml:math id="M803"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M804"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is the non-monotone query <inline-formula><mml:math id="M805"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> such that, given an <inline-formula><mml:math id="M806"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>, returns those <italic>x</italic> for which either (<italic>A</italic>(<italic>x</italic>)&#x02227;&#x000AC;<italic>B</italic>(<italic>x</italic>)) or <italic>C</italic>(<italic>x</italic>) is known to be true, i.e. holds in every <inline-formula><mml:math id="M807"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>B</italic> such that <inline-formula><mml:math id="M808"><mml:mi>B</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mstyle class="text"><mml:mtext class="textit" mathvariant="italic">mod</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>Motivated by the above example, in this section we summarize the most salient aspects of the results in Cima et al. (<xref ref-type="bibr" rid="B15">2020</xref>), which investigates the problem of finding perfect (resp. minimally complete, maximally sound) abstractions expressed in the query language <italic>EQL-Lite</italic>(UCQ).<xref ref-type="fn" rid="fn0004"><sup>4</sup></xref> For instance, refer to Example 9. The perfect <inline-formula><mml:math id="M809"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M810"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> written there in natural language can be formulated through the <italic>EQL-Lite</italic>(UCQ) query <inline-formula><mml:math id="M811"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mstyle class="text"><mml:mtext mathvariant="bold">K</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:mo>&#x000AC;</mml:mo><mml:mi>B</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02228;</mml:mo><mml:mstyle class="text"><mml:mtext mathvariant="bold">K</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. As in the case of the UCQ and the &#x1D510; classes, it can be shown that if an <italic>EQL-Lite</italic>(UCQ)-maximally sound (resp., <italic>EQL-Lite</italic>(UCQ)-minimally complete) <inline-formula><mml:math id="M812"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M813"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> exists, then it is unique up to <inline-formula><mml:math id="M814"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-equivalence. Thus, in what follows, we will simply talk about <italic>the</italic> <italic>EQL-Lite</italic>(UCQ)-maximally sound (resp., <italic>EQL-Lite</italic>(UCQ)-minimally complete) <inline-formula><mml:math id="M815"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M816"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>A natural question that arises is whether &#x0201C;best&#x0201D; abstractions in the <italic>EQL-Lite</italic>(UCQ) query language always exist. Unfortunately, the following theorem shows that this is not the case for both <italic>EQL-Lite</italic>(UCQ)-minimally complete abstractions and <italic>EQL-Lite</italic>(UCQ)-maximally sound abstractions.</p>
<p><bold> Theorem 10</bold>. [(Cima et al., <xref ref-type="bibr" rid="B15">2020</xref>, Theorems 1 and 2)] Both the <italic>EQL-Lite</italic>(UCQ)-minimally complete <inline-formula><mml:math id="M817"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of <inline-formula><mml:math id="M818"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and the <italic>EQL-Lite</italic>(UCQ)-maximally sound <inline-formula><mml:math id="M819"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of <inline-formula><mml:math id="M820"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> may not exist.</p>
<p>Due to the above negative result, which holds already for CQJFE queries <inline-formula><mml:math id="M821"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and data integrations systems with PGAV mappings, we now explore two alternative restricted scenarios. The former weakens the target query language for expressing abstractions by considering a fragment of <italic>EQL-Lite</italic>(UCQ), whereas the latter weakens the mapping language by considering a special case of GLAV. In both the restricted scenarios, we assume that source queries are CQs rather than UCQs.</p>
<sec>
<title>7.1. A restricted non-monotone query language</title>
<p>We now consider the problem of finding abstractions expressed in <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ), which corresponds to the fragment of <italic>EQL-Lite</italic>(UCQ) where both <italic>nested</italic> negation and union operators are disallowed. More formally, an <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) query <italic>q</italic> is an expression of the form <inline-formula><mml:math id="M822"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M823"><mml:mi>&#x003C6;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is an <italic>EQL</italic> formula built according to the following syntax:</p>
<disp-formula id="E10"><mml:math id="M824"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mi>&#x003C6;</mml:mi><mml:mo>:</mml:mo><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mtext>K</mml:mtext></mml:mstyle><mml:mi>&#x003F1;</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mo>.</mml:mo><mml:mi>&#x003C6;</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>&#x00020;</mml:mi><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x02227;</mml:mo><mml:msub><mml:mi>&#x003C6;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x000AC;</mml:mo><mml:mi>&#x003B4;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>&#x003B4;</mml:mi><mml:mo>:</mml:mo><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mtext>K</mml:mtext></mml:mstyle><mml:mi>&#x003F1;</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>y</mml:mi><mml:mo>.</mml:mo><mml:mi>&#x003B4;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>with &#x003F1; being a disjunction of conjunction of atoms over <inline-formula><mml:math id="M825"><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:math></inline-formula> possibly involving existentially quantified variables. For instance, the <italic>EQL-Lite</italic>(UCQ) query <inline-formula><mml:math id="M826"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> illustrated above, which corresponds to the perfect <inline-formula><mml:math id="M827"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M828"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> in Example 9, is not an <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) query.</p>
<p>On the negative side, even in this scenario, maximally sound abstractions are not guaranteed to exist, and this holds already for CQJFE queries <inline-formula><mml:math id="M829"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and data integrations systems with PGAV mappings.</p>
<p><bold> Theorem 11</bold>. [(Cima et al., <xref ref-type="bibr" rid="B15">2020</xref>, Theorem 2)] The <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ)-maximally sound <inline-formula><mml:math id="M830"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of <inline-formula><mml:math id="M831"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> may not exist.</p>
<p>On the positive side, we now provide an algorithm for computing <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ)-minimally complete <inline-formula><mml:math id="M832"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of CQs <inline-formula><mml:math id="M833"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. The algorithm is similar to the one for the UCQ case (cf. Section 5), expect that all the atoms obtained when applying the mapping to the given CQ occur inside the scope of the epistemic operator <bold>K</bold>, binding also the existential variables coming from the input query. More precisely, given a data integration system <inline-formula><mml:math id="M834"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> and a CQ <inline-formula><mml:math id="M835"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>&#x003D5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, the algorithm returns the <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) query <inline-formula><mml:math id="M836"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02223;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mrow><mml:mi mathvariant="script">Y</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mstyle class="text"><mml:mtext mathvariant="bold">K</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02227;</mml:mo><mml:mo>&#x022A4;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M837"><mml:mover accent="true"><mml:mrow><mml:mrow><mml:mi mathvariant="script">Y</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02286;</mml:mo><mml:mi>&#x00233;</mml:mi></mml:math></inline-formula> are the existential variables of <inline-formula><mml:math id="M838"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> occurring in <inline-formula><mml:math id="M839"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, while <inline-formula><mml:math id="M840"><mml:mover accent="true"><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula> are the fresh existential variables introduced when applying <inline-formula><mml:math id="M841"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M842"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. To see the difference with the UCQ case, recall Example 1 in the introduction and the CQ <inline-formula><mml:math id="M843"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> therein. While <inline-formula><mml:math id="M844"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is the UCQ-minimally complete <inline-formula><mml:math id="M845"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M846"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, the <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) query {<italic>x</italic>&#x02223;&#x02203;<italic>y</italic>.<bold>K</bold>(<italic>g</italic><sub>1</sub>(<italic>x, y</italic>))} returned by the above algorithm is a better complete approximation than <inline-formula><mml:math id="M847"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, and is in fact the perfect <inline-formula><mml:math id="M848"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of <inline-formula><mml:math id="M849"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p><bold> Theorem 12</bold>. [(Cima et al., <xref ref-type="bibr" rid="B15">2020</xref>, Theorem 5)] The <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ)-minimally complete <inline-formula><mml:math id="M850"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of a CQ <inline-formula><mml:math id="M851"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> always exists and is computable.</p>
<p>We further notice that the above algorithm returns queries that are monotone and that are expressible in DD<sup><bold>K</bold></sup>, thus proving that, without disjunction, the limited form of negation allowed in <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) does not give more expressive power in finding minimally complete (and therefore also perfect) abstractions of CQs. On the contrary, it can be shown that inequalities give more expressive power in finding abstractions. In particular, there exist &#x1D510;-minimally complete <inline-formula><mml:math id="M852"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of CQs that cannot be expressed in <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ), whereas, as shown in the previous section, they can be expressed in DD<sup><bold>K</bold></sup>.</p>
<p>Given a query <inline-formula><mml:math id="M853"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> as returned by the above algorithm, it is always possible to compute a UCQ <italic>q</italic><sub><italic>u</italic></sub> such that <inline-formula><mml:math id="M854"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for every <inline-formula><mml:math id="M855"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>. Thus, following the same line of reasoning as the one at the end of the previous section, in this scenario we can solve the computation problem for perfect abstractions of CQs.</p>
<p><bold> Theorem 13</bold>. [Cima et al. (<xref ref-type="bibr" rid="B15">2020</xref>)] Checking whether there exists a query <italic>q</italic> in <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) that is the perfect <inline-formula><mml:math id="M856"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of a CQ <inline-formula><mml:math id="M857"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is decidable. Moreover, if it exists, then <italic>q</italic> is a monotone query and there is an algorithm that computes it.</p></sec>
<sec>
<title>7.2. One-to-one mapping</title>
<p>We now examine the problem of finding abstractions in the presence of data integration systems <inline-formula><mml:math id="M858"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> such that <inline-formula><mml:math id="M859"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> is a <italic>one-to-one mapping</italic>. A one-to-one mapping is a special case of GLAV, constituted by a set of assertions of the form <inline-formula><mml:math id="M860"><mml:mo>&#x02203;</mml:mo><mml:mi>&#x00233;</mml:mi><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>s</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mo>&#x02203;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">.</mml:mtext></mml:mstyle><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M861"><mml:mi>s</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M862"><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>&#x00233;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> are single atoms without constants or repeated variables.</p>
<p>The first result is that the algorithm previously presented for computing <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ)-minimally complete abstractions of CQs can be also used for computing <italic>EQL-Lite</italic>(UCQ)-minimally complete abstractions of CQs for data integration systems <inline-formula><mml:math id="M863"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula> with PGAV mapping.</p>
<p><bold> Theorem 14</bold>. [(Cima et al., <xref ref-type="bibr" rid="B15">2020</xref>, Theorem 3)] Under one-to-one mappings, the <italic>EQL-Lite</italic>(UCQ)-minimally complete <inline-formula><mml:math id="M864"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of a CQ <inline-formula><mml:math id="M865"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> always exists, is computable, and is a monotone query.</p>
<p>Thus, using exactly the same considerations done for the case of <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ), we can solve the computation problem for perfect abstractions in <italic>EQL-Lite</italic>(UCQ) of CQs under one-to-one mappings.</p>
<p><bold> Theorem 15</bold>. [Cima et al. (<xref ref-type="bibr" rid="B15">2020</xref>)] Under one-to-one mappings, checking whether there exists a query <italic>q</italic> in <italic>EQL-Lite</italic>(UCQ) that is the perfect <inline-formula><mml:math id="M866"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of a CQ <inline-formula><mml:math id="M867"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is decidable. Moreover, if it exists, then <italic>q</italic> is a monotone query and there is an algorithm that computes it.</p>
<p>We now turn to the sound case under one-to-one mappings. Specifically, in this scenario, while the existence of <italic>EQL-Lite</italic>(UCQ)-maximally sound <inline-formula><mml:math id="M868"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of CQs is still an open problem, we present an algorithm for computing <italic>EQL-Lite</italic>(UCQ)-maximally sound <inline-formula><mml:math id="M869"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstractions of CQJFEs <inline-formula><mml:math id="M870"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. Roughly speaking, given a data integration system <inline-formula><mml:math id="M871"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M872"><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:math></inline-formula> a one-to-one mapping and a CQJFE <inline-formula><mml:math id="M873"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, as a first step the algorithm computes the <italic>EQL-Lite</italic>(UCQ)-minimally complete <inline-formula><mml:math id="M874"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> of <inline-formula><mml:math id="M875"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and its UCQ reformulation <italic>q</italic><sub><italic>u</italic></sub> such that <inline-formula><mml:math id="M876"><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for each <inline-formula><mml:math id="M877"><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:math></inline-formula>-database <italic>D</italic>. Then, for each CQ <italic>q</italic>&#x02032; which is a disjunct of <italic>q</italic><sub><italic>u</italic></sub> such that <inline-formula><mml:math id="M878"><mml:msup><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x022E2;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, the algorithm adds in conjunction to the body of <inline-formula><mml:math id="M879"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> the negation of the body of the <italic>EQL-Lite</italic>(UCQ)-minimally complete of <italic>q</italic>&#x02032;. Informally, this last step prevents <inline-formula><mml:math id="M880"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> to return answers that are not answers of <inline-formula><mml:math id="M881"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, guaranteeing soundness of the output query. For instance, recall Example 1, and let <inline-formula><mml:math id="M882"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="script">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> be the data integration system with <inline-formula><mml:math id="M883"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="script">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula> a one-to-one mapping. The query returned by the algorithm is the <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) query {<italic>x</italic>&#x02223;<bold>K</bold>(<italic>A</italic>(<italic>x</italic>))&#x02227;&#x000AC;<bold>K</bold>(<italic>B</italic>(<italic>x</italic>))}, which is the <italic>EQL-Lite</italic>(UCQ)-maximally sound <inline-formula><mml:math id="M884"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> abstraction of <inline-formula><mml:math id="M885"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><bold> Theorem 16</bold>. [(Cima et al., <xref ref-type="bibr" rid="B15">2020</xref>, Theorem 4)] Under one-to-one mappings, the <italic>EQL-Lite</italic>(UCQ)-maximally sound <inline-formula><mml:math id="M886"><mml:mrow><mml:mi mathvariant="script">J</mml:mi></mml:mrow></mml:math></inline-formula>-abstraction of a CQJFE <inline-formula><mml:math id="M887"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="script">S</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> always exists and is computable.</p>
<p>We conclude this section with the following observation. The algorithms sketched above for computing &#x0201C;best&#x0201D; abstractions always return an <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) query. This directly implies that, under one-to-one mappings, the query languages <italic>EQL-Lite</italic>(UCQ) and <italic>EQL-Lite</italic><sup>&#x02212;</sup>(UCQ) have the same expressive power in finding all three kinds of abstractions (perfect, minimally complete, and maximally sound).</p></sec></sec>
<sec id="s8">
<title>8. Open problems</title>
<p>We have provided an overview of data abstraction, and we have illustrated some results obtained in recent years on computing abstractions. We conclude the paper by discussing a set of issues related to abstractions that deserve more investigation.</p>
<sec>
<title>8.1. Data quality</title>
<p>While data quality is one the main issues proposed in Data-centric AI, there is no general and well-established methodology for leveraging data quality for improving Machine Learning methods.</p>
<p>As pointed out in Chen et al. (<xref ref-type="bibr" rid="B9">2021</xref>), poor data quality has a direct impact on the performance of the machine learning system that is built on the data. It is therefore important to devise techniques for validating the quality of both training and testing datasets. Recent work in this direction shows a strong correlation between the quality of the datasets and the performance of the machine learning system, and demonstrates that a rigorous evaluation of data quality is necessary for guiding the quality improvement of machine learning. We believe that formal methods like data abstraction can provide some contributions toward this goal. For example, by helping in making the semantics of training data explicit, abstraction can provide support for recognizing biases or other problems in the data used to train a Machine Learning Model. Making concrete steps in this direction is a stimulating research challenge.</p></sec>
<sec>
<title>8.2. Languages for abstractions</title>
<p>A crucial issue related to abstraction is to compute perfect and approximated abstractions within specific classes of queries. For the fundamental class UCQ, the decidability of checking whether there exists a UCQ-maximally sound abstraction of a UCQ source query is still open. More generally, there are many interesting classes of queries that can be used to express abstractions, and for which it would be interesting to compute perfect, or approximated abstractions. For example, in the case of graph databases as virtual views, relevant classes of queries for abstractions include regular path queries, or two-way conjunctive regular path queries.</p></sec>
<sec>
<title>8.3. Abstraction and monotonicity</title>
<p>In this paper we have discussed the use of DD<sup><bold>K</bold></sup> to express monotone abstractions of source queries in the class UCQ. It would be interesting to investigate which is the minimal expressive power needed for capturing perfect and approximated monotone abstractions of source queries. Also, it is not difficult to see that there are queries for which the perfect abstraction is non-monotone. Although first results on non-monotone abstractions have appeared in Cima et al. (<xref ref-type="bibr" rid="B15">2020</xref>), the issue of checking the existence of and computing non-monotone abstractions is largely unexplored.</p></sec>
<sec>
<title>8.4. Expressive source queries</title>
<p>The majority of work on abstraction so far focused on source queries in the class UCQ. It would be interesting to address the problem of computing perfect and approximated abstractions of source queries expressed in more expressive languages such as Datalog. More expressive mapping languages (e.g., UCQ with inequalities in the GLAV type of mapping) also deserve attention.</p></sec>
<sec>
<title>8.5. Axioms</title>
<p>The computation of abstractions in the presence of axioms in the global schema or in the source schema is another interesting problem to study. First results in this direction appeared in Cima (<xref ref-type="bibr" rid="B10">2017</xref>), Lutz et al. (<xref ref-type="bibr" rid="B25">2018</xref>), and Cima et al. (<xref ref-type="bibr" rid="B14">2019</xref>), but the topic requires a more thorough analysis.</p></sec>
<sec>
<title>8.6. Reverse engineering</title>
<p>Abstraction has also interesting connections with the reverse-engineering problem (Barcel&#x000F3; and Romero, <xref ref-type="bibr" rid="B3">2017</xref>). When casted in data integration, given a source database <italic>D</italic> and set <italic>P</italic> of tuples, this problem aims at finding a global schema query <italic>q</italic> that captures <italic>P</italic>, i.e., such that the answers of <italic>q</italic> with respect to <italic>D</italic> captures the tuples in <italic>P</italic>. Despite the intuitive connection, a detailed analysis of the relationship between the two problems is missing.</p></sec>
<sec>
<title>8.7. User requirements</title>
<p>Finally, crucial aspects of abstractions, such as succinctness and clarity, have not been considered in this paper. More generally, issues related to the adequacy of the formulation of abstractions with respect to user requirements deserve greater attention.</p></sec></sec>
<sec sec-type="author-contributions" id="s9">
<title>Author contributions</title>
<p>All authors listed have made a substantial, direct, and intellectual contribution to the work and approved it for publication.</p></sec>
</body>
<back>
<sec sec-type="funding-information" id="s10">
<title>Funding</title>
<p>This work has been partially supported by MUR under the PRIN 2017 project HOPE (prot. 2017MMJJRE), by the EU under the H2020-EU.2.1.1 project TAILOR, grant id. 952215, and by MUR under the PNRR project PE0000013-FAIR.</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x00027;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<fn-group>
<fn id="fn0001"><p><sup>1</sup>In principle, we could also consider databases that are infinite structures.</p></fn>
<fn id="fn0002"><p><sup>2</sup>When we refer to UCQ views, we in fact assume that view definitions are UCQs without <italic>repeated variables</italic> in the target list. We refer to Afrati and Chirkova (<xref ref-type="bibr" rid="B2">2019</xref>) for the complications that can arise when this assumption is removed.</p></fn>
<fn id="fn0003"><p><sup>3</sup>This is not the case when view definitions are expressed as <italic>regular path queries</italic> rather than UCQs (Calvanese et al., <xref ref-type="bibr" rid="B6">2002</xref>).</p></fn>
<fn id="fn0004"><p><sup>4</sup>Actually, we consider the slightly restricted version of <italic>EQL-Lite</italic>(UCQ) which does not allow the use of (in)equalities.</p></fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Abedjan</surname> <given-names>Z.</given-names></name> <name><surname>Golab</surname> <given-names>L.</given-names></name> <name><surname>Naumann</surname> <given-names>F.</given-names></name></person-group> (<year>2017</year>). <article-title>&#x0201C;Data profiling: a tutorial,&#x0201D;</article-title> in <source>Proceedings of the 2017 ACM International Conference on Management of Data (SIGMOD 2017)</source> (Chicago, IL), <fpage>1747</fpage>&#x02013;<lpage>1751</lpage>. <pub-id pub-id-type="doi">10.1145/3035918.3054772</pub-id></citation>
</ref>
<ref id="B2">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Afrati</surname> <given-names>F. N.</given-names></name> <name><surname>Chirkova</surname> <given-names>R.</given-names></name></person-group> (<year>2019</year>). <source>Answering Queries Using Views. Synthesis Lectures on Data Management</source>, 2nd ed. San Rafael, CA: Morgan and Claypool Publishers. <pub-id pub-id-type="doi">10.1007/978-3-031-01871-8</pub-id></citation>
</ref>
<ref id="B3">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Barcel&#x000F3;</surname> <given-names>P.</given-names></name> <name><surname>Romero</surname> <given-names>M.</given-names></name></person-group> (<year>2017</year>). <article-title>&#x0201C;The complexity of reverse engineering problems for conjunctive queries,&#x0201C;</article-title> in <source>Proceedings of the Twentieth International Conference on Database Theory (ICDT 2017), Volume 68 of Leibniz International Proceedings in Informatics</source>, <volume>7</volume>:<fpage>1</fpage>&#x02013;<lpage>7</lpage>:17. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.dagstuhl.de/en/publications/lipics">https://www.dagstuhl.de/en/publications/lipics</ext-link> (accessed June 15, 2023).</citation>
</ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Calvanese</surname> <given-names>D.</given-names></name> <name><surname>De Giacomo</surname> <given-names>G.</given-names></name> <name><surname>Lembo</surname> <given-names>D.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Rosati</surname> <given-names>R.</given-names></name></person-group> (<year>2007a</year>). <article-title>&#x0201C;EQL-lite: effective first-order query processing in description logics,&#x0201D;</article-title>in <italic>Proceedings of the Twentieth International Joint Conference on Artificial Intelligence (IJCAI 2007)</italic> (Hyderabad), <fpage>274</fpage>&#x02013;<lpage>279</lpage>.</citation>
</ref>
<ref id="B5">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Calvanese</surname> <given-names>D.</given-names></name> <name><surname>De Giacomo</surname> <given-names>G.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Vardi</surname> <given-names>M. Y.</given-names></name></person-group> (<year>2000</year>). <article-title>&#x0201C;What is view-based query rewriting?&#x0201D;</article-title> in <source>Proceedings of the Seventh International Workshop on Knowledge Representation meets Databases (KRDB 2000), Volume 29 of CEUR Electronic Workshop Proceedings</source>, 17&#x02013;27. Available online at: <ext-link ext-link-type="uri" xlink:href="http://ceur-ws.org/">http://ceur-ws.org/</ext-link> (accessed June 15, 2023).</citation>
</ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Calvanese</surname> <given-names>D.</given-names></name> <name><surname>De Giacomo</surname> <given-names>G.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Vardi</surname> <given-names>M. Y.</given-names></name></person-group> (<year>2002</year>). <article-title>&#x0201C;Lossless regular views,&#x0201D;</article-title>in <italic>Proceedings of the Twenty-First ACM SIGACT SIGMOD SIGART Symposium on Principles of Database Systems (PODS 2002)</italic> (Madison, WI: ACM), <fpage>58</fpage>&#x02013;<lpage>66</lpage>. <pub-id pub-id-type="doi">10.1145/543613.543646</pub-id></citation>
</ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Calvanese</surname> <given-names>D.</given-names></name> <name><surname>De Giacomo</surname> <given-names>G.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Vardi</surname> <given-names>M. Y.</given-names></name></person-group> (<year>2007b</year>). <article-title>View-based query processing: on the relationship between rewriting, answering and losslessness</article-title>. <source>Theor. Comput. Sci</source>. <volume>371</volume>, <fpage>169</fpage>&#x02013;<lpage>182</lpage>. <pub-id pub-id-type="doi">10.1016/j.tcs.2006.11.006</pub-id></citation>
</ref>
<ref id="B8">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Calvanese</surname> <given-names>D.</given-names></name> <name><surname>Rosati</surname> <given-names>R.</given-names></name></person-group> (<year>2003</year>). <article-title>&#x0201C;Anwering recursive queries under keys and foreign keys is undecidable,&#x0201D;</article-title>in <italic>Proceedings of the Tenth International Workshop on Knowledge Representation meets Databases (KRDB 2003), Volume 79 of CEUR Electronic Workshop Proceedings</italic>. Available online at: <ext-link ext-link-type="uri" xlink:href="http://ceur-ws.org/">http://ceur-ws.org/</ext-link> (accessed June 15, 2023).</citation>
</ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>H.</given-names></name> <name><surname>Chen</surname> <given-names>J.</given-names></name> <name><surname>Ding</surname> <given-names>J.</given-names></name></person-group> (<year>2021</year>). <article-title>Data evaluation and enhancement for quality improvement of machine learning</article-title>. <source>IEEE Trans. Reliab</source>. <volume>70</volume>, <fpage>831</fpage>&#x02013;<lpage>847</lpage>. <pub-id pub-id-type="doi">10.1109/TR.2021.3070863</pub-id></citation>
</ref>
<ref id="B10">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Cima</surname> <given-names>G.</given-names></name></person-group> (<year>2017</year>). <article-title>&#x0201C;Preliminary results on ontology-based open data publishing,&#x0201D;</article-title>in <italic>Proceedings of the Thirtieth International Workshop on Description Logics (DL 2017), Volume 1879 of CEUR Electronic Workshop Proceedings</italic>. Available online at: <ext-link ext-link-type="uri" xlink:href="http://ceur-ws.org/">http://ceur-ws.org/</ext-link> (accessed June 15, 2023).</citation>
</ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cima</surname> <given-names>G.</given-names></name> <name><surname>Console</surname> <given-names>M.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Poggi</surname> <given-names>A.</given-names></name></person-group> (<year>2021</year>). <article-title>&#x0201C;Abstraction in data integration,&#x0201D;</article-title>in <italic>Proceedings of the Thirty Sixth IEEE Symposium on Logic in Computer Science (LICS 2021)</italic> (Rome: IEEE), <fpage>1</fpage>&#x02013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.1109/LICS52264.2021.9470716</pub-id></citation>
</ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cima</surname> <given-names>G.</given-names></name> <name><surname>Console</surname> <given-names>M.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Poggi</surname> <given-names>A.</given-names></name></person-group> (<year>2022</year>). <article-title>&#x0201C;Monotone abstractions in ontology-based data management,&#x0201D;</article-title>in <source>Proceedings of the Thirty-Sixth AAAI Conference on Artificial Intelligence (AAAI 2022)</source>, 5556&#x02013;5563. <pub-id pub-id-type="doi">10.1609/aaai.v36i5.20495</pub-id></citation>
</ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cima</surname> <given-names>G.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Poggi</surname> <given-names>A.</given-names></name></person-group> (<year>2017</year>). <article-title>&#x0201C;Semantic technology for open data publishing,&#x0201D;</article-title>in <italic>Proceedings of the Seventh International Conference on Web Intelligence, Mining and Semantics (WIMS 2017)</italic> (Amantea), <fpage>1</fpage>. <pub-id pub-id-type="doi">10.1145/3102254.3102255</pub-id></citation>
</ref>
<ref id="B14">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cima</surname> <given-names>G.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Poggi</surname> <given-names>A.</given-names></name></person-group> (<year>2019</year>). <article-title>&#x0201C;Semantic characterization of data services through ontologies,&#x0201D;</article-title>in <italic>Proceedings of the Twenty-Eighth International Joint Conference on Artificial Intelligence (IJCAI 2019)</italic> (Macao), <fpage>1647</fpage>&#x02013;<lpage>1653</lpage>. <pub-id pub-id-type="doi">10.24963/ijcai.2019/228</pub-id></citation>
</ref>
<ref id="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cima</surname> <given-names>G.</given-names></name> <name><surname>Lenzerini</surname> <given-names>M.</given-names></name> <name><surname>Poggi</surname> <given-names>A.</given-names></name></person-group> (<year>2020</year>). <article-title>&#x0201C;Non-monotonic ontology-based abstractions of data services,&#x0201D;</article-title>in <source>Proceedings of the Seventeenth International Conference on Principles of Knowledge Representation and Reasoning (KR 2020)</source>, 243&#x02013;252. <pub-id pub-id-type="doi">10.24963/kr.2020/25</pub-id></citation>
</ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Duschka</surname> <given-names>O. M.</given-names></name> <name><surname>Genesereth</surname> <given-names>M. R.</given-names></name></person-group> (<year>1997</year>). <article-title>&#x0201C;Answering recursive queries using views,&#x0201D;</article-title>in <italic>Proceedings of the Sixteenth ACM SIGACT SIGMOD SIGART Symposium on Principles of Database Systems (PODS 1997)</italic> (New York, NY), <fpage>109</fpage>&#x02013;<lpage>116</lpage>. <pub-id pub-id-type="doi">10.1145/263661.263674</pub-id></citation>
</ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Duschka</surname> <given-names>O. M.</given-names></name> <name><surname>Genesereth</surname> <given-names>M. R.</given-names></name></person-group> (<year>1998</year>). <article-title>&#x0201C;Query planning with disjunctive sources,&#x0201D;</article-title>in <italic>Proceedings of the AAAI-98 Workshop on AI and Information Integration</italic> (Cambridge, MA: AAAI/The MIT).</citation>
</ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Eiter</surname> <given-names>T.</given-names></name> <name><surname>Gottlob</surname> <given-names>G.</given-names></name> <name><surname>Mannilla</surname> <given-names>H.</given-names></name></person-group> (<year>1997</year>). <article-title>Disjunctive datalog</article-title>. <source>ACM Trans. Database Syst</source>. <volume>22</volume>, <fpage>364</fpage>&#x02013;<lpage>418</lpage>. <pub-id pub-id-type="doi">10.1145/261124.261126</pub-id></citation>
</ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fagin</surname> <given-names>R.</given-names></name> <name><surname>Kolaitis</surname> <given-names>P. G.</given-names></name> <name><surname>Miller</surname> <given-names>R. J.</given-names></name> <name><surname>Popa</surname> <given-names>L.</given-names></name></person-group> (<year>2005</year>). <article-title>Data exchange: semantics and query answering</article-title>. <source>Theor. Comput. Sci</source>. <volume>336</volume>, <fpage>89</fpage>&#x02013;<lpage>124</lpage>. <pub-id pub-id-type="doi">10.1016/j.tcs.2004.10.033</pub-id></citation>
</ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Halevy</surname> <given-names>A. Y.</given-names></name></person-group> (<year>2001</year>). <article-title>Answering queries using views: a survey</article-title>. <source>Very Large Database J</source>. <volume>10</volume>, <fpage>270</fpage>&#x02013;<lpage>294</lpage>. <pub-id pub-id-type="doi">10.1007/s007780100054</pub-id></citation>
</ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lenzerini</surname> <given-names>M.</given-names></name></person-group> (<year>2002</year>). <article-title>&#x0201C;Data integration: a theoretical perspective,&#x0201D;</article-title>in <italic>Proceedings of the Twenty-First ACM SIGACT SIGMOD SIGART Symposium on Principles of Database Systems (PODS 2002)</italic> (New York, NY: ACM), <fpage>233</fpage>&#x02013;<lpage>246</lpage>. <pub-id pub-id-type="doi">10.1145/543613.543644</pub-id></citation>
</ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Levy</surname> <given-names>A. Y.</given-names></name> <name><surname>Mendelzon</surname> <given-names>A. O.</given-names></name> <name><surname>Sagiv</surname> <given-names>Y.</given-names></name> <name><surname>Srivastava</surname> <given-names>D.</given-names></name></person-group> (<year>1995</year>). <article-title>&#x0201C;Answering queries using views,&#x0201D;</article-title>in <italic>Proceedings of the Fourteenth ACM SIGACT SIGMOD SIGART Symposium on Principles of Database Systems (PODS 1995)</italic> (San Jose, CA: ACM Press), <fpage>95</fpage>&#x02013;<lpage>104</lpage>. <pub-id pub-id-type="doi">10.1145/212433.220198</pub-id></citation>
</ref>
<ref id="B23">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Levy</surname> <given-names>A. Y.</given-names></name> <name><surname>Rajaraman</surname> <given-names>A.</given-names></name> <name><surname>Ordille</surname> <given-names>J. J.</given-names></name></person-group> (<year>1996</year>). <article-title>&#x0201C;Querying heterogenous information sources using source descriptions,&#x0201D;</article-title>in <italic>Proceedings of the Twenty-Second International Conference on Very Large Data Bases (VLDB 1996)</italic> (Mumbai), <fpage>251</fpage>&#x02013;<lpage>262</lpage>.</citation>
</ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Levy</surname> <given-names>A. Y.</given-names></name> <name><surname>Rousset</surname> <given-names>M.-C.</given-names></name></person-group> (<year>1998</year>). <article-title>Combining Horn rules and description logics in CARIN</article-title>. <source>Artif Intell</source>. <volume>104</volume>, <fpage>165</fpage>&#x02013;<lpage>209</lpage>. <pub-id pub-id-type="doi">10.1016/S0004-3702(98)00048-4</pub-id></citation>
</ref>
<ref id="B25">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lutz</surname> <given-names>C.</given-names></name> <name><surname>Marti</surname> <given-names>J.</given-names></name> <name><surname>Sabellek</surname> <given-names>L.</given-names></name></person-group> (<year>2018</year>). <article-title>&#x0201C;Query expressibility and verification in ontology-based data access,&#x0201D;</article-title>in <italic>Proceedings of the Sixteenth International Conference on the Principles of Knowledge Representation and Reasoning (KR 2018)</italic> (Tempe, AZ), <fpage>389</fpage>&#x02013;<lpage>398</lpage>.<pub-id pub-id-type="pmid">33343090</pub-id></citation></ref>
<ref id="B26">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nash</surname> <given-names>A.</given-names></name> <name><surname>Segoufin</surname> <given-names>L.</given-names></name> <name><surname>Vianu</surname> <given-names>V.</given-names></name></person-group> (<year>2010</year>). <article-title>Views and queries: aeterminacy and rewriting</article-title>. <source>ACM Trans. Database Syst</source>. <volume>35</volume>, <fpage>1</fpage>&#x02013;<lpage>21</lpage>. <pub-id pub-id-type="doi">10.1145/1806907.1806913</pub-id></citation>
</ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pottinger</surname> <given-names>R.</given-names></name> <name><surname>Halevy</surname> <given-names>A. Y.</given-names></name></person-group> (<year>2001</year>). <article-title>MiniCon: a scalable algorithm for answering queries using views</article-title>. <source>Very Large Database J</source>. <volume>10</volume>, <fpage>182</fpage>&#x02013;<lpage>198</lpage>. <pub-id pub-id-type="doi">10.1007/s007780100048</pub-id></citation>
</ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sagiv</surname> <given-names>Y.</given-names></name> <name><surname>Yannakakis</surname> <given-names>M.</given-names></name></person-group> (<year>1980</year>). <article-title>Equivalences among relational expressions with the union and difference operators</article-title>. <source>J. ACM</source> <volume>27</volume>, <fpage>633</fpage>&#x02013;<lpage>655</lpage>. <pub-id pub-id-type="doi">10.1145/322217.322221</pub-id></citation>
</ref>
</ref-list>
</back>
</article>