2.1 KiB
2.1 KiB
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
- Term representation (
Constant,Null,Variable) - Atom structure (predicate with terms)
- Database instance (set of ground atoms)
- Tuple-generating dependencies (TGDs)
- Rule builder with fluent API
- Variable substitutions
- Atom unification
- Core chase algorithm
- Restricted chase (trigger tracking for termination)
- Existential variable support (labeled null generation)
- Multi-atom rule bodies (conjunctive queries)
- Multi-atom rule heads
- Constants in rule patterns
Chase Variants
- 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
- Unit tests (in-module)
- 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