@jahed/sparql-engine
Version:
SPARQL query engine for servers and web browsers.
16 lines (15 loc) • 861 B
TypeScript
import type { PipelineStage } from "../engine/pipeline/pipeline-engine.ts";
import type { Pattern } from "sparqljs";
import ExecutionContext from "../engine/context/execution-context.ts";
import { PlanBuilder } from "../engine/plan-builder.ts";
import { Bindings } from "../rdf/bindings.ts";
/**
* Handles an SPARQL OPTIONAL clause
* @see {@link https://www.w3.org/TR/sparql11-query/#optionals}
* @param source - Input {@link PipelineStage}
* @param patterns - OPTIONAL clause, i.e., a SPARQL group pattern
* @param builder - Instance of the current {@link PlanBuilder}
* @param context - Execution context
* @return A {@link PipelineStage} which evaluate the OPTIONAL operation
*/
export default function optional(source: PipelineStage<Bindings>, patterns: Pattern[], builder: PlanBuilder, context: ExecutionContext): Promise<PipelineStage<Bindings>>;