# existential rules

Existential rules are first order logic formulas mainly used for knowledge representation.

## Query answering problem

The general problem of query answering over an instance with a set of existential rules is undecidable DBLP:journals/jair/CaliGK13.

### Deciding the query answering problem

There are known three classes of rules for which the problem of conjunctive query answering is decidable.

#### Finite expansion set (fes)

In this case, there always exists an finite canonical model of any facts and the rules we consider, which can be computed using the core chase and on which we can evaluate the query to get the answers.

The FES property is undecidable for general existential rules.

For the guarded fragment, we know that the termination of the oblivious and the semi-oblivious chase is decidable grecoChaseTerminationConstraints2010, which is not sufficient to obtain the decidability of the FES property.

#### Bounded treewidth set (bts)

In this case, the rules are such that from any facts, there exists a bound such that any derived facts using the core chase have a treewidth lower than this bound.

#### Finite unification set (fus)

In this case, **there is a first-order rewriting** of any conjunctive query w.r.t. the rules. It is equivalent to say that for any conjunctive query \(q\), **there exists a union of conjunctive query, which is a rewriting** of \(q\) w.r.t. the rules. It is also equivalent to say that **the rules satisfy the bounded derivation-depth property** meaning that for any query there exists an bound on the chase steps such that the query answers can be found using this bounded chase on any fact.

The following rule is 1-frontier, datalog and guarded, but do not form a fus: \(R = A(x), T(x, y) \rightarrow A(y)\). For example, consider the query \(q() \leftarrow A(x), B(x)\) and the fact \(F_{n} = A(c_{0}), T(c_{0}, c_{1}), \dots, T(c_{n-1}, c_{n}), B(c_{n})\). It shows that the rule set \(\{ R \}\) does not satisfy the bounded derivation-depth property.

Fontier-guarded rules FUS property is decidable DBLP:conf/ijcai/BarceloBLP18.

A Datalog rule set is FUS if and only if it is bounded DBLP:journals/jcss/AjtaiG94.

An algorithm of query rewriting with rules have been presented in the thesis of Mélanie König: DBLP:phd/hal/Konig14.

## Chase

The importance of the chase in many applications is due to the fact that several problems can be solved by exhibiting a *universal model*, and the chase computes a universal model, when it terminates DeutschChaseRevisited2008. An *universal model* is a model that can be mapped to any model or that is more general than any model. The *certain answer* of a query be computed by evaluated it on the *universal model*, instead of on every model.

### Chase variants

*oblivious chase*(`obl`

): for each h morphism from B to D, then we add h^{safe}(H) to the KB,*semi-oblivious chase*or*Skolem chase*(`sobl`

): for each h morphism from B to D, then we add h^{safe(hf)}(H) to the KB, where the safe operation only depends of h_{f}: the value of h on the frontier variables,*restricted chase*or*standard chase*(`std`

): for each h morphism from B to KB, then we add h^{safe}(H) to the KB to form KB', if h can not be extended to map H to the KB.*core chase*(`core`

):

### Chase termination classes

With TGDs only, the chase can either terminate or run forever.

As explained in DBLP:journals/pvldb/CalauttiGMT16, we have the following classes \(CT^{c}_{\forall}\) (resp.
\(CT^{c}_{\exists}\)) of sets of TGDs \(\Sigma\) such that the chase terminates on all every database, on every (resp. at least on one) `c`

chase executions.

Example of TGD set where there exists a `std`

chase executions that terminates and some that doesn't:

- \(E(x,y) \rightarrow E(x,z)\)
- \(E(x,y) \rightarrow E(y,y)\)

Example of TGD set where the `core`

chase terminates, but the `std`

chase doesn't, consider \(p(x,x), p(x,y) \rightarrow p(y,y), p(y,z)\) on \(\{p(a,a), p(a,b) \}\).

## Boundedness

For the oblivious chase:

- undecidable for datalog in general
- decidable for guarded frontier
- ? for frontier guarded

## Piecefulness

## System

- Graal
- Vlog
- DLV\(^{\exists}\)
- RDFox
- PDQ
- Vadalog
- Iqaros: UCQ rewriting-based query answering DBLP:conf/ictai/VenetisSV16

## Resources

- DBLP:conf/rweb/MugnierT14 is an introduction to existential rules.