WIP
This commit is contained in:
parent
aac85af9a1
commit
06b6f09fc3
@ -21,6 +21,14 @@ This implementation provides a **restricted chase** that guarantees termination
|
|||||||
- **Fluent API**: `RuleBuilder` for readable rule construction
|
- **Fluent API**: `RuleBuilder` for readable rule construction
|
||||||
- **Zero Dependencies**: Pure Rust with no external runtime dependencies
|
- **Zero Dependencies**: Pure Rust with no external runtime dependencies
|
||||||
|
|
||||||
|
See [ROADMAP.md](ROADMAP.md) for the list of implemented and planned features.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> This project is still in early development, so bugs and breaking changes are expected.
|
||||||
|
> Please use the [issues page](https://code.obsidian.systems/habedi-work/chase-rs/issues) to report bugs or request features.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### Quick Start
|
### Quick Start
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
|
|||||||
82
ROADMAP.md
Normal file
82
ROADMAP.md
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
## 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
|
||||||
Loading…
x
Reference in New Issue
Block a user