## Project Roadmap This document outlines the implemented features and the future goals for the project. > [!IMPORTANT] > This roadmap is a work in progress and is subject to change. ### Core Features - [x] Term representation (`Constant`, `Null`, `Variable`) - [x] Atom structure (predicate with terms) - [x] Database instance (set of ground atoms) - [x] Tuple-generating dependencies (TGDs) - [x] Rule builder with fluent API - [x] Variable substitutions - [x] Atom unification - [x] Core chase algorithm - [x] Restricted chase (trigger tracking for termination) - [x] Existential variable support (labeled null generation) - [x] Multi-atom rule bodies (conjunctive queries) - [x] Multi-atom rule heads - [x] Constants in rule patterns ### Chase Variants - [x] Restricted chase (current implementation) - [ ] Standard chase - [ ] Oblivious chase - [ ] Skolem chase - [ ] Core chase (with homomorphism checks) - [ ] Parallel chase ### Advanced Features - [ ] Equality-generating dependencies (EGDs) - [ ] Negative constraints (NCs) - [ ] Stratified negation in rule bodies - [ ] Disjunctive heads - [ ] Aggregation support - [ ] Recursion detection and optimization - [ ] Termination analysis (weak acyclicity, joint acyclicity) ### Query Answering - [ ] Boolean conjunctive query (BCQ) entailment - [ ] Conjunctive query (CQ) answering - [ ] Query rewriting - [ ] Certain answer computation ### Performance Optimizations - [ ] Predicate indexing (hash-based fact lookup) - [ ] Semi-naive evaluation - [ ] Magic sets transformation - [ ] Incremental chase (delta rules) - [ ] Memory-efficient null representation - [ ] Parallel rule evaluation ### Parsing and I/O - [ ] Datalog parser - [ ] Rule file format (.dlog or similar) - [ ] Fact import/export (CSV, JSON) - [ ] SPARQL-like query syntax - [ ] RDF/OWL integration ### Development and Testing - [x] Unit tests (in-module) - [x] Integration tests - [ ] Property-based tests (QuickCheck/proptest) - [ ] Regression tests - [ ] Benchmarks - [ ] Fuzzing ### Documentation and Tooling - [ ] API documentation (rustdoc) - [ ] User guide - [ ] Example programs - [ ] CLI interface - [ ] REPL for interactive queries