rdf-dataset-fragmenter
Version:
Fragments an RDF dataset into multiple parts
25 lines (24 loc) • 1.12 kB
TypeScript
import type * as RDF from '@rdfjs/types';
import type { IQuadSink } from '../io/IQuadSink';
import type { IDatasetSummary } from '../summary/DatasetSummary';
import { FragmentationStrategyStreamAdapter } from './FragmentationStrategyStreamAdapter';
/**
* Fragmentation strategy that collects dataset summaries per dataset.
*/
export declare abstract class FragmentationStrategyDatasetSummary<T extends IDatasetSummary> extends FragmentationStrategyStreamAdapter {
protected readonly summaries: Map<string, T>;
protected readonly datasetPatterns: RegExp[];
private readonly blankNodeQuads;
private readonly blankNodeDatasets;
constructor(options: IFragmentationStrategyDatasetSummaryOptions);
protected abstract createSummary(dataset: string): T;
protected subjectToDatasets(subject: string): Set<string>;
protected handleQuad(quad: RDF.Quad): Promise<void>;
protected flush(quadSink: IQuadSink): Promise<void>;
}
export interface IFragmentationStrategyDatasetSummaryOptions {
/**
* Regular expressions used to map subjects to datasets.
*/
datasetPatterns: string[];
}