@rdfc/sparql-ingest-processor-ts
Version:
SPARQL Update function to be within RDF-Connect pipelines
64 lines (63 loc) • 2.05 kB
TypeScript
import { Processor } from "@rdfc/js-runner";
import { Agent } from "undici";
import { RdfStore } from "rdf-stores";
import { Logger } from "winston";
import type { Quad, Term } from "@rdfjs/types";
import type { Reader, Writer } from "@rdfc/js-runner";
export type ChangeSemantics = {
changeTypePath: string;
createValue: string;
updateValue: string;
deleteValue: string;
};
export type TransactionConfig = {
transactionIdPath: string;
transactionEndPath: string;
};
export type PerformanceConfig = {
name: string;
outputPath: string;
queryTimeout?: number;
failureIsFatal?: boolean;
};
export declare enum OperationMode {
REPLICATION = "Replication",
SYNC = "Sync"
}
export type IngestConfig = {
operationMode?: OperationMode;
memberBatchSize?: number;
memberShape?: string;
changeSemantics?: ChangeSemantics;
targetNamedGraph?: string;
transactionConfig?: TransactionConfig;
graphStoreUrl?: string;
forVirtuoso?: boolean;
accessToken?: string;
measurePerformance?: PerformanceConfig;
};
type TransactionMember = {
memberId: string;
transactionId: string;
store: RdfStore;
};
type SPARQLIngestArgs = {
memberStream: Reader;
config: IngestConfig;
sparqlWriter?: Writer;
};
export declare class SPARQLIngest extends Processor<SPARQLIngestArgs> {
protected globalDispatcher: Agent;
protected transactionMembers: TransactionMember[];
protected memberBatch: Quad[];
protected requestsPerformance: number[];
protected batchCount: number;
protected createTransactionQueriesLogger: Logger;
protected doSPARQLRequestLogger: Logger;
init(this: SPARQLIngestArgs & this): Promise<void>;
transform(this: SPARQLIngestArgs & this): Promise<void>;
produce(this: SPARQLIngestArgs & this): Promise<void>;
verifyTransaction(stores: RdfStore[], transactionIdPath: string, transactionId: Term): void;
createTransactionQueries(transactionMembers: TransactionMember[], config: IngestConfig): string;
}
export {};