34 lines
1.2 KiB
Rust
Raw Normal View History

//! Chase algorithm implementation for reasoning with tuple-generating
//! dependencies (TGDs), equality-generating dependencies (EGDs), and
//! negative constraints.
//!
//! Supported chase variants: restricted, standard, oblivious, and Skolem.
//! Optional semi-naive evaluation reduces redundant matching. Rules may use
//! negation-as-failure in body atoms; [`stratification`] ensures correct
//! evaluation order when negation creates inter-predicate dependencies.
2026-04-09 10:12:59 +02:00
pub mod atom;
pub mod inference;
pub mod instance;
pub mod rule;
pub mod stratification;
2026-04-09 10:12:59 +02:00
pub mod substitution;
pub mod term;
pub mod union_find;
mod engine;
pub use atom::Atom;
pub use engine::{
ChaseConfig, ChaseError, ChaseResult, ChaseVariant, chase, chase_full, chase_stratified,
chase_with_config, chase_with_egds, oblivious_chase, skolem_chase, standard_chase,
2026-04-09 10:12:59 +02:00
};
pub use inference::{Derivation, MaterializedState, find_matches, materialize};
pub use instance::{Instance, InstanceError};
pub use rule::{
Egd, EgdBuilder, Equality, NegativeConstraint, NegativeConstraintBuilder, Rule, RuleBuilder,
};
2026-04-09 10:12:59 +02:00
pub use substitution::Substitution;
pub use term::Term;
pub use union_find::{MergeError, UnionFind};