UNPKG

@jahed/sparql-engine

Version:

SPARQL query engine for servers and web browsers.

58 lines (57 loc) 2.78 kB
import type { BgpPattern, ClearDropOperation, GraphQuads, InsertDeleteOperation, UpdateOperation } from "sparqljs"; import ClearConsumer from "../../operators/update/clear-consumer.ts"; import { type Consumable } from "../../operators/update/consumer.ts"; import DeleteConsumer from "../../operators/update/delete-consumer.ts"; import InsertConsumer from "../../operators/update/insert-consumer.ts"; import { Bindings } from "../../rdf/bindings.ts"; import Graph from "../../rdf/graph.ts"; import ExecutionContext from "../context/execution-context.ts"; import type { PipelineStage } from "../pipeline/pipeline-engine.ts"; import StageBuilder from "./stage-builder.ts"; /** * An UpdateStageBuilder evaluates SPARQL UPDATE queries. * @see https://www.w3.org/TR/2013/REC-sparql11-update-20130321 */ export default class UpdateStageBuilder extends StageBuilder { /** * Create a {@link Consumable} used to evaluate a SPARQL 1.1 Update query * @param updates - Set of Update queries to execute * @param options - Execution options * @return A Consumable used to evaluatethe set of update queries */ execute(updates: Array<UpdateOperation>, context: ExecutionContext): Promise<Consumable<Bindings>>; private executeUpdate; /** * Build a Consumer to evaluate SPARQL UPDATE queries * @private * @param update - Parsed query * @param options - Execution options * @return A Consumer used to evaluate SPARQL UPDATE queries */ _handleInsertDelete(update: InsertDeleteOperation, context: ExecutionContext): Promise<Consumable<Bindings>>; /** * Build a consumer to evaluate a SPARQL INSERT clause * @private * @param source - Input {@link PipelineStage} * @param group - parsed SPARQL INSERT clause * @param graph - RDF Graph used to insert data * @return A consumer used to evaluate a SPARQL INSERT clause */ _buildInsertConsumer(source: PipelineStage<Bindings>, group: BgpPattern | GraphQuads, graph: Graph | null): Promise<InsertConsumer<Bindings>>; /** * Build a consumer to evaluate a SPARQL DELETE clause * @private * @param source - Input {@link PipelineStage} * @param group - parsed SPARQL DELETE clause * @param graph - RDF Graph used to delete data * @return A consumer used to evaluate a SPARQL DELETE clause */ _buildDeleteConsumer(source: PipelineStage<Bindings>, group: BgpPattern | GraphQuads, graph: Graph | null): Promise<DeleteConsumer<Bindings>>; /** * Build a Consumer to evaluate CLEAR queries * @private * @param query - Parsed query * @return A Consumer used to evaluate CLEAR queries */ _handleClearQuery(query: ClearDropOperation): Promise<ClearConsumer<Bindings>>; }