Add information about chase algorithm variants
This commit is contained in:
parent
012babb6fa
commit
34895c057b
@ -7,18 +7,38 @@
|
|||||||
| The Theory of Joins in Relational Databases | Aho, Beeri & Ullman | [dl.acm.org/doi/10.1145/320083.320091](https://dl.acm.org/doi/10.1145/320083.320091) |
|
| The Theory of Joins in Relational Databases | Aho, Beeri & Ullman | [dl.acm.org/doi/10.1145/320083.320091](https://dl.acm.org/doi/10.1145/320083.320091) |
|
||||||
| Testing Implications of Data Dependencies | Maier, Mendelzon & Sagiv | [dl.acm.org/doi/10.1145/320107.320115](https://dl.acm.org/doi/10.1145/320107.320115) |
|
| Testing Implications of Data Dependencies | Maier, Mendelzon & Sagiv | [dl.acm.org/doi/10.1145/320107.320115](https://dl.acm.org/doi/10.1145/320107.320115) |
|
||||||
|
|
||||||
|
### Algorithm Variants
|
||||||
|
|
||||||
|
| Variant | Output Size | Speed per Step | Satisfaction Check | Used By | Best For |
|
||||||
|
|:---------------|:------------|:---------------|:-------------------|:------------------|:----------------------------------------------|
|
||||||
|
| Oblivious | Largest | Fastest | None | — | Prototyping; when output size doesn't matter |
|
||||||
|
| Skolem | Medium | Fast | Implicit (Skolem terms) | VLog, Graal | Parallelism; data exchange; deterministic runs |
|
||||||
|
| Restricted | Smallest | Slower | Explicit (homomorphism check) | RDFox, VLog | Production use; query performance over large KGs |
|
||||||
|
| Core | Most compact | Slowest | Full core computation | — (theoretical) | Theoretical analysis; minimum representations |
|
||||||
|
|
||||||
|
#### Variant Notes
|
||||||
|
|
||||||
|
**Oblivious Chase** fires every applicable rule without checking whether the conclusion already holds. Simple to implement but produces redundant facts and is the hardest to guarantee termination for.
|
||||||
|
|
||||||
|
**Skolem Chase** uses deterministic Skolem functions to generate nulls — the same rule trigger always produces the same null. This makes it idempotent and easy to parallelize, with no need to track which rules have already fired.
|
||||||
|
|
||||||
|
**Restricted Chase** checks before firing whether the rule head is already satisfied via a homomorphism into the current database. Never adds redundant facts, producing the smallest universal solution. The homomorphism check is NP-hard in general but fast in practice with good indexing.
|
||||||
|
|
||||||
|
**Core Chase** goes further than the restricted chase, computing the logical core — the most compressed possible universal solution. Theoretically important but computationally expensive; not used in production engines.
|
||||||
|
|
||||||
### Chase Query Engines
|
### Chase Query Engines
|
||||||
|
|
||||||
| Engine | Organization | Home Page |
|
| Engine | Organization | Chase Variant | Home Page |
|
||||||
|:---------|:-------------------------------|:-------------------------------------------------------------------------------------|
|
|:---------|:-------------------------------|:-------------------|:-------------------------------------------------------------------------------------|
|
||||||
| RDFox | Oxford Semantic Technologies | [oxfordsemantic.tech/rdfox](https://oxfordsemantic.tech/rdfox) |
|
| RDFox | Oxford Semantic Technologies | Restricted | [oxfordsemantic.tech/rdfox](https://oxfordsemantic.tech/rdfox) |
|
||||||
| VLog | TU Dresden / VU Amsterdam | [github.com/karmaresearch/vlog](https://github.com/karmaresearch/vlog) |
|
| VLog | TU Dresden / VU Amsterdam | Restricted + Skolem | [github.com/karmaresearch/vlog](https://github.com/karmaresearch/vlog) |
|
||||||
| Graal | LIRMM, Montpellier | [graphik-team.github.io/graal](https://graphik-team.github.io/graal) |
|
| Graal | LIRMM, Montpellier | Skolem + Oblivious | [graphik-team.github.io/graal](https://graphik-team.github.io/graal) |
|
||||||
| Vadalog | University of Oxford / TU Wien | [vadalog-system.com](https://vadalog-system.com) |
|
| Vadalog | University of Oxford / TU Wien | Warded (Restricted variant) | [vadalog-system.com](https://vadalog-system.com) |
|
||||||
| PDQ | University of Oxford | [github.com/michaelbenedict/pdq](https://github.com/michaelbenedict/pdq) |
|
| PDQ | University of Oxford | Skolem | [github.com/michaelbenedict/pdq](https://github.com/michaelbenedict/pdq) |
|
||||||
| Llunatic | University of Genova | [github.com/donatellosantoro/Llunatic](https://github.com/donatellosantoro/Llunatic) |
|
| Llunatic | University of Genova | Skolem | [github.com/donatellosantoro/Llunatic](https://github.com/donatellosantoro/Llunatic) |
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
* **Mar 5, 2026** -- Re-formatted the table for the Papers section.
|
* **Mar 6, 2026** -- Added algorithm variants section; added chase variant column to engines table.
|
||||||
* **Mar 5, 2026** -- The first version was created.
|
* **Mar 5, 2026** -- Re-formatted the table for the papers section.
|
||||||
|
* **Mar 5, 2026** -- The first version was created.
|
||||||
Loading…
x
Reference in New Issue
Block a user