UNPKG

@comunica/actor-query-source-identify-hypermedia-qpf

Version:

A qpf query-source-identify-hypermedia actor

75 lines (74 loc) 4.6 kB
import type { ISearchForm } from '@comunica/actor-rdf-metadata-extract-hydra-controls'; import type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf'; import type { MediatorRdfMetadata } from '@comunica/bus-rdf-metadata'; import type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract'; import type { IQuerySource, BindingsStream, IActionContext, FragmentSelectorShape, IQueryBindingsOptions, MetadataBindings, ComunicaDataFactory } from '@comunica/types'; import type { AlgebraFactory } from '@comunica/utils-algebra'; import { Algebra } from '@comunica/utils-algebra'; import type { BindingsFactory } from '@comunica/utils-bindings-factory'; import type * as RDF from '@rdfjs/types'; import type { AsyncIterator } from 'asynciterator'; export declare class QuerySourceQpf implements IQuerySource { protected readonly selectorShape: FragmentSelectorShape; readonly searchForm: ISearchForm; private readonly mediatorMetadata; private readonly mediatorMetadataExtract; private readonly mediatorDereferenceRdf; private readonly dataFactory; private readonly algebraFactory; private readonly bindingsFactory; readonly referenceValue: string; private readonly subjectUri; private readonly predicateUri; private readonly objectUri; private readonly graphUri?; private readonly url; private readonly defaultGraph?; private readonly bindingsRestricted; private readonly cachedQuads; constructor(mediatorMetadata: MediatorRdfMetadata, mediatorMetadataExtract: MediatorRdfMetadataExtract, mediatorDereferenceRdf: MediatorDereferenceRdf, dataFactory: ComunicaDataFactory, algebraFactory: AlgebraFactory, bindingsFactory: BindingsFactory, subjectUri: string, predicateUri: string, objectUri: string, graphUri: string | undefined, url: string, metadata: Record<string, any>, bindingsRestricted: boolean, initialQuads?: RDF.Stream); getFilterFactor(): Promise<number>; getSelectorShape(): Promise<FragmentSelectorShape>; queryBindings(operation: Algebra.Operation, context: IActionContext, options?: IQueryBindingsOptions): BindingsStream; /** * Get a first QPF search form. * @param {{[p: string]: any}} metadata A metadata object. * @return {ISearchForm} A search form, or null if none could be found. */ getSearchForm(metadata: Record<string, any>): ISearchForm | undefined; /** * Create a QPF fragment IRI for the given quad pattern. * @param {ISearchForm} searchForm A search form. * @param {Term} subject A term. * @param {Term} predicate A term. * @param {Term} object A term. * @param {Term} graph A term. * @return {string} A URI. */ createFragmentUri(searchForm: ISearchForm, subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term): string; protected match(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term, unionDefaultGraph: boolean, context: IActionContext, options?: IQueryBindingsOptions): AsyncIterator<RDF.Quad>; /** * If we add bindings for brTPF, append it to the URL. * We have to hardcode this because brTPF doesn't expose a URL template for passing bindings. * @param subject The subject. * @param predicate The predicate. * @param object The object. * @param graph The graph. * @param url The original QPF URL. * @param filterBindings The bindings to restrict with. * @param filterBindings.bindings The bindings stream. * @param filterBindings.metadata The bindings metadata. * @protected */ getBindingsRestrictedLink(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term, url: string, filterBindings: { bindings: BindingsStream; metadata: MetadataBindings; }): Promise<string>; protected reverseMapQuadsToDefaultGraph(quads: AsyncIterator<RDF.Quad>): AsyncIterator<RDF.Quad>; getPatternId(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term): string; protected cacheQuads(quads: AsyncIterator<RDF.Quad>, subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term): void; protected getCachedQuads(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term): AsyncIterator<RDF.Quad> | undefined; queryQuads(_operation: Algebra.Operation, _context: IActionContext): AsyncIterator<RDF.Quad>; queryBoolean(_operation: Algebra.Ask, _context: IActionContext): Promise<boolean>; queryVoid(_operation: Algebra.Operation, _context: IActionContext): Promise<void>; }