chase-rs/ROADMAP.md
2026-03-09 11:12:18 +01:00

83 lines
2.1 KiB
Markdown

## 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