@jahed/sparql-engine
Version:
SPARQL query engine for servers and web browsers.
26 lines (25 loc) • 888 B
TypeScript
import type { SparqlQuery } from "sparqljs";
import PlanVisitor from "./plan-visitor.ts";
/**
* An Optimizer applies a set of optimization rules, implemented using subclasses of {@link PlanVisitor}.
*/
export default class Optimizer {
private _visitors;
constructor();
/**
* Get an optimizer configured with the default optimization rules
* @return A new Optimizer pre-configured with default rules
*/
static getDefault(): Optimizer;
/**
* Register a new visitor, which implements an optimization rule.
* @param visitor - Visitor
*/
addVisitor(visitor: PlanVisitor): void;
/**
* Optimize a SPARQL query expression tree, by applying the set of rules.
* @param plan - SPARQL query expression tree to iptimize
* @return Optimized SPARQL query expression tree
*/
optimize(plan: SparqlQuery): SparqlQuery;
}