@jahed/sparql-engine
Version:
SPARQL query engine for servers and web browsers.
28 lines (27 loc) • 1.35 kB
TypeScript
import type { GraphPattern, IriTerm, Query } from "sparqljs";
import type { Bindings } from "../../rdf/bindings.ts";
import ExecutionContext from "../context/execution-context.ts";
import type { PipelineStage } from "../pipeline/pipeline-engine.ts";
import StageBuilder from "./stage-builder.ts";
/**
* A GraphStageBuilder evaluates GRAPH clauses in a SPARQL query.
*/
export default class GraphStageBuilder extends StageBuilder {
/**
* Build a {@link PipelineStage} to evaluate a GRAPH clause
* @param source - Input {@link PipelineStage}
* @param node - Graph clause
* @param options - Execution options
* @return A {@link PipelineStage} used to evaluate a GRAPH clause
*/
execute(source: PipelineStage<Bindings>, node: GraphPattern, context: ExecutionContext): Promise<PipelineStage<Bindings>>;
/**
* Returns a {@link PipelineStage} used to evaluate a GRAPH clause
* @param source - Input {@link PipelineStage}
* @param iri - IRI of the GRAPH clause
* @param subquery - Subquery to be evaluated
* @param options - Execution options
* @return A {@link PipelineStage} used to evaluate a GRAPH clause
*/
_buildIterator(source: PipelineStage<Bindings>, iri: IriTerm, subquery: Query, context: ExecutionContext): Promise<PipelineStage<Bindings>>;
}