Factory for creating algebra operations and expressions
Factory for creating AST nodes
Transformer for traversing and modifying AST/algebra structures
Solver for variable clustering and unification during rewriting
Coins the variable a pattern that binds nothing projects, SPARQL having no sub-ASK and no empty projection. It is the one variable the unfolding lets out of a pattern's sub-SELECT, so every call hands back a name no other pattern of this rewrite uses.
RDF data factory for creating terms
SPARQL generator for converting algebra back to query strings
SPARQL parser for parsing query strings
The factories and the solver every transformation works through.
It holds no mapping: a mapping reaches the one pass that needs it through the closure transformations/unfolding!unfoldingTransformation creates. It is built fresh per rewrite, the ClusterSolver being stateful and the pipeline asynchronous.