The Chase on Deterministic Rules #
In our most general setting, we consider existential rules with disjunctions.
Here, we consider the special case of deterministic rules, i.e. rules with exactly one head disjunct (so essentially no disjunction at all).
Here, ChaseTree and ChaseBranch consequently coincide. At least intuitively. Formally, we still need to implement the corresponding transitions.
Arguably the most interesting result of this file is deterministicChaseBranchResultUniversallyModelsKb.
It states that in the deterministic setting, the result of a ChaseBranch is itself a universal model.
That is, a model that can be homomorphically embedded into every other model.
On disjunctive rules this is more complicated as can be seen in chaseTreeResultIsUniversal.
The firstBranch of a TreeDerivation is generated by always picking the first child node.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The firstResult is the result of the firstBranch.
Equations
- td.firstResult = td.firstBranch.result
Instances For
The firstResult is a member of the TreeDerivation.result.
In the deterministic setting, the branches of a TreeDerivation only contain the firstBranch.
In the deterministic setting, the firstResult of a ChaseTree is by itself a universal model.
We can straightforwardly convert a ChaseDerivation into a TreeDerivation that has the original ChaseDerivation as its only branch.
Equations
Instances For
The firstBranch of intoTree is the original ChaseDerivation.
The firstResult of intoTree is the original ChaseDerivation.result.
We can not only convert a ChaseDerivation into a TreeDerivation but also a ChaseBranch into a ChaseTree.
Equations
Instances For
In the deterministic setting, a ChaseBranch.result is a universal model.