Extended Reasoning Rules Support in GLAV Integration
The aim of this paper is to extend the reasoning capability in GLAV Integration in the following general context where:
- \(\mappings\) is a set of relational GLAV mappings on source schema \(S\) and on global schema \(G\)
- \(\rules\) is a set of existential rules using the schema \(G\)
We want to find some minimal restrictions on \(\rules\), such that we can find \(\mappings^{\rules}\) an equivalent set of GLAV mappings on source schema \(S\) and on global schema \(G\) i.e. for each \(I\) instance of \(S\), \(U\) is an instance of \(G\) such that \(I, \mappings, \rules \models U\) if and only if \(I, \mappings^{\rules} \models U\).
Examples
A series of examples to show how we can go further than mappings head saturation.
Examples of Extensions
Saturation on Several Mappings
\[\mappings = \{ V_{1}(x) \leadsto A(x), V_{2}(x) \leadsto B(x) \}\]
\[\rules = \{ A(x) \wedge B(x) \rightarrow C(x) \}\]
Here, we need to use two mappings at the same time to fully reason with \(r\). In order to handle it, we can define \(\mappings^{\rules}\) as the set of GLAV mappings containing mappings of \(\mappings\) and the following mapping:
\[V_{1}(x) \wedge V_{2}(x) \leadsto C(x)\]
Mismatch with Constant in Rule
\[\mappings = \{m: V(x,y) \leadsto T(x,y) \}\]
\[\rules = \{ r: T(x, C_{1}) \rightarrow T(x, C_{2}) \}\]
We can not apply \(r\) on the head of \(m\) in a saturation of conjunctive query on context like in cite:HassadLearningCommonalitiesSPARQL2017. To solve this issue, we should handle the case, where \(y\) is \(m\) is equals to \(C_{1}\). We can do it by defining a new mappings:
\[m^{r}: V(x, C_{1}) \leadsto T(x, C_{2})\]
and by defining \(\mappings^{\rules}\) as \(\{m, m^{r}\}\).
This situation doesn't appear in cite:BuronRewritingBasedQueryAnswering2018a, because mapping heads and rules are build such that variables and constant are in the same position in triple.
Examples of Limits
Rule for Transitivity
\[\mappings = \{ m: V(x,y) \leadsto C(x,y) \}\]
\[\rules = \{ r: C(x, y) \wedge C(y, z) \rightarrow C(x, z) \}\]
In this case, we can wrap two mappings \(m\) with rule \(r\) given the following mapping:
\[m': V(x,y) \wedge V(y,z) \leadsto C(x,z)\]
Then, we can continue to wrap this mapping and \(m\) with \(r\) etc.
Simple RDFS Entailment Rule
\[\mappings = \{m_{t}: V_{t}(x,y) \leadsto T(x,y), m_{c}: V_{c}(x,y) \leadsto C(y_{1}, y_{2}) \}\]
\[\rules = \{ r: T(x, y_{1}) \wedge C(y_{1}, y_{2}) \rightarrow T(x, y_{2}) \}\]
We can view above definitions as an RDFS integration system, where \(m_{t}\) (resp. \(m_{c}\)) populates the global schema with triples form \(\triple{x}{\type}{y}\) (resp. \(\triple{y_{1}}{\subclass}{y_{2}}\)). And the rule \(r\) can be viewed as \(\triple{x}{\type}{y_{1}} \wedge \triple{y_{1}}{\subclass}{y_{2}} \rightarrow \triple{x}{\type}{y_{2}}\).
Wrapping together \(m_{t}\) and \(m_{c}\) using \(r\) will produce the following mapping:
\[V_{t}(x,y_{1}) \wedge V_{c}(y_{1}, y_{2}) \leadsto T(x,y_{2})\]
We can wrap this mappings with \(m_{c}\) using \(r\), by continuing we will produce mappings of the form:
\[V_{t}(x,y_{1}) \wedge V_{c}(y_{1}, y_{2}) \dots \wedge V_{c}(y_{n-1}, y_{n}) \leadsto T(x, y_{n})\]
This case doesn't appear in the setting of cite:BuronRewritingBasedQueryAnswering2018a, because we demand that mapping heads contain IRIs in class position.
Definitions
We now want to formalize the definition of wrapping a mapping set with a rule. As defined in cite:MugnierIntroductionOntologyBasedQuery2014a, we will use the definition piece unifier of a query with a rule. We will use this definition to find piece unifier of rule body in \(\rules\) with mapping from \(\mappings\) (considering as existential rules). We can illustrate \(u\) a piece unifier of the body of the rule \(B(\bar v_{1}, \bar v_{2}) \rightarrow H(\bar v_{2}, \bar v_{3})\) with the head of mapping \(q_{1}(\bar x) \leadsto q_{2}(\bar x)\) by:
\[q_{1}(\bar x) \leadsto q_{2}(\bar x) \stackrel{u}{\leftrightarrow} B(\bar v_{1}, \bar v_{2}) \rightarrow H(\bar v_{2}, \bar v_{3})\] such that \(u(q_{2}(\bar x)) \subseteq u(B(\bar v_{1}, \bar v_{2}))\).
Given one rule \(r\in \rules\) and mappings \(m_{1}, m_{2}, \dots, m_{n}\) such that:
- there exists for \(1 \leq i \leq n, u_{i}\) a piece unifier of the head of \(r\) with \(m_{i}\).
- piece unifiers \(u_{1}, u_{2}, \dots u_{n}\) are compatible and \(\{u_{1}(\head{m_{1}}), \dots, u_{n}(\head{m_{n}})\}\) forms a partition of \(u_{1}(u_{2}( \dots u_{n}(\body{r}))\dots)\)
The mapping resulting of wrapping mappings \(m_{1}, \dots, m_{n}\) together with the rule \(r\) is defined by:
\[\bigwedge_{1 \leq i \leq n} u_{i}(\body{m_{i}}) \leadsto u_{1}(u_{2}( \dots u_{n}(\head{r}))\dots)\]