Skip to main content

shifty_opt/
lib.rs

1//! Static analysis, normalization, and planning (Layers 4-5).
2//!
3//! Layer 4 starts here: the polarity-aware shape [`deps`]endency graph and
4//! [`strata`]ification analysis that realize the recursion semantics decided in
5//! `docs/03-recursion-semantics.md` (stratified; diagnose non-stratifiable).
6//! Normalization and logical→physical planning follow.
7
8pub mod deps;
9pub mod normalize;
10pub mod plan;
11pub mod rule_deps;
12pub mod sparql_native;
13pub mod strata;
14
15pub use deps::{DepEdge, Polarity, dependency_edges};
16pub use normalize::normalize;
17pub use plan::{FocusSource, PhysicalPlan, StatementPlan, plan, plan_no_seeding, plan_no_sort};
18pub use rule_deps::{
19    RuleDependencies, rule_dependencies, rule_guard_dependencies, selector_dependencies,
20};
21pub use sparql_native::{
22    ClosureKind, ExprPlan, GraphScan, NativeOp, NativeQueryPlan, OpId, PathScan, PlanStats,
23    QueryForm, ScanTerm, TripleScan, VarId, lower_query, lower_query_with_stats,
24};
25pub use strata::{Stratification, Stratum, analyze};