UNPKG

rdf-stores

Version:

A TypeScript/JavaScript implementation of the RDF/JS store interface with support for quoted triples.

67 lines (66 loc) 3.54 kB
import type * as RDF from '@rdfjs/types'; import type { QuadTermName } from 'rdf-terms'; import type { ITermDictionary } from './dictionary/ITermDictionary'; import type { QuadPatternTerms } from './PatternTerm'; export declare const QUAD_TERM_NAMES_INVERSE: Record<QuadTermName, number>; /** * Determine the best suitable order's index among the given orders for the given quad pattern. * @param componentOrders Possible orders of quad components. * @param quadPattern A quad pattern. */ export declare function getBestIndex(componentOrders: QuadTermName[][], quadPattern: QuadPatternTerms): number; /** * Determine the best suitable order's index among the given orders for the given terms. * @param componentOrders Possible orders of quad components. * @param terms The quad term names to lookup. */ export declare function getBestIndexTerms(componentOrders: QuadTermName[][], terms: QuadTermName[]): number; /** * Construct the path to follow within the given index's component order for the given terms. * This returns a boolean[] indicating the path of terms to match within the index. * @param componentOrder The index's component order. * @param terms The terms to find. */ export declare function getIndexMatchTermsPath(componentOrder: QuadTermName[], terms: QuadTermName[]): boolean[]; /** * Determine the score of the given partial component order in the given component order. * @param componentOrder A quad component order. * @param partialComponentOrder A partial quad component order that originates from a quad pattern. */ export declare function getComponentOrderScore(componentOrder: QuadTermName[], partialComponentOrder: QuadTermName[]): number; /** * Order a quad pattern's terms based on the given component order. * @param desiredComponentOrder The desired order of components. * @param quadPattern A quad pattern. */ export declare function orderQuadComponents<T>(desiredComponentOrder: QuadTermName[], quadPattern: T[]): T[]; /** * Encode the given array of quad terms. * @param terms Non-encoded quad terms. * @param dictionary A dictionary * @return array An array of encoded terms. * The array will be undefined if at least one of the patterns does not occur within the dictionary. */ export declare function encodeOptionalTerms<E>(terms: QuadPatternTerms, dictionary: ITermDictionary<E>): (E | undefined)[] | undefined; /** * Convert a quad patter to a `QuadPatternTerms` type. * @param subject The subject. * @param predicate The predicate. * @param object The object. * @param graph The graph. * @param quotedPatterns If the index supports quoted triple filtering. * @return Tuple A tuple of QuadPatternTerms * and a boolean indicating if post-filtering will be needed on quoted triples. * This boolean can only be true if `quotedPatterns` is false, and a quoted triple pattern was present. */ export declare function quadToPattern(subject: RDF.Term | null | undefined, predicate: RDF.Term | null | undefined, object: RDF.Term | null | undefined, graph: RDF.Term | null | undefined, quotedPatterns: boolean): [QuadPatternTerms, boolean]; /** * Check if the given quad contains variables, even in deeply nested quoted triples. * @param currentTerm The quad pattern term. */ export declare function quadHasVariables(currentTerm: RDF.Quad): boolean; /** * Create a boolean array indicating which terms are quoted triple patterns. * @param terms An array of terms. */ export declare function arePatternsQuoted(terms: QuadPatternTerms): boolean[];