1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! Query Execution Engine
//!
//! Jena-inspired algebraic query execution with pluggable engines.
//!
//! # Architecture
//!
//! ```text
//! QueryExpr (AST) → Op (Algebra) → Plan → Iterator<Binding>
//!
//! ┌─────────────────────────────────────────────────────────────┐
//! │ QueryEngine │
//! ├─────────────────────────────────────────────────────────────┤
//! │ compile(QueryExpr) → Op │
//! │ optimize(Op) → Op │
//! │ execute(Op) → BindingIterator │
//! └─────────────────────────────────────────────────────────────┘
//! │
//! ┌──────────────────┼──────────────────┐
//! ▼ ▼ ▼
//! OpBGP OpJoin OpFilter
//! (BasicPattern) (Join two Ops) (Filter Op)
//! ```
//!
//! # Components
//!
//! - **Op**: Algebraic operators (scan, filter, join, union, etc.)
//! - **Transform**: Visitors that transform Op trees
//! - **Binding**: Variable -> Value mapping
//! - **BindingIterator**: Lazy result stream
//! - **QueryEngine**: Compiles, optimizes, and executes queries
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;