@jahed/sparql-engine
Version:
SPARQL query engine for servers and web browsers.
58 lines (57 loc) • 2.78 kB
TypeScript
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>>;
}