2026-04-14 10:05:24 +02:00
|
|
|
//! 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;
|
2026-04-14 10:05:24 +02:00
|
|
|
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::{
|
2026-04-14 10:05:24 +02:00
|
|
|
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};
|
2026-04-14 10:05:24 +02:00
|
|
|
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};
|