chase-rs/ROADMAP.md
Hassan Abedi 06b6f09fc3 WIP
2026-03-09 11:05:09 +01:00

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