UNPKG

@jahed/sparql-engine

Version:

SPARQL query engine for servers and web browsers.

29 lines (28 loc) 1.41 kB
import type { IriTerm, Query, ServicePattern } 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 ServiceStageBuilder is responsible for evaluation a SERVICE clause in a SPARQL query. */ export default class ServiceStageBuilder extends StageBuilder { /** * Build a {@link PipelineStage} to evaluate a SERVICE clause * @param source - Input {@link PipelineStage} * @param node - Service clause * @param options - Execution options * @return A {@link PipelineStage} used to evaluate a SERVICE clause */ execute(source: PipelineStage<Bindings>, node: ServicePattern, context: ExecutionContext): Promise<PipelineStage<Bindings>>; /** * Returns a {@link PipelineStage} used to evaluate a SERVICE clause * @abstract * @param source - Input {@link PipelineStage} * @param iri - Iri of the SERVICE clause * @param subquery - Subquery to be evaluated * @param options - Execution options * @return A {@link PipelineStage} used to evaluate a SERVICE clause */ _buildIterator(source: PipelineStage<Bindings>, iri: IriTerm, subquery: Query, context: ExecutionContext): Promise<PipelineStage<Bindings>>; }