@undefineds.co/xpod 0.3.18 → 0.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/bun.json +57 -11
- package/config/cloud.json +14 -12
- package/config/local.json +16 -14
- package/config/xpod.json +47 -9
- package/dist/api/matrix/PodMatrixStore.d.ts +4 -7
- package/dist/api/matrix/PodMatrixStore.js +116 -148
- package/dist/api/matrix/PodMatrixStore.js.map +1 -1
- package/dist/api/matrix/types.d.ts +2 -0
- package/dist/api/matrix/types.js.map +1 -1
- package/dist/api/runs/PiAgentRuntimeDriver.d.ts +1 -0
- package/dist/api/runs/PiAgentRuntimeDriver.js +4 -1
- package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -1
- package/dist/components/components.jsonld +3 -0
- package/dist/components/context.jsonld +71 -32
- package/dist/http/SubgraphSparqlHttpHandler.d.ts +1 -0
- package/dist/http/SubgraphSparqlHttpHandler.js +27 -4
- package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -1
- package/dist/http/SubgraphSparqlHttpHandler.jsonld +4 -0
- package/dist/http/vector/VectorHttpHandler.d.ts +5 -1
- package/dist/http/vector/VectorHttpHandler.js +5 -5
- package/dist/http/vector/VectorHttpHandler.js.map +1 -1
- package/dist/http/vector/VectorHttpHandler.jsonld +40 -28
- package/dist/index.d.ts +5 -2
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/runtime/Proxy.d.ts +3 -0
- package/dist/runtime/Proxy.js +31 -7
- package/dist/runtime/Proxy.js.map +1 -1
- package/dist/solidfs/LocalSolidFS.js +31 -124
- package/dist/solidfs/LocalSolidFS.js.map +1 -1
- package/dist/solidfs/SolidFsPathUtils.d.ts +13 -0
- package/dist/solidfs/SolidFsPathUtils.js +114 -0
- package/dist/solidfs/SolidFsPathUtils.js.map +1 -0
- package/dist/solidfs/SolidFsSyncJournal.d.ts +117 -0
- package/dist/solidfs/SolidFsSyncJournal.js +553 -0
- package/dist/solidfs/SolidFsSyncJournal.js.map +1 -0
- package/dist/solidfs/index.d.ts +1 -0
- package/dist/solidfs/index.js +1 -0
- package/dist/solidfs/index.js.map +1 -1
- package/dist/solidfs/types.d.ts +1 -0
- package/dist/solidfs/types.js.map +1 -1
- package/dist/storage/SparqlUpdateResourceStore.js +94 -33
- package/dist/storage/SparqlUpdateResourceStore.js.map +1 -1
- package/dist/storage/accessors/MixDataAccessor.d.ts +22 -5
- package/dist/storage/accessors/MixDataAccessor.js +376 -61
- package/dist/storage/accessors/MixDataAccessor.js.map +1 -1
- package/dist/storage/accessors/MixDataAccessor.jsonld +73 -5
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +32 -10
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js.map +1 -1
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +28 -6
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js.map +1 -1
- package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +45 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.js +277 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.js.map +1 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +161 -0
- package/dist/storage/rdf/Rdf3xIndex.d.ts +122 -0
- package/dist/storage/rdf/Rdf3xIndex.js +2695 -0
- package/dist/storage/rdf/Rdf3xIndex.js.map +1 -0
- package/dist/storage/rdf/Rdf3xIndex.jsonld +528 -0
- package/dist/storage/rdf/Rdf3xSchema.d.ts +20 -0
- package/dist/storage/rdf/Rdf3xSchema.js +65 -0
- package/dist/storage/rdf/Rdf3xSchema.js.map +1 -0
- package/dist/storage/rdf/RdfLocalQueryEngine.d.ts +10 -4
- package/dist/storage/rdf/RdfLocalQueryEngine.js +607 -127
- package/dist/storage/rdf/RdfLocalQueryEngine.js.map +1 -1
- package/dist/storage/rdf/RdfQuadIndex.d.ts +12 -1
- package/dist/storage/rdf/RdfQuadIndex.js +152 -22
- package/dist/storage/rdf/RdfQuadIndex.js.map +1 -1
- package/dist/storage/rdf/RdfQuadIndex.jsonld +36 -4
- package/dist/storage/rdf/RdfSparqlAdapter.d.ts +20 -2
- package/dist/storage/rdf/RdfSparqlAdapter.js +364 -40
- package/dist/storage/rdf/RdfSparqlAdapter.js.map +1 -1
- package/dist/storage/rdf/RdfSparqlAdapter.jsonld +60 -0
- package/dist/storage/rdf/RdfTermDictionary.d.ts +8 -0
- package/dist/storage/rdf/RdfTermDictionary.js +141 -70
- package/dist/storage/rdf/RdfTermDictionary.js.map +1 -1
- package/dist/storage/rdf/RdfTermDictionary.jsonld +24 -0
- package/dist/storage/rdf/RdfTextIndex.js +10 -3
- package/dist/storage/rdf/RdfTextIndex.js.map +1 -1
- package/dist/storage/rdf/SolidRdfEngine.d.ts +15 -6
- package/dist/storage/rdf/SolidRdfEngine.js +218 -25
- package/dist/storage/rdf/SolidRdfEngine.js.map +1 -1
- package/dist/storage/rdf/SolidRdfEngine.jsonld +70 -7
- package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +11 -7
- package/dist/storage/rdf/SolidRdfSparqlEngine.js +60 -47
- package/dist/storage/rdf/SolidRdfSparqlEngine.js.map +1 -1
- package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +9 -5
- package/dist/storage/rdf/index.d.ts +2 -2
- package/dist/storage/rdf/index.js +3 -3
- package/dist/storage/rdf/index.js.map +1 -1
- package/dist/storage/rdf/models-benchmark.d.ts +12 -1
- package/dist/storage/rdf/models-benchmark.js +549 -32
- package/dist/storage/rdf/models-benchmark.js.map +1 -1
- package/dist/storage/rdf/types.d.ts +81 -7
- package/dist/storage/rdf/types.js.map +1 -1
- package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +36 -0
- package/dist/storage/sparql/CompatibilitySparqlEngine.js +96 -0
- package/dist/storage/sparql/CompatibilitySparqlEngine.js.map +1 -0
- package/dist/storage/sparql/CompatibilitySparqlEngine.jsonld +123 -0
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +35 -0
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +112 -0
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js.map +1 -0
- package/dist/storage/sparql/SubgraphQueryEngine.d.ts +1 -36
- package/dist/storage/sparql/SubgraphQueryEngine.js +2 -115
- package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
- package/dist/storage/sparql/SubgraphQueryEngine.jsonld +1 -124
- package/dist/terminal/AclPermissionService.d.ts +2 -1
- package/dist/terminal/AclPermissionService.js +26 -3
- package/dist/terminal/AclPermissionService.js.map +1 -1
- package/dist/terminal/TerminalSessionManager.js +25 -3
- package/dist/terminal/TerminalSessionManager.js.map +1 -1
- package/package.json +1 -1
- package/dist/storage/rdf/Rdf3xTripleIndex.d.ts +0 -55
- package/dist/storage/rdf/Rdf3xTripleIndex.js +0 -1235
- package/dist/storage/rdf/Rdf3xTripleIndex.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidRdfSparqlEngine.js","sourceRoot":"","sources":["../../../src/storage/rdf/SolidRdfSparqlEngine.ts"],"names":[],"mappings":"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","sourcesContent":["import { ArrayIterator } from 'asynciterator';\nimport type { AsyncIterator } from 'asynciterator';\nimport type { Bindings } from '@comunica/types';\nimport type { DefaultGraph, Quad, Quad_Object, Term } from '@rdfjs/types';\nimport { DataFactory as RdfDataFactory } from 'rdf-data-factory';\nimport { BindingsFactory } from '@comunica/utils-bindings-factory';\nimport { termToId } from 'n3';\nimport type { SparqlEngine } from '../sparql/SubgraphQueryEngine';\nimport { DisabledSparqlFeatureError, RdfSparqlAdapter, UnsupportedSparqlQueryError } from './RdfSparqlAdapter';\nimport type { ShadowRdfQuintStore } from './ShadowRdfQuintStore';\nimport type { SolidRdfEngine } from './SolidRdfEngine';\nimport type { RdfBindingRow, RdfLocalQueryResult, RdfQueryTermPattern } from './types';\n\nexport interface SolidRdfSparqlEngineOptions {\n rdfEngine: SolidRdfEngine;\n fallback: SparqlEngine;\n shadowStore?: ShadowRdfQuintStore;\n enablePrimary?: boolean;\n onFallback?: (reason: SolidRdfSparqlFallback) => void;\n}\n\nexport interface SolidRdfSparqlFallback {\n operation: 'queryBindings' | 'queryBoolean' | 'queryQuads' | 'queryVoid' | 'constructGraph' | 'listGraphs';\n reason: string;\n}\n\nexport type SolidRdfSparqlOperation = SolidRdfSparqlFallback['operation'];\n\nexport interface SolidRdfSparqlOperationCount {\n operation: SolidRdfSparqlOperation;\n primaryCount: number;\n fallbackCount: number;\n totalCount: number;\n fallbackRate: number;\n primaryDurationMs: number;\n fallbackDurationMs: number;\n}\n\nexport interface SolidRdfSparqlPrimaryMetric {\n operation: SolidRdfSparqlOperation;\n durationMs: number;\n scannedRows: number;\n returnedRows: number;\n plan: string[];\n indexChoices: string[];\n}\n\nexport interface SolidRdfSparqlFallbackMetric extends SolidRdfSparqlFallback {\n durationMs: number;\n}\n\nexport interface SolidRdfSparqlMetricsSnapshot {\n primaryCount: number;\n fallbackCount: number;\n totalCount: number;\n fallbackRate: number;\n operationCounts: SolidRdfSparqlOperationCount[];\n lastPrimary?: SolidRdfSparqlPrimaryMetric;\n lastFallback?: SolidRdfSparqlFallbackMetric;\n}\n\nexport interface SolidRdfSparqlFallbackBudget {\n maxFallbackRate?: number;\n maxFallbackCount?: number;\n operations?: SolidRdfSparqlOperation[];\n}\n\ntype BindingsStream = AsyncIterator<Bindings> & {\n metadata?: () => Promise<{ variables: import('@rdfjs/types').Variable[] }>;\n};\n\ninterface MutableOperationCount {\n primaryCount: number;\n fallbackCount: number;\n primaryDurationMs: number;\n fallbackDurationMs: number;\n}\n\nconst rdfDataFactory = new RdfDataFactory();\n\nexport class SolidRdfSparqlEngine implements SparqlEngine {\n private readonly adapter = new RdfSparqlAdapter();\n private readonly bindingsFactory = new (BindingsFactory as any)(rdfDataFactory);\n private readonly rdfEngine: SolidRdfEngine;\n private readonly fallback: SparqlEngine;\n private readonly shadowStore?: ShadowRdfQuintStore;\n private readonly enablePrimary: boolean;\n private readonly onFallback?: (reason: SolidRdfSparqlFallback) => void;\n private readonly operationCounts = new Map<SolidRdfSparqlOperation, MutableOperationCount>();\n private lastPrimary?: SolidRdfSparqlPrimaryMetric;\n private lastFallback?: SolidRdfSparqlFallbackMetric;\n\n public constructor(\n rdfEngine: SolidRdfEngine,\n fallback: SparqlEngine,\n shadowStore?: ShadowRdfQuintStore,\n enablePrimary = true,\n onFallback?: (reason: SolidRdfSparqlFallback) => void,\n ) {\n this.rdfEngine = rdfEngine;\n this.fallback = fallback;\n this.shadowStore = shadowStore;\n this.enablePrimary = enablePrimary;\n this.onFallback = onFallback;\n }\n\n public async queryBindings(query: string, basePath: string): Promise<BindingsStream> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('queryBindings', 'primary disabled', () => this.fallback.queryBindings(query, basePath));\n }\n\n const start = Date.now();\n try {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType !== 'SELECT') {\n return this.fallbackWith('queryBindings', `compiled ${compiled.queryType} cannot produce bindings`, () => this.fallback.queryBindings(query, basePath));\n }\n const result = await this.rdfEngine.query(compiled.query);\n this.recordPrimary('queryBindings', start, result);\n return this.bindingsStream(result, compiled.variables);\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('queryBindings', fallbackReason(error), () => this.fallback.queryBindings(query, basePath));\n }\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('queryBoolean', 'primary disabled', () => this.fallback.queryBoolean(query, basePath));\n }\n\n const start = Date.now();\n try {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType !== 'ASK') {\n return this.fallbackWith('queryBoolean', `compiled ${compiled.queryType} cannot produce boolean`, () => this.fallback.queryBoolean(query, basePath));\n }\n const result = await this.rdfEngine.query(compiled.query);\n this.recordPrimary('queryBoolean', start, result);\n return result.bindings.length > 0;\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('queryBoolean', fallbackReason(error), () => this.fallback.queryBoolean(query, basePath));\n }\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('queryQuads', 'primary disabled', () => this.fallback.queryQuads(query, basePath));\n }\n\n const start = Date.now();\n try {\n const quads = this.executeQuadsPrimary(query, basePath, 'queryQuads', start);\n return new ArrayIterator(quads);\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('queryQuads', fallbackReason(error), () => this.fallback.queryQuads(query, basePath));\n }\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('queryVoid', 'primary disabled', () => this.fallback.queryVoid(query, basePath));\n }\n\n const start = Date.now();\n try {\n const delta = this.adapter.compileUpdateDelta(query, basePath);\n let deletedRows = 0;\n let computedDeletes = 0;\n let computedInserts = 0;\n for (const operation of delta.operations) {\n if (operation.type === 'delete') {\n for (const quad of operation.quads) {\n deletedRows += this.rdfEngine.delete({\n graph: quad.graph,\n subject: quad.subject,\n predicate: quad.predicate,\n object: quad.object,\n });\n }\n } else if (operation.type === 'insert') {\n this.rdfEngine.put(operation.quads);\n } else if (operation.type === 'insertDeleteWhere') {\n const result = this.rdfEngine.query(operation.query);\n const deletes = this.adapter.materializeDeleteWhere(operation.deletes, result.bindings);\n const inserts = this.adapter.materializeDeleteWhere(operation.inserts, result.bindings);\n computedDeletes += deletes.length;\n computedInserts += inserts.length;\n for (const quad of deletes) {\n deletedRows += this.rdfEngine.delete({\n graph: quad.graph,\n subject: quad.subject,\n predicate: quad.predicate,\n object: quad.object,\n });\n }\n this.rdfEngine.put(inserts);\n } else if (operation.type === 'insertWhere') {\n const result = this.rdfEngine.query(operation.query);\n const inserts = this.adapter.materializeDeleteWhere(operation.inserts, result.bindings);\n computedInserts += inserts.length;\n this.rdfEngine.put(inserts);\n } else {\n const result = this.rdfEngine.query(operation.query);\n const quads = this.adapter.materializeDeleteWhere(operation.template, result.bindings);\n computedDeletes += quads.length;\n for (const quad of quads) {\n deletedRows += this.rdfEngine.delete({\n graph: quad.graph,\n subject: quad.subject,\n predicate: quad.predicate,\n object: quad.object,\n });\n }\n }\n }\n this.recordPrimary('queryVoid', start, {\n bindings: [],\n metrics: {\n engine: 'solid-rdf',\n plan: ['UpdateDelta', `delete:${delta.deletes.length + computedDeletes}`, `deletedRows:${deletedRows}`, `insert:${delta.inserts.length + computedInserts}`],\n scannedRows: delta.deletes.length + computedDeletes + delta.inserts.length + computedInserts,\n joinedRows: 0,\n returnedRows: 0,\n durationMs: Date.now() - start,\n indexChoices: ['update-delta'],\n filtersApplied: 0,\n filtersPushedDown: 0,\n },\n });\n return undefined;\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('queryVoid', fallbackReason(error), () => this.fallback.queryVoid(query, basePath));\n }\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('constructGraph', 'primary disabled', () => this.fallback.constructGraph(graph, basePath));\n }\n if (!graph.startsWith(basePath)) {\n return new ArrayIterator([] as Quad[]);\n }\n\n const start = Date.now();\n try {\n const quads = this.executeConstructPrimary(`\n CONSTRUCT { ?s ?p ?o }\n WHERE { GRAPH <${escapeIri(graph)}> { ?s ?p ?o } }\n `, basePath, 'constructGraph', start);\n return new ArrayIterator(quads);\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('constructGraph', fallbackReason(error), () => this.fallback.constructGraph(graph, basePath));\n }\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('listGraphs', 'primary disabled', () => this.fallback.listGraphs(basePath));\n }\n\n const start = Date.now();\n try {\n const result = this.executeSelectPrimary(`\n SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }\n `, basePath, 'listGraphs', start);\n const graphs = new Set<string>();\n for (const binding of result.bindings) {\n const graph = binding.g;\n if (graph?.termType === 'NamedNode') {\n graphs.add(graph.value);\n }\n }\n return graphs;\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('listGraphs', fallbackReason(error), () => this.fallback.listGraphs(basePath));\n }\n }\n\n public async close(): Promise<void> {\n await this.rdfEngine.close();\n await this.fallback.close();\n }\n\n public getMetrics(): SolidRdfSparqlMetricsSnapshot {\n const operationCounts = [...this.operationCounts.entries()]\n .map(([ operation, counts ]) => operationCountSnapshot(operation, counts))\n .sort((left, right) => left.operation.localeCompare(right.operation));\n const primaryCount = operationCounts.reduce((sum, counts) => sum + counts.primaryCount, 0);\n const fallbackCount = operationCounts.reduce((sum, counts) => sum + counts.fallbackCount, 0);\n const totalCount = primaryCount + fallbackCount;\n return {\n primaryCount,\n fallbackCount,\n totalCount,\n fallbackRate: ratio(fallbackCount, totalCount),\n operationCounts,\n lastPrimary: this.lastPrimary,\n lastFallback: this.lastFallback,\n };\n }\n\n public assertFallbackBudget(budget: SolidRdfSparqlFallbackBudget = {}): void {\n const snapshot = this.getMetrics();\n const maxFallbackRate = budget.maxFallbackRate ?? 0;\n const maxFallbackCount = budget.maxFallbackCount ?? 0;\n const operationSet = budget.operations ? new Set(budget.operations) : undefined;\n const counts = operationSet\n ? snapshot.operationCounts.filter((count) => operationSet.has(count.operation))\n : snapshot.operationCounts;\n const primaryCount = counts.reduce((sum, count) => sum + count.primaryCount, 0);\n const fallbackCount = counts.reduce((sum, count) => sum + count.fallbackCount, 0);\n const totalCount = primaryCount + fallbackCount;\n const fallbackRate = ratio(fallbackCount, totalCount);\n if (fallbackCount <= maxFallbackCount && fallbackRate <= maxFallbackRate) {\n return;\n }\n const scope = operationSet ? ` for ${[...operationSet].join(',')}` : '';\n const reason = snapshot.lastFallback ? `; last fallback ${snapshot.lastFallback.operation}: ${snapshot.lastFallback.reason}` : '';\n throw new Error(`SolidRdfSparql fallback budget exceeded${scope}: ${fallbackCount}/${totalCount} (${fallbackRate}) > count ${maxFallbackCount}, rate ${maxFallbackRate}${reason}`);\n }\n\n public resetMetrics(): void {\n this.operationCounts.clear();\n this.lastPrimary = undefined;\n this.lastFallback = undefined;\n }\n\n private bindingsStream(result: RdfLocalQueryResult, variables: string[]): BindingsStream {\n const projectedVariables = variables.length > 0\n ? variables\n : inferVariables(result.bindings);\n const rows = result.bindings.map((binding) => this.bindings(binding, projectedVariables));\n const iterator = new ArrayIterator(rows) as BindingsStream;\n iterator.metadata = async () => ({\n variables: projectedVariables.map((variableName) => rdfDataFactory.variable(variableName) as import('@rdfjs/types').Variable),\n });\n return iterator;\n }\n\n private bindings(binding: RdfBindingRow, variables: string[]): Bindings {\n const entries: [import('@rdfjs/types').Variable, import('@rdfjs/types').Term][] = variables\n .map((variableName) => {\n const term = binding[variableName];\n return term ? [rdfDataFactory.variable(variableName), term] : null;\n })\n .filter((entry): entry is [import('@rdfjs/types').Variable, import('@rdfjs/types').Term] => entry !== null);\n return this.bindingsFactory.bindings(entries);\n }\n\n private async fallbackWith<T>(\n operation: SolidRdfSparqlOperation,\n reason: string,\n run: () => Promise<T>,\n ): Promise<T> {\n this.onFallback?.({ operation, reason });\n const start = Date.now();\n try {\n return await run();\n } finally {\n this.recordFallback(operation, reason, Date.now() - start);\n }\n }\n\n private async ensureReady(): Promise<void> {\n if (this.shadowStore) {\n await this.shadowStore.open();\n }\n }\n\n private executeSelectPrimary(\n query: string,\n basePath: string,\n operation: SolidRdfSparqlOperation,\n start: number,\n ): RdfLocalQueryResult {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType !== 'SELECT') {\n throw new UnsupportedSparqlQueryError(`compiled ${compiled.queryType} cannot produce bindings`);\n }\n const result = this.rdfEngine.query(compiled.query);\n this.recordPrimary(operation, start, result);\n return result;\n }\n\n private executeConstructPrimary(\n query: string,\n basePath: string,\n operation: SolidRdfSparqlOperation,\n start: number,\n ): Quad[] {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType !== 'CONSTRUCT' || !compiled.constructTemplate) {\n throw new UnsupportedSparqlQueryError(`compiled ${compiled.queryType} cannot produce quads`);\n }\n const result = this.rdfEngine.query(compiled.query);\n const quads = this.adapter.materializeConstruct(compiled.constructTemplate, result.bindings, rdfDataFactory.defaultGraph() as Term);\n this.recordPrimary(operation, start, {\n ...result,\n bindings: [],\n metrics: {\n ...result.metrics,\n returnedRows: quads.length,\n plan: [...result.metrics.plan, 'Construct'],\n },\n });\n return quads;\n }\n\n private executeQuadsPrimary(\n query: string,\n basePath: string,\n operation: SolidRdfSparqlOperation,\n start: number,\n ): Quad[] {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType === 'CONSTRUCT' && compiled.constructTemplate) {\n const result = this.rdfEngine.query(compiled.query);\n const quads = this.adapter.materializeConstruct(compiled.constructTemplate, result.bindings, rdfDataFactory.defaultGraph() as Term);\n this.recordPrimary(operation, start, {\n ...result,\n bindings: [],\n metrics: {\n ...result.metrics,\n returnedRows: quads.length,\n plan: [...result.metrics.plan, 'Construct'],\n },\n });\n return quads;\n }\n if (compiled.queryType === 'DESCRIBE' && compiled.describeTargets) {\n return this.executeDescribePrimary(compiled.query, compiled.describeTargets, basePath, operation, start);\n }\n throw new UnsupportedSparqlQueryError(`compiled ${compiled.queryType} cannot produce quads`);\n }\n\n private executeDescribePrimary(\n query: import('./types').RdfLocalQuery,\n targets: RdfQueryTermPattern[],\n basePath: string,\n operation: SolidRdfSparqlOperation,\n start: number,\n ): Quad[] {\n const seed = this.rdfEngine.query(query);\n const quads: Quad[] = [];\n const seen = new Set<string>();\n\n for (const target of targets) {\n for (const binding of seed.bindings) {\n const subject = resolveQueryTerm(target, binding);\n if (!subject || subject.termType !== 'NamedNode') {\n continue;\n }\n const describe = this.rdfEngine.query({\n patterns: [\n {\n subject,\n predicate: { variable: 'p' },\n object: { variable: 'o' },\n graph: { $startsWith: basePath },\n },\n ],\n select: ['p', 'o'],\n });\n for (const row of describe.bindings) {\n const predicate = row.p;\n const object = row.o;\n if (predicate?.termType !== 'NamedNode' || !isQuadObjectTerm(object)) {\n continue;\n }\n const quad = rdfDataFactory.quad(subject, predicate, object, rdfDataFactory.defaultGraph() as DefaultGraph) as Quad;\n const key = [quad.subject, quad.predicate, quad.object, quad.graph].map((term) => termToId(term as any)).join('\\u001f');\n if (!seen.has(key)) {\n seen.add(key);\n quads.push(quad);\n }\n }\n }\n }\n\n this.recordPrimary(operation, start, {\n bindings: [],\n metrics: {\n ...seed.metrics,\n returnedRows: quads.length,\n plan: [...seed.metrics.plan, 'Describe'],\n },\n });\n return quads;\n }\n\n private recordPrimary(\n operation: SolidRdfSparqlOperation,\n start: number,\n result: RdfLocalQueryResult,\n ): void {\n const durationMs = Date.now() - start;\n const counts = this.countsFor(operation);\n counts.primaryCount += 1;\n counts.primaryDurationMs += durationMs;\n this.lastPrimary = {\n operation,\n durationMs,\n scannedRows: result.metrics.scannedRows,\n returnedRows: result.metrics.returnedRows,\n plan: result.metrics.plan,\n indexChoices: result.metrics.indexChoices,\n };\n }\n\n private recordFallback(operation: SolidRdfSparqlOperation, reason: string, durationMs: number): void {\n const counts = this.countsFor(operation);\n counts.fallbackCount += 1;\n counts.fallbackDurationMs += durationMs;\n this.lastFallback = {\n operation,\n reason,\n durationMs,\n };\n }\n\n private countsFor(operation: SolidRdfSparqlOperation): MutableOperationCount {\n const existing = this.operationCounts.get(operation);\n if (existing) {\n return existing;\n }\n const created = {\n primaryCount: 0,\n fallbackCount: 0,\n primaryDurationMs: 0,\n fallbackDurationMs: 0,\n };\n this.operationCounts.set(operation, created);\n return created;\n }\n\n}\n\nfunction inferVariables(bindings: RdfBindingRow[]): string[] {\n const names = new Set<string>();\n for (const binding of bindings) {\n for (const name of Object.keys(binding)) {\n names.add(name);\n }\n }\n return [...names];\n}\n\nfunction resolveQueryTerm(term: RdfQueryTermPattern, binding: RdfBindingRow): Term | undefined {\n if (term && typeof term === 'object' && 'variable' in term) {\n return binding[term.variable];\n }\n return term as Term;\n}\n\nfunction isQuadObjectTerm(term: Term | undefined): term is Quad_Object {\n return Boolean(\n term\n && term.termType !== 'Variable'\n && term.termType !== 'DefaultGraph'\n && term.termType !== 'Quad',\n );\n}\n\nfunction fallbackReason(error: unknown): string {\n if (error instanceof UnsupportedSparqlQueryError) {\n return error.message;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return String(error);\n}\n\nfunction operationCountSnapshot(\n operation: SolidRdfSparqlOperation,\n counts: MutableOperationCount,\n): SolidRdfSparqlOperationCount {\n const totalCount = counts.primaryCount + counts.fallbackCount;\n return {\n operation,\n primaryCount: counts.primaryCount,\n fallbackCount: counts.fallbackCount,\n totalCount,\n fallbackRate: ratio(counts.fallbackCount, totalCount),\n primaryDurationMs: counts.primaryDurationMs,\n fallbackDurationMs: counts.fallbackDurationMs,\n };\n}\n\nfunction ratio(numerator: number, denominator: number): number {\n return denominator === 0 ? 0 : numerator / denominator;\n}\n\nfunction escapeIri(value: string): string {\n return value.replace(/[<>\"{}|^`\\\\]/g, (char) => encodeURIComponent(char));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidRdfSparqlEngine.js","sourceRoot":"","sources":["../../../src/storage/rdf/SolidRdfSparqlEngine.ts"],"names":[],"mappings":"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","sourcesContent":["import { ArrayIterator } from 'asynciterator';\nimport type { AsyncIterator } from 'asynciterator';\nimport type { DefaultGraph, Quad, Quad_Object, Term, Variable } from '@rdfjs/types';\nimport { DataFactory as RdfDataFactory } from 'rdf-data-factory';\nimport { termToId } from 'n3';\nimport type { SparqlEngine } from '../sparql/SubgraphQueryEngine';\nimport type { QuintPattern } from '../quint/types';\nimport { DisabledSparqlFeatureError, RdfSparqlAdapter, UnsupportedSparqlQueryError } from './RdfSparqlAdapter';\nimport type { ShadowRdfQuintStore } from './ShadowRdfQuintStore';\nimport type { SolidRdfEngine } from './SolidRdfEngine';\nimport type { RdfBindingRow, RdfLocalQueryResult, RdfQueryTermPattern } from './types';\n\nexport interface SolidRdfSparqlEngineOptions {\n rdfEngine: SolidRdfEngine;\n fallback?: SparqlEngine;\n shadowStore?: ShadowRdfQuintStore;\n enablePrimary?: boolean;\n onFallback?: (reason: SolidRdfSparqlFallback) => void;\n}\n\nexport interface SolidRdfSparqlFallback {\n operation: 'queryBindings' | 'queryBoolean' | 'queryQuads' | 'queryVoid' | 'constructGraph' | 'listGraphs';\n reason: string;\n}\n\nexport type SolidRdfSparqlOperation = SolidRdfSparqlFallback['operation'];\n\nexport interface SolidRdfSparqlOperationCount {\n operation: SolidRdfSparqlOperation;\n primaryCount: number;\n fallbackCount: number;\n totalCount: number;\n fallbackRate: number;\n primaryDurationMs: number;\n fallbackDurationMs: number;\n}\n\nexport interface SolidRdfSparqlPrimaryMetric {\n operation: SolidRdfSparqlOperation;\n durationMs: number;\n scannedRows: number;\n returnedRows: number;\n plan: string[];\n indexChoices: string[];\n}\n\nexport interface SolidRdfSparqlFallbackMetric extends SolidRdfSparqlFallback {\n durationMs: number;\n}\n\nexport interface SolidRdfSparqlMetricsSnapshot {\n primaryCount: number;\n fallbackCount: number;\n totalCount: number;\n fallbackRate: number;\n operationCounts: SolidRdfSparqlOperationCount[];\n lastPrimary?: SolidRdfSparqlPrimaryMetric;\n lastFallback?: SolidRdfSparqlFallbackMetric;\n}\n\nexport interface SolidRdfSparqlFallbackBudget {\n maxFallbackRate?: number;\n maxFallbackCount?: number;\n operations?: SolidRdfSparqlOperation[];\n}\n\ntype BindingsStream = AsyncIterator<RdfBindings> & {\n metadata?: () => Promise<{ variables: import('@rdfjs/types').Variable[] }>;\n};\n\ninterface MutableOperationCount {\n primaryCount: number;\n fallbackCount: number;\n primaryDurationMs: number;\n fallbackDurationMs: number;\n}\n\nconst rdfDataFactory = new RdfDataFactory();\n\nexport class SolidRdfSparqlEngine implements SparqlEngine {\n private readonly adapter = new RdfSparqlAdapter();\n private readonly rdfEngine: SolidRdfEngine;\n private readonly fallback?: SparqlEngine;\n private readonly shadowStore?: ShadowRdfQuintStore;\n private readonly enablePrimary: boolean;\n private readonly onFallback?: (reason: SolidRdfSparqlFallback) => void;\n private readonly operationCounts = new Map<SolidRdfSparqlOperation, MutableOperationCount>();\n private lastPrimary?: SolidRdfSparqlPrimaryMetric;\n private lastFallback?: SolidRdfSparqlFallbackMetric;\n\n public constructor(\n rdfEngine: SolidRdfEngine,\n fallback?: SparqlEngine,\n shadowStore?: ShadowRdfQuintStore,\n enablePrimary = true,\n onFallback?: (reason: SolidRdfSparqlFallback) => void,\n ) {\n this.rdfEngine = rdfEngine;\n this.fallback = fallback;\n this.shadowStore = shadowStore;\n this.enablePrimary = enablePrimary;\n this.onFallback = onFallback;\n }\n\n public async queryBindings(query: string, basePath: string): Promise<BindingsStream> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('queryBindings', 'primary disabled', (fallback) => fallback.queryBindings(query, basePath));\n }\n\n const start = Date.now();\n try {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType !== 'SELECT') {\n return this.fallbackWith('queryBindings', `compiled ${compiled.queryType} cannot produce bindings`, (fallback) => fallback.queryBindings(query, basePath));\n }\n const result = await this.rdfEngine.query(compiled.query);\n this.recordPrimary('queryBindings', start, result);\n return this.bindingsStream(result, compiled.variables);\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('queryBindings', fallbackReason(error), (fallback) => fallback.queryBindings(query, basePath));\n }\n }\n\n public async queryBoolean(query: string, basePath: string): Promise<boolean> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('queryBoolean', 'primary disabled', (fallback) => fallback.queryBoolean(query, basePath));\n }\n\n const start = Date.now();\n try {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType !== 'ASK') {\n return this.fallbackWith('queryBoolean', `compiled ${compiled.queryType} cannot produce boolean`, (fallback) => fallback.queryBoolean(query, basePath));\n }\n const result = await this.rdfEngine.query(compiled.query);\n this.recordPrimary('queryBoolean', start, result);\n return result.bindings.length > 0;\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('queryBoolean', fallbackReason(error), (fallback) => fallback.queryBoolean(query, basePath));\n }\n }\n\n public async queryQuads(query: string, basePath: string): Promise<any> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('queryQuads', 'primary disabled', (fallback) => fallback.queryQuads(query, basePath));\n }\n\n const start = Date.now();\n try {\n const quads = this.executeQuadsPrimary(query, basePath, 'queryQuads', start);\n return new ArrayIterator(quads);\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('queryQuads', fallbackReason(error), (fallback) => fallback.queryQuads(query, basePath));\n }\n }\n\n public async queryVoid(query: string, basePath: string): Promise<void> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('queryVoid', 'primary disabled', (fallback) => fallback.queryVoid(query, basePath));\n }\n\n const start = Date.now();\n try {\n const delta = this.adapter.compileUpdateDelta(query, basePath, {\n defaultGraph: implicitUpdateDefaultGraph(basePath),\n });\n let deletedRows = 0;\n let computedDeletes = 0;\n let computedInserts = 0;\n for (const operation of delta.operations) {\n if (operation.type === 'delete') {\n deletedRows += this.rdfEngine.applyDelta(operation.quads.map(quadToPattern), []).deletedRows;\n } else if (operation.type === 'insert') {\n this.rdfEngine.applyDelta([], operation.quads);\n } else if (operation.type === 'insertDeleteWhere') {\n const result = this.rdfEngine.query(operation.query);\n const deletes = this.adapter.materializeDeleteWhere(operation.deletes, result.bindings);\n const inserts = this.adapter.materializeDeleteWhere(operation.inserts, result.bindings);\n computedDeletes += deletes.length;\n computedInserts += inserts.length;\n deletedRows += this.rdfEngine.applyDelta(deletes.map(quadToPattern), inserts).deletedRows;\n } else if (operation.type === 'insertWhere') {\n const result = this.rdfEngine.query(operation.query);\n const inserts = this.adapter.materializeDeleteWhere(operation.inserts, result.bindings);\n computedInserts += inserts.length;\n this.rdfEngine.applyDelta([], inserts);\n } else {\n const result = this.rdfEngine.query(operation.query);\n const quads = this.adapter.materializeDeleteWhere(operation.template, result.bindings);\n computedDeletes += quads.length;\n deletedRows += this.rdfEngine.applyDelta(quads.map(quadToPattern), []).deletedRows;\n }\n }\n this.recordPrimary('queryVoid', start, {\n bindings: [],\n metrics: {\n engine: 'solid-rdf',\n plan: ['UpdateDelta', `delete:${delta.deletes.length + computedDeletes}`, `deletedRows:${deletedRows}`, `insert:${delta.inserts.length + computedInserts}`],\n scannedRows: delta.deletes.length + computedDeletes + delta.inserts.length + computedInserts,\n joinedRows: 0,\n returnedRows: 0,\n durationMs: Date.now() - start,\n indexChoices: ['update-delta'],\n filtersApplied: 0,\n filtersPushedDown: 0,\n },\n });\n return undefined;\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('queryVoid', fallbackReason(error), (fallback) => fallback.queryVoid(query, basePath));\n }\n }\n\n public async constructGraph(graph: string, basePath: string): Promise<AsyncIterator<Quad>> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('constructGraph', 'primary disabled', (fallback) => fallback.constructGraph(graph, basePath));\n }\n if (!graph.startsWith(basePath)) {\n return new ArrayIterator([] as Quad[]);\n }\n\n const start = Date.now();\n try {\n const quads = this.executeConstructPrimary(`\n CONSTRUCT { ?s ?p ?o }\n WHERE { GRAPH <${escapeIri(graph)}> { ?s ?p ?o } }\n `, basePath, 'constructGraph', start);\n return new ArrayIterator(quads);\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('constructGraph', fallbackReason(error), (fallback) => fallback.constructGraph(graph, basePath));\n }\n }\n\n public async listGraphs(basePath: string): Promise<Set<string>> {\n await this.ensureReady();\n if (!this.enablePrimary) {\n return this.fallbackWith('listGraphs', 'primary disabled', (fallback) => fallback.listGraphs(basePath));\n }\n\n const start = Date.now();\n try {\n const result = this.executeSelectPrimary(`\n SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }\n `, basePath, 'listGraphs', start);\n const graphs = new Set<string>();\n for (const binding of result.bindings) {\n const graph = binding.g;\n if (graph?.termType === 'NamedNode') {\n graphs.add(graph.value);\n }\n }\n return graphs;\n } catch (error) {\n if (error instanceof DisabledSparqlFeatureError) {\n throw error;\n }\n return this.fallbackWith('listGraphs', fallbackReason(error), (fallback) => fallback.listGraphs(basePath));\n }\n }\n\n public async close(): Promise<void> {\n await this.rdfEngine.close();\n await this.fallback?.close();\n }\n\n public getMetrics(): SolidRdfSparqlMetricsSnapshot {\n const operationCounts = [...this.operationCounts.entries()]\n .map(([ operation, counts ]) => operationCountSnapshot(operation, counts))\n .sort((left, right) => left.operation.localeCompare(right.operation));\n const primaryCount = operationCounts.reduce((sum, counts) => sum + counts.primaryCount, 0);\n const fallbackCount = operationCounts.reduce((sum, counts) => sum + counts.fallbackCount, 0);\n const totalCount = primaryCount + fallbackCount;\n return {\n primaryCount,\n fallbackCount,\n totalCount,\n fallbackRate: ratio(fallbackCount, totalCount),\n operationCounts,\n lastPrimary: this.lastPrimary,\n lastFallback: this.lastFallback,\n };\n }\n\n public assertFallbackBudget(budget: SolidRdfSparqlFallbackBudget = {}): void {\n const snapshot = this.getMetrics();\n const maxFallbackRate = budget.maxFallbackRate ?? 0;\n const maxFallbackCount = budget.maxFallbackCount ?? 0;\n const operationSet = budget.operations ? new Set(budget.operations) : undefined;\n const counts = operationSet\n ? snapshot.operationCounts.filter((count) => operationSet.has(count.operation))\n : snapshot.operationCounts;\n const primaryCount = counts.reduce((sum, count) => sum + count.primaryCount, 0);\n const fallbackCount = counts.reduce((sum, count) => sum + count.fallbackCount, 0);\n const totalCount = primaryCount + fallbackCount;\n const fallbackRate = ratio(fallbackCount, totalCount);\n if (fallbackCount <= maxFallbackCount && fallbackRate <= maxFallbackRate) {\n return;\n }\n const scope = operationSet ? ` for ${[...operationSet].join(',')}` : '';\n const reason = snapshot.lastFallback ? `; last fallback ${snapshot.lastFallback.operation}: ${snapshot.lastFallback.reason}` : '';\n throw new Error(`SolidRdfSparql fallback budget exceeded${scope}: ${fallbackCount}/${totalCount} (${fallbackRate}) > count ${maxFallbackCount}, rate ${maxFallbackRate}${reason}`);\n }\n\n public resetMetrics(): void {\n this.operationCounts.clear();\n this.lastPrimary = undefined;\n this.lastFallback = undefined;\n }\n\n private bindingsStream(result: RdfLocalQueryResult, variables: string[]): BindingsStream {\n const projectedVariables = variables.length > 0\n ? variables\n : inferVariables(result.bindings);\n const rows = result.bindings.map((binding) => this.bindings(binding, projectedVariables));\n const iterator = new ArrayIterator(rows) as BindingsStream;\n iterator.metadata = async () => ({\n variables: projectedVariables.map((variableName) => rdfDataFactory.variable(variableName) as import('@rdfjs/types').Variable),\n });\n return iterator;\n }\n\n private bindings(binding: RdfBindingRow, variables: string[]): RdfBindings {\n const entries: [Variable, Term][] = variables\n .map((variableName) => {\n const term = binding[variableName];\n return term ? [rdfDataFactory.variable(variableName) as Variable, term] : null;\n })\n .filter((entry): entry is [Variable, Term] => entry !== null);\n return new RdfBindings(entries);\n }\n\n private async fallbackWith<T>(\n operation: SolidRdfSparqlOperation,\n reason: string,\n run: (fallback: SparqlEngine) => Promise<T>,\n ): Promise<T> {\n if (!this.fallback) {\n throw new UnsupportedSparqlQueryError(`No compatibility SPARQL fallback configured for ${operation}: ${reason}`);\n }\n this.onFallback?.({ operation, reason });\n const start = Date.now();\n try {\n return await run(this.fallback);\n } finally {\n this.recordFallback(operation, reason, Date.now() - start);\n }\n }\n\n private async ensureReady(): Promise<void> {\n if (this.shadowStore) {\n await this.shadowStore.open();\n }\n }\n\n private executeSelectPrimary(\n query: string,\n basePath: string,\n operation: SolidRdfSparqlOperation,\n start: number,\n ): RdfLocalQueryResult {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType !== 'SELECT') {\n throw new UnsupportedSparqlQueryError(`compiled ${compiled.queryType} cannot produce bindings`);\n }\n const result = this.rdfEngine.query(compiled.query);\n this.recordPrimary(operation, start, result);\n return result;\n }\n\n private executeConstructPrimary(\n query: string,\n basePath: string,\n operation: SolidRdfSparqlOperation,\n start: number,\n ): Quad[] {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType !== 'CONSTRUCT' || !compiled.constructTemplate) {\n throw new UnsupportedSparqlQueryError(`compiled ${compiled.queryType} cannot produce quads`);\n }\n const result = this.rdfEngine.query(compiled.query);\n const quads = this.adapter.materializeConstruct(compiled.constructTemplate, result.bindings, rdfDataFactory.defaultGraph() as Term);\n this.recordPrimary(operation, start, {\n ...result,\n bindings: [],\n metrics: {\n ...result.metrics,\n returnedRows: quads.length,\n plan: [...result.metrics.plan, 'Construct'],\n },\n });\n return quads;\n }\n\n private executeQuadsPrimary(\n query: string,\n basePath: string,\n operation: SolidRdfSparqlOperation,\n start: number,\n ): Quad[] {\n const compiled = this.adapter.compile(query, basePath);\n if (compiled.queryType === 'CONSTRUCT' && compiled.constructTemplate) {\n const result = this.rdfEngine.query(compiled.query);\n const quads = this.adapter.materializeConstruct(compiled.constructTemplate, result.bindings, rdfDataFactory.defaultGraph() as Term);\n this.recordPrimary(operation, start, {\n ...result,\n bindings: [],\n metrics: {\n ...result.metrics,\n returnedRows: quads.length,\n plan: [...result.metrics.plan, 'Construct'],\n },\n });\n return quads;\n }\n if (compiled.queryType === 'DESCRIBE' && compiled.describeTargets) {\n return this.executeDescribePrimary(compiled.query, compiled.describeTargets, basePath, operation, start);\n }\n throw new UnsupportedSparqlQueryError(`compiled ${compiled.queryType} cannot produce quads`);\n }\n\n private executeDescribePrimary(\n query: import('./types').RdfLocalQuery,\n targets: RdfQueryTermPattern[],\n basePath: string,\n operation: SolidRdfSparqlOperation,\n start: number,\n ): Quad[] {\n const seed = this.rdfEngine.query(query);\n const quads: Quad[] = [];\n const seen = new Set<string>();\n\n for (const target of targets) {\n for (const binding of seed.bindings) {\n const subject = resolveQueryTerm(target, binding);\n if (!subject || subject.termType !== 'NamedNode') {\n continue;\n }\n const describe = this.rdfEngine.query({\n patterns: [\n {\n subject,\n predicate: { variable: 'p' },\n object: { variable: 'o' },\n graph: { $startsWith: basePath },\n },\n ],\n select: ['p', 'o'],\n });\n for (const row of describe.bindings) {\n const predicate = row.p;\n const object = row.o;\n if (predicate?.termType !== 'NamedNode' || !isQuadObjectTerm(object)) {\n continue;\n }\n const quad = rdfDataFactory.quad(subject, predicate, object, rdfDataFactory.defaultGraph() as DefaultGraph) as Quad;\n const key = [quad.subject, quad.predicate, quad.object, quad.graph].map((term) => termToId(term as any)).join('\\u001f');\n if (!seen.has(key)) {\n seen.add(key);\n quads.push(quad);\n }\n }\n }\n }\n\n this.recordPrimary(operation, start, {\n bindings: [],\n metrics: {\n ...seed.metrics,\n returnedRows: quads.length,\n plan: [...seed.metrics.plan, 'Describe'],\n },\n });\n return quads;\n }\n\n private recordPrimary(\n operation: SolidRdfSparqlOperation,\n start: number,\n result: RdfLocalQueryResult,\n ): void {\n const durationMs = Date.now() - start;\n const counts = this.countsFor(operation);\n counts.primaryCount += 1;\n counts.primaryDurationMs += durationMs;\n this.lastPrimary = {\n operation,\n durationMs,\n scannedRows: result.metrics.scannedRows,\n returnedRows: result.metrics.returnedRows,\n plan: result.metrics.plan,\n indexChoices: result.metrics.indexChoices,\n };\n }\n\n private recordFallback(operation: SolidRdfSparqlOperation, reason: string, durationMs: number): void {\n const counts = this.countsFor(operation);\n counts.fallbackCount += 1;\n counts.fallbackDurationMs += durationMs;\n this.lastFallback = {\n operation,\n reason,\n durationMs,\n };\n }\n\n private countsFor(operation: SolidRdfSparqlOperation): MutableOperationCount {\n const existing = this.operationCounts.get(operation);\n if (existing) {\n return existing;\n }\n const created = {\n primaryCount: 0,\n fallbackCount: 0,\n primaryDurationMs: 0,\n fallbackDurationMs: 0,\n };\n this.operationCounts.set(operation, created);\n return created;\n }\n\n}\n\nclass RdfBindings extends Map<Variable, Term> {\n private readonly byName = new Map<string, Term>();\n\n public constructor(entries: [Variable, Term][]) {\n super(entries);\n for (const [ variable, term ] of entries) {\n this.byName.set(variable.value, term);\n }\n }\n\n public override get(key: string | Variable): Term | undefined {\n if (typeof key === 'string') {\n return this.byName.get(key);\n }\n return this.byName.get(key.value) ?? super.get(key);\n }\n\n public override has(key: string | Variable): boolean {\n if (typeof key === 'string') {\n return this.byName.has(key);\n }\n return this.byName.has(key.value) || super.has(key);\n }\n}\n\nfunction inferVariables(bindings: RdfBindingRow[]): string[] {\n const names = new Set<string>();\n for (const binding of bindings) {\n for (const name of Object.keys(binding)) {\n names.add(name);\n }\n }\n return [...names];\n}\n\nfunction resolveQueryTerm(term: RdfQueryTermPattern, binding: RdfBindingRow): Term | undefined {\n if (term && typeof term === 'object' && 'variable' in term) {\n return binding[term.variable];\n }\n return term as Term;\n}\n\nfunction isQuadObjectTerm(term: Term | undefined): term is Quad_Object {\n return Boolean(\n term\n && term.termType !== 'Variable'\n && term.termType !== 'DefaultGraph'\n && term.termType !== 'Quad',\n );\n}\n\nfunction fallbackReason(error: unknown): string {\n if (error instanceof UnsupportedSparqlQueryError) {\n return error.message;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return String(error);\n}\n\nfunction operationCountSnapshot(\n operation: SolidRdfSparqlOperation,\n counts: MutableOperationCount,\n): SolidRdfSparqlOperationCount {\n const totalCount = counts.primaryCount + counts.fallbackCount;\n return {\n operation,\n primaryCount: counts.primaryCount,\n fallbackCount: counts.fallbackCount,\n totalCount,\n fallbackRate: ratio(counts.fallbackCount, totalCount),\n primaryDurationMs: counts.primaryDurationMs,\n fallbackDurationMs: counts.fallbackDurationMs,\n };\n}\n\nfunction ratio(numerator: number, denominator: number): number {\n return denominator === 0 ? 0 : numerator / denominator;\n}\n\nfunction implicitUpdateDefaultGraph(basePath: string): string | undefined {\n return basePath.endsWith('/') ? undefined : basePath;\n}\n\nfunction quadToPattern(quad: Quad): QuintPattern {\n return {\n graph: quad.graph,\n subject: quad.subject,\n predicate: quad.predicate,\n object: quad.object,\n };\n}\n\nfunction escapeIri(value: string): string {\n return value.replace(/[<>\"{}|^`\\\\]/g, (char) => encodeURIComponent(char));\n}\n"]}
|
|
@@ -90,7 +90,15 @@
|
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
"@id": "undefineds:dist/storage/rdf/SolidRdfSparqlEngine.jsonld#SolidRdfSparqlEngine_fallback",
|
|
93
|
-
"range":
|
|
93
|
+
"range": {
|
|
94
|
+
"@type": "ParameterRangeUnion",
|
|
95
|
+
"parameterRangeElements": [
|
|
96
|
+
"undefineds:dist/storage/sparql/SubgraphQueryEngine.jsonld#SparqlEngine",
|
|
97
|
+
{
|
|
98
|
+
"@type": "ParameterRangeUndefined"
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}
|
|
94
102
|
},
|
|
95
103
|
{
|
|
96
104
|
"@id": "undefineds:dist/storage/rdf/SolidRdfSparqlEngine.jsonld#SolidRdfSparqlEngine_shadowStore",
|
|
@@ -110,10 +118,6 @@
|
|
|
110
118
|
"@id": "undefineds:dist/storage/rdf/SolidRdfSparqlEngine.jsonld#SolidRdfSparqlEngine__member_adapter",
|
|
111
119
|
"memberFieldName": "adapter"
|
|
112
120
|
},
|
|
113
|
-
{
|
|
114
|
-
"@id": "undefineds:dist/storage/rdf/SolidRdfSparqlEngine.jsonld#SolidRdfSparqlEngine__member_bindingsFactory",
|
|
115
|
-
"memberFieldName": "bindingsFactory"
|
|
116
|
-
},
|
|
117
121
|
{
|
|
118
122
|
"@id": "undefineds:dist/storage/rdf/SolidRdfSparqlEngine.jsonld#SolidRdfSparqlEngine__member_rdfEngine",
|
|
119
123
|
"memberFieldName": "rdfEngine"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { RdfTermDictionary } from './RdfTermDictionary';
|
|
2
2
|
export { RDF_NUMERIC_DATATYPES, isFiniteNumericLexical, isRdfNumericDatatype, isRdfNumericTerm, rdfNumericValue, } from './RdfTermSemantics';
|
|
3
3
|
export { RdfQuadIndex } from './RdfQuadIndex';
|
|
4
|
-
export {
|
|
4
|
+
export { Rdf3xIndex } from './Rdf3xIndex';
|
|
5
5
|
export { RdfTextIndex } from './RdfTextIndex';
|
|
6
6
|
export { RdfVectorIndex } from './RdfVectorIndex';
|
|
7
7
|
export { isLineAddressableRdf, isLineAddressableRdfContentType, isLineAddressableRdfPath, isRdfDocument, isRdfDocumentContentType, isRdfDocumentPath, isSafeRdfDocumentContentType, normalizeContentType, rdfContentTypeForPath, } from './RdfContentTypes';
|
|
@@ -12,4 +12,4 @@ export { SolidRdfEngine, type SolidRdfEngineOptions } from './SolidRdfEngine';
|
|
|
12
12
|
export { DisabledSparqlFeatureError, RdfSparqlAdapter, UnsupportedSparqlQueryError, type RdfSparqlCompileResult, type RdfSparqlDeleteOperation, type RdfSparqlDeleteWhereOperation, type RdfSparqlDeleteWhereTemplate, type RdfSparqlInsertOperation, type RdfSparqlUpdateDelta, type RdfSparqlUpdateDeltaOperation, } from './RdfSparqlAdapter';
|
|
13
13
|
export { SolidRdfSparqlEngine, type SolidRdfSparqlEngineOptions, type SolidRdfSparqlFallback, type SolidRdfSparqlFallbackMetric, type SolidRdfSparqlMetricsSnapshot, type SolidRdfSparqlOperation, type SolidRdfSparqlOperationCount, type SolidRdfSparqlPrimaryMetric, } from './SolidRdfSparqlEngine';
|
|
14
14
|
export { rdfModelsBenchmarkCases, rdfModelsBenchmarkCaseNames, rdfModelsLocalQueryBenchmarkCases, rdfModelsLocalQueryBenchmarkCaseNames, defaultSyntheticMessagesForRdfModelsScale, estimateRdfModelsSyntheticQuadCount, rdfModelsBenchmarkScaleSatisfied, rdfModelsBenchmarkSyntheticPodCount, rdfModelsBenchmarkScaleTargetQuads, runRdfModelsBenchmark, runRdfModelsRdf3xShadowBenchmark, runRdfModelsShadowBenchmark, RDF_MODELS_SYNTHETIC_MESSAGE_QUADS, type RdfBenchmarkScale, type RdfModelBenchmarkCase, type RdfModelLocalQueryBenchmarkCase, type RdfModelLocalQueryBenchmarkResult, type RdfModelBenchmarkReport, type RdfModelBenchmarkResult, type RdfModelBenchmarkRunOptions, type RdfModelShadowBenchmarkReport, type RdfModelRdf3xShadowBenchmarkReport, type RdfModelRdf3xShadowJoinBenchmarkResult, type RdfModelRdf3xShadowBenchmarkResult, type RdfModelShadowBenchmarkResult, type RdfModelShadowBenchmarkRunOptions, type RdfModelShadowBenchmarkSide, } from './models-benchmark';
|
|
15
|
-
export type { RdfIndexStats, Rdf3xCardinalityEstimate, Rdf3xJoinMetrics, Rdf3xJoinOptions, Rdf3xJoinScanResult, Rdf3xIndexMetrics, Rdf3xIndexStats, Rdf3xPairProjectionName, Rdf3xPatternKey, Rdf3xPermutationName, Rdf3xRebuildResult, Rdf3xTermKey, Rdf3xTermProjectionName,
|
|
15
|
+
export type { RdfEngineStorageStats, RdfDerivedIndexRefreshResult, RdfIndexStats, RdfDerivedIndexProfile, Rdf3xCardinalityEstimate, Rdf3xCountResult, Rdf3xJoinMetrics, Rdf3xJoinOptions, Rdf3xJoinScanResult, Rdf3xIndexMetrics, Rdf3xIndexStats, Rdf3xObjectOperatorPattern, Rdf3xObjectRangePattern, Rdf3xPairProjectionName, Rdf3xPatternKey, Rdf3xPermutationName, Rdf3xRebuildResult, Rdf3xTermKey, Rdf3xTermInPattern, Rdf3xTermMetadataPattern, Rdf3xTermNotInPattern, Rdf3xTermProjectionName, Rdf3xTermTypePatternValue, Rdf3xIndexOptions, Rdf3xTriplePattern, Rdf3xTripleScanOptions, Rdf3xTripleScanResult, Rdf3xShadowBindingDiff, Rdf3xShadowQuadDiff, Rdf3xShadowJoinResult, Rdf3xShadowScanResult, RdfIndexSpaceObject, RdfIndexMetrics, RdfIndexPutOptions, RdfBindingRow, RdfConstructTemplate, RdfQuadJoinOptions, RdfQuadJoinCountOptions, RdfQuadJoinOrder, RdfQuadJoinPattern, RdfQuadJoinScanResult, RdfLocalQuery, RdfQueryAggregate, RdfLocalQueryMetrics, RdfLocalQueryResult, RdfPatternQuery, RdfQuadIndexOptions, RdfQuadIndexScanResult, RdfQuadRow, RdfQueryOrder, RdfQueryPattern, RdfQueryPatternKey, RdfQueryTermPattern, RdfQueryVariable, RdfShadowBackfillOptions, RdfShadowBackfillResult, RdfShadowDiff, RdfShadowScanResult, RdfSourceInput, RdfSourceRow, RdfTextChunkInput, RdfTextChunkRow, RdfTextIndexOptions, RdfTextIndexStats, RdfTextSearchOptions, RdfTextSearchPattern, RdfTextSearchResult, RdfTextSourceInput, RdfTextTermDocumentFrequency, RdfVectorChunkInput, RdfVectorChunkRow, RdfVectorDistanceMetric, RdfVectorIndexOptions, RdfVectorIndexStats, RdfVectorModelDistribution, RdfVectorSearchOptions, RdfVectorSearchPattern, RdfVectorSearchResult, RdfVectorSourceInput, RdfTermKind, RdfTermLookup, RdfTermRow, RdfTermSelection, } from './types';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RDF_MODELS_SYNTHETIC_MESSAGE_QUADS = exports.runRdfModelsShadowBenchmark = exports.runRdfModelsRdf3xShadowBenchmark = exports.runRdfModelsBenchmark = exports.rdfModelsBenchmarkScaleTargetQuads = exports.rdfModelsBenchmarkSyntheticPodCount = exports.rdfModelsBenchmarkScaleSatisfied = exports.estimateRdfModelsSyntheticQuadCount = exports.defaultSyntheticMessagesForRdfModelsScale = exports.rdfModelsLocalQueryBenchmarkCaseNames = exports.rdfModelsLocalQueryBenchmarkCases = exports.rdfModelsBenchmarkCaseNames = exports.rdfModelsBenchmarkCases = exports.SolidRdfSparqlEngine = exports.UnsupportedSparqlQueryError = exports.RdfSparqlAdapter = exports.DisabledSparqlFeatureError = exports.SolidRdfEngine = exports.ShadowRdfQuintStore = exports.rdfVar = exports.RdfLocalQueryEngine = exports.diffQuads = exports.canonicalQuadKey = exports.RdfShadowComparator = exports.rdfContentTypeForPath = exports.normalizeContentType = exports.isSafeRdfDocumentContentType = exports.isRdfDocumentPath = exports.isRdfDocumentContentType = exports.isRdfDocument = exports.isLineAddressableRdfPath = exports.isLineAddressableRdfContentType = exports.isLineAddressableRdf = exports.RdfVectorIndex = exports.RdfTextIndex = exports.
|
|
3
|
+
exports.RDF_MODELS_SYNTHETIC_MESSAGE_QUADS = exports.runRdfModelsShadowBenchmark = exports.runRdfModelsRdf3xShadowBenchmark = exports.runRdfModelsBenchmark = exports.rdfModelsBenchmarkScaleTargetQuads = exports.rdfModelsBenchmarkSyntheticPodCount = exports.rdfModelsBenchmarkScaleSatisfied = exports.estimateRdfModelsSyntheticQuadCount = exports.defaultSyntheticMessagesForRdfModelsScale = exports.rdfModelsLocalQueryBenchmarkCaseNames = exports.rdfModelsLocalQueryBenchmarkCases = exports.rdfModelsBenchmarkCaseNames = exports.rdfModelsBenchmarkCases = exports.SolidRdfSparqlEngine = exports.UnsupportedSparqlQueryError = exports.RdfSparqlAdapter = exports.DisabledSparqlFeatureError = exports.SolidRdfEngine = exports.ShadowRdfQuintStore = exports.rdfVar = exports.RdfLocalQueryEngine = exports.diffQuads = exports.canonicalQuadKey = exports.RdfShadowComparator = exports.rdfContentTypeForPath = exports.normalizeContentType = exports.isSafeRdfDocumentContentType = exports.isRdfDocumentPath = exports.isRdfDocumentContentType = exports.isRdfDocument = exports.isLineAddressableRdfPath = exports.isLineAddressableRdfContentType = exports.isLineAddressableRdf = exports.RdfVectorIndex = exports.RdfTextIndex = exports.Rdf3xIndex = exports.RdfQuadIndex = exports.rdfNumericValue = exports.isRdfNumericTerm = exports.isRdfNumericDatatype = exports.isFiniteNumericLexical = exports.RDF_NUMERIC_DATATYPES = exports.RdfTermDictionary = void 0;
|
|
4
4
|
var RdfTermDictionary_1 = require("./RdfTermDictionary");
|
|
5
5
|
Object.defineProperty(exports, "RdfTermDictionary", { enumerable: true, get: function () { return RdfTermDictionary_1.RdfTermDictionary; } });
|
|
6
6
|
var RdfTermSemantics_1 = require("./RdfTermSemantics");
|
|
@@ -11,8 +11,8 @@ Object.defineProperty(exports, "isRdfNumericTerm", { enumerable: true, get: func
|
|
|
11
11
|
Object.defineProperty(exports, "rdfNumericValue", { enumerable: true, get: function () { return RdfTermSemantics_1.rdfNumericValue; } });
|
|
12
12
|
var RdfQuadIndex_1 = require("./RdfQuadIndex");
|
|
13
13
|
Object.defineProperty(exports, "RdfQuadIndex", { enumerable: true, get: function () { return RdfQuadIndex_1.RdfQuadIndex; } });
|
|
14
|
-
var
|
|
15
|
-
Object.defineProperty(exports, "
|
|
14
|
+
var Rdf3xIndex_1 = require("./Rdf3xIndex");
|
|
15
|
+
Object.defineProperty(exports, "Rdf3xIndex", { enumerable: true, get: function () { return Rdf3xIndex_1.Rdf3xIndex; } });
|
|
16
16
|
var RdfTextIndex_1 = require("./RdfTextIndex");
|
|
17
17
|
Object.defineProperty(exports, "RdfTextIndex", { enumerable: true, get: function () { return RdfTextIndex_1.RdfTextIndex; } });
|
|
18
18
|
var RdfVectorIndex_1 = require("./RdfVectorIndex");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/rdf/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,uDAM4B;AAL1B,yHAAA,qBAAqB,OAAA;AACrB,0HAAA,sBAAsB,OAAA;AACtB,wHAAA,oBAAoB,OAAA;AACpB,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AAEjB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/rdf/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,uDAM4B;AAL1B,yHAAA,qBAAqB,OAAA;AACrB,0HAAA,sBAAsB,OAAA;AACtB,wHAAA,oBAAoB,OAAA;AACpB,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AAEjB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,qDAU2B;AATzB,uHAAA,oBAAoB,OAAA;AACpB,kIAAA,+BAA+B,OAAA;AAC/B,2HAAA,wBAAwB,OAAA;AACxB,gHAAA,aAAa,OAAA;AACb,2HAAA,wBAAwB,OAAA;AACxB,oHAAA,iBAAiB,OAAA;AACjB,+HAAA,4BAA4B,OAAA;AAC5B,uHAAA,oBAAoB,OAAA;AACpB,wHAAA,qBAAqB,OAAA;AAEvB,6DAAyF;AAAhF,0HAAA,mBAAmB,OAAA;AAAE,uHAAA,gBAAgB,OAAA;AAAE,gHAAA,SAAS,OAAA;AACzD,6DAAgF;AAAvE,0HAAA,mBAAmB,OAAA;AAAE,6GAAA,QAAQ,OAAU;AAChD,6DAA6F;AAApF,0HAAA,mBAAmB,OAAA;AAC5B,mDAA8E;AAArE,gHAAA,cAAc,OAAA;AACvB,uDAW4B;AAV1B,8HAAA,0BAA0B,OAAA;AAC1B,oHAAA,gBAAgB,OAAA;AAChB,+HAAA,2BAA2B,OAAA;AAS7B,+DASgC;AAR9B,4HAAA,oBAAoB,OAAA;AAStB,uDA4B4B;AA3B1B,2HAAA,uBAAuB,OAAA;AACvB,+HAAA,2BAA2B,OAAA;AAC3B,qIAAA,iCAAiC,OAAA;AACjC,yIAAA,qCAAqC,OAAA;AACrC,6IAAA,yCAAyC,OAAA;AACzC,uIAAA,mCAAmC,OAAA;AACnC,oIAAA,gCAAgC,OAAA;AAChC,uIAAA,mCAAmC,OAAA;AACnC,sIAAA,kCAAkC,OAAA;AAClC,yHAAA,qBAAqB,OAAA;AACrB,oIAAA,gCAAgC,OAAA;AAChC,+HAAA,2BAA2B,OAAA;AAC3B,sIAAA,kCAAkC,OAAA","sourcesContent":["export { RdfTermDictionary } from './RdfTermDictionary';\nexport {\n RDF_NUMERIC_DATATYPES,\n isFiniteNumericLexical,\n isRdfNumericDatatype,\n isRdfNumericTerm,\n rdfNumericValue,\n} from './RdfTermSemantics';\nexport { RdfQuadIndex } from './RdfQuadIndex';\nexport { Rdf3xIndex } from './Rdf3xIndex';\nexport { RdfTextIndex } from './RdfTextIndex';\nexport { RdfVectorIndex } from './RdfVectorIndex';\nexport {\n isLineAddressableRdf,\n isLineAddressableRdfContentType,\n isLineAddressableRdfPath,\n isRdfDocument,\n isRdfDocumentContentType,\n isRdfDocumentPath,\n isSafeRdfDocumentContentType,\n normalizeContentType,\n rdfContentTypeForPath,\n} from './RdfContentTypes';\nexport { RdfShadowComparator, canonicalQuadKey, diffQuads } from './RdfShadowComparator';\nexport { RdfLocalQueryEngine, variable as rdfVar } from './RdfLocalQueryEngine';\nexport { ShadowRdfQuintStore, type ShadowRdfQuintStoreOptions } from './ShadowRdfQuintStore';\nexport { SolidRdfEngine, type SolidRdfEngineOptions } from './SolidRdfEngine';\nexport {\n DisabledSparqlFeatureError,\n RdfSparqlAdapter,\n UnsupportedSparqlQueryError,\n type RdfSparqlCompileResult,\n type RdfSparqlDeleteOperation,\n type RdfSparqlDeleteWhereOperation,\n type RdfSparqlDeleteWhereTemplate,\n type RdfSparqlInsertOperation,\n type RdfSparqlUpdateDelta,\n type RdfSparqlUpdateDeltaOperation,\n} from './RdfSparqlAdapter';\nexport {\n SolidRdfSparqlEngine,\n type SolidRdfSparqlEngineOptions,\n type SolidRdfSparqlFallback,\n type SolidRdfSparqlFallbackMetric,\n type SolidRdfSparqlMetricsSnapshot,\n type SolidRdfSparqlOperation,\n type SolidRdfSparqlOperationCount,\n type SolidRdfSparqlPrimaryMetric,\n} from './SolidRdfSparqlEngine';\nexport {\n rdfModelsBenchmarkCases,\n rdfModelsBenchmarkCaseNames,\n rdfModelsLocalQueryBenchmarkCases,\n rdfModelsLocalQueryBenchmarkCaseNames,\n defaultSyntheticMessagesForRdfModelsScale,\n estimateRdfModelsSyntheticQuadCount,\n rdfModelsBenchmarkScaleSatisfied,\n rdfModelsBenchmarkSyntheticPodCount,\n rdfModelsBenchmarkScaleTargetQuads,\n runRdfModelsBenchmark,\n runRdfModelsRdf3xShadowBenchmark,\n runRdfModelsShadowBenchmark,\n RDF_MODELS_SYNTHETIC_MESSAGE_QUADS,\n type RdfBenchmarkScale,\n type RdfModelBenchmarkCase,\n type RdfModelLocalQueryBenchmarkCase,\n type RdfModelLocalQueryBenchmarkResult,\n type RdfModelBenchmarkReport,\n type RdfModelBenchmarkResult,\n type RdfModelBenchmarkRunOptions,\n type RdfModelShadowBenchmarkReport,\n type RdfModelRdf3xShadowBenchmarkReport,\n type RdfModelRdf3xShadowJoinBenchmarkResult,\n type RdfModelRdf3xShadowBenchmarkResult,\n type RdfModelShadowBenchmarkResult,\n type RdfModelShadowBenchmarkRunOptions,\n type RdfModelShadowBenchmarkSide,\n} from './models-benchmark';\nexport type {\n RdfEngineStorageStats,\n RdfDerivedIndexRefreshResult,\n RdfIndexStats,\n RdfDerivedIndexProfile,\n Rdf3xCardinalityEstimate,\n Rdf3xCountResult,\n Rdf3xJoinMetrics,\n Rdf3xJoinOptions,\n Rdf3xJoinScanResult,\n Rdf3xIndexMetrics,\n Rdf3xIndexStats,\n Rdf3xObjectOperatorPattern,\n Rdf3xObjectRangePattern,\n Rdf3xPairProjectionName,\n Rdf3xPatternKey,\n Rdf3xPermutationName,\n Rdf3xRebuildResult,\n Rdf3xTermKey,\n Rdf3xTermInPattern,\n Rdf3xTermMetadataPattern,\n Rdf3xTermNotInPattern,\n Rdf3xTermProjectionName,\n Rdf3xTermTypePatternValue,\n Rdf3xIndexOptions,\n Rdf3xTriplePattern,\n Rdf3xTripleScanOptions,\n Rdf3xTripleScanResult,\n Rdf3xShadowBindingDiff,\n Rdf3xShadowQuadDiff,\n Rdf3xShadowJoinResult,\n Rdf3xShadowScanResult,\n RdfIndexSpaceObject,\n RdfIndexMetrics,\n RdfIndexPutOptions,\n RdfBindingRow,\n RdfConstructTemplate,\n RdfQuadJoinOptions,\n RdfQuadJoinCountOptions,\n RdfQuadJoinOrder,\n RdfQuadJoinPattern,\n RdfQuadJoinScanResult,\n RdfLocalQuery,\n RdfQueryAggregate,\n RdfLocalQueryMetrics,\n RdfLocalQueryResult,\n RdfPatternQuery,\n RdfQuadIndexOptions,\n RdfQuadIndexScanResult,\n RdfQuadRow,\n RdfQueryOrder,\n RdfQueryPattern,\n RdfQueryPatternKey,\n RdfQueryTermPattern,\n RdfQueryVariable,\n RdfShadowBackfillOptions,\n RdfShadowBackfillResult,\n RdfShadowDiff,\n RdfShadowScanResult,\n RdfSourceInput,\n RdfSourceRow,\n RdfTextChunkInput,\n RdfTextChunkRow,\n RdfTextIndexOptions,\n RdfTextIndexStats,\n RdfTextSearchOptions,\n RdfTextSearchPattern,\n RdfTextSearchResult,\n RdfTextSourceInput,\n RdfTextTermDocumentFrequency,\n RdfVectorChunkInput,\n RdfVectorChunkRow,\n RdfVectorDistanceMetric,\n RdfVectorIndexOptions,\n RdfVectorIndexStats,\n RdfVectorModelDistribution,\n RdfVectorSearchOptions,\n RdfVectorSearchPattern,\n RdfVectorSearchResult,\n RdfVectorSourceInput,\n RdfTermKind,\n RdfTermLookup,\n RdfTermRow,\n RdfTermSelection,\n} from './types';\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { QuintPattern, QueryOptions, QuintStore, StoreStats } from '../quint/types';
|
|
2
|
-
import type { Rdf3xJoinMetrics, Rdf3xIndexMetrics, Rdf3xIndexStats, RdfIndexMetrics, RdfIndexStats, RdfLocalQuery, RdfLocalQueryMetrics, RdfShadowDiff } from './types';
|
|
2
|
+
import type { Rdf3xJoinMetrics, Rdf3xIndexMetrics, Rdf3xIndexStats, RdfEngineStorageStats, RdfIndexMetrics, RdfIndexStats, RdfLocalQuery, RdfLocalQueryMetrics, RdfShadowDiff } from './types';
|
|
3
3
|
import type { SolidRdfEngine } from './SolidRdfEngine';
|
|
4
4
|
export type RdfBenchmarkScale = 'small' | 'medium' | 'large';
|
|
5
5
|
export declare const RDF_MODELS_SYNTHETIC_MESSAGE_QUADS = 4;
|
|
@@ -19,6 +19,7 @@ export interface RdfModelLocalQueryBenchmarkCase {
|
|
|
19
19
|
resource: string;
|
|
20
20
|
purpose: string;
|
|
21
21
|
minScale: RdfBenchmarkScale;
|
|
22
|
+
minReturnedRows?: number;
|
|
22
23
|
query: RdfLocalQuery;
|
|
23
24
|
expectedPlan: string[];
|
|
24
25
|
}
|
|
@@ -83,6 +84,7 @@ export interface RdfModelBenchmarkReport {
|
|
|
83
84
|
generatedAt: string;
|
|
84
85
|
planMatched: boolean;
|
|
85
86
|
failedPlanCases: string[];
|
|
87
|
+
storage: RdfEngineStorageStats;
|
|
86
88
|
cases: RdfModelBenchmarkResult[];
|
|
87
89
|
localQueryCases: RdfModelLocalQueryBenchmarkResult[];
|
|
88
90
|
}
|
|
@@ -167,6 +169,9 @@ export interface RdfModelRdf3xShadowBenchmarkResult {
|
|
|
167
169
|
pattern: JsonPattern;
|
|
168
170
|
options?: QueryOptions;
|
|
169
171
|
};
|
|
172
|
+
expectedPlan: string[];
|
|
173
|
+
planMatched: boolean;
|
|
174
|
+
missingPlan: string[];
|
|
170
175
|
supported: boolean;
|
|
171
176
|
unsupportedReason?: string;
|
|
172
177
|
matched: boolean;
|
|
@@ -197,6 +202,9 @@ export interface RdfModelRdf3xShadowJoinBenchmarkResult {
|
|
|
197
202
|
purpose: string;
|
|
198
203
|
minScale: RdfBenchmarkScale;
|
|
199
204
|
query: JsonPattern;
|
|
205
|
+
expectedPlan: string[];
|
|
206
|
+
planMatched: boolean;
|
|
207
|
+
missingPlan: string[];
|
|
200
208
|
supported: boolean;
|
|
201
209
|
unsupportedReason?: string;
|
|
202
210
|
matched: boolean;
|
|
@@ -230,10 +238,12 @@ export interface RdfModelRdf3xShadowBenchmarkReport {
|
|
|
230
238
|
generatedAt: string;
|
|
231
239
|
matched: boolean;
|
|
232
240
|
orderedMatched: boolean;
|
|
241
|
+
planMatched: boolean;
|
|
233
242
|
skippedCases: string[];
|
|
234
243
|
skippedJoinCases: string[];
|
|
235
244
|
failedCases: string[];
|
|
236
245
|
failedJoinCases: string[];
|
|
246
|
+
failedPlanCases: string[];
|
|
237
247
|
rebuild: {
|
|
238
248
|
scannedQuads: number;
|
|
239
249
|
uniqueTriples: number;
|
|
@@ -241,6 +251,7 @@ export interface RdfModelRdf3xShadowBenchmarkReport {
|
|
|
241
251
|
projectionRows: number;
|
|
242
252
|
durationMs: number;
|
|
243
253
|
};
|
|
254
|
+
storage: RdfEngineStorageStats;
|
|
244
255
|
cases: RdfModelRdf3xShadowBenchmarkResult[];
|
|
245
256
|
joinCases: RdfModelRdf3xShadowJoinBenchmarkResult[];
|
|
246
257
|
}
|