@undefineds.co/xpod 0.3.75 → 0.4.0-rc.140
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/bin/xpod.js +43 -8
- package/config/bun.json +45 -48
- package/config/cloud.json +13 -90
- package/config/components-ignore.json +0 -1
- package/config/local.json +111 -63
- package/config/resolver.json +4 -2
- package/config/terminal.json +4 -1
- package/config/xpod.base.json +16 -8
- package/config/xpod.json +51 -54
- package/dist/acceptance/PublicCloudSemanticConformance.d.ts +4 -0
- package/dist/acceptance/PublicCloudSemanticConformance.js +214 -0
- package/dist/acceptance/QleverSearchConformance.d.ts +39 -0
- package/dist/acceptance/QleverSearchConformance.js +686 -0
- package/dist/acceptance/QleverSemanticConformance.d.ts +3 -0
- package/dist/acceptance/QleverSemanticConformance.js +178 -0
- package/dist/acceptance/RdfSemanticConformance.d.ts +114 -0
- package/dist/acceptance/RdfSemanticConformance.js +307 -0
- package/dist/acceptance/run-installed-qlever-conformance.d.ts +12 -0
- package/dist/acceptance/run-installed-qlever-conformance.js +87 -0
- package/dist/acceptance/run-installed-rdf-conformance.d.ts +12 -0
- package/dist/acceptance/run-installed-rdf-conformance.js +88 -0
- package/dist/ai/service/EmbeddingProviderError.d.ts +7 -0
- package/dist/ai/service/EmbeddingProviderError.js +42 -0
- package/dist/api/ai-gateway/connect/index.js +5 -2
- package/dist/api/auth/AuthContext.d.ts +5 -0
- package/dist/api/auth/AuthContext.js +10 -0
- package/dist/api/container/common.js +20 -1
- package/dist/api/container/rdf.d.ts +1 -0
- package/dist/api/container/rdf.js +43 -4
- package/dist/api/container/types.d.ts +4 -0
- package/dist/api/runs/InngestRunExecutionBackend.d.ts +2 -2
- package/dist/api/runs/PiAgentRuntimeDriver.d.ts +2 -0
- package/dist/api/runs/PiAgentRuntimeDriver.js +1 -0
- package/dist/api/runs/RdfRunContextRetriever.d.ts +8 -0
- package/dist/api/runs/RdfRunContextRetriever.js +23 -1
- package/dist/api/runtime.js +20 -6
- package/dist/api/service/RdfSearchIndexingService.d.ts +37 -3
- package/dist/api/service/RdfSearchIndexingService.js +130 -18
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +8 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +102 -15
- package/dist/api/service/RdfSearchReconciliationWorker.d.ts +76 -0
- package/dist/api/service/RdfSearchReconciliationWorker.js +294 -0
- package/dist/api/tasks/InngestTaskScheduler.d.ts +4 -4
- package/dist/components/components.jsonld +9 -12
- package/dist/components/context.jsonld +227 -348
- package/dist/document/MarkdownRetrievalPointProjector.d.ts +33 -0
- package/dist/document/MarkdownRetrievalPointProjector.js +196 -0
- package/dist/document/MarkdownRetrievalPointProjector.jsonld +135 -0
- package/dist/document/ReaderMaterialization.d.ts +34 -0
- package/dist/document/ReaderMaterialization.js +3 -0
- package/dist/document/ReaderMaterialization.jsonld +151 -0
- package/dist/document/ReaderMaterializationRepository.d.ts +27 -0
- package/dist/document/ReaderMaterializationRepository.js +400 -0
- package/dist/document/ReaderMaterializationRepository.jsonld +84 -0
- package/dist/document/index.d.ts +3 -1
- package/dist/document/index.js +3 -1
- package/dist/http/SubgraphSparqlHttpHandler.js +34 -54
- package/dist/http/search/SearchHttpHandler.js +14 -12
- package/dist/http/terminal/TerminalHttpHandler.d.ts +3 -0
- package/dist/http/terminal/TerminalHttpHandler.js +1 -0
- package/dist/http/terminal/TerminalHttpHandler.jsonld +11 -0
- package/dist/identity/drizzle/DrizzleIndexedStorage.js +19 -39
- package/dist/identity/drizzle/db.d.ts +1 -0
- package/dist/identity/drizzle/db.js +35 -0
- package/dist/index.d.ts +9 -17
- package/dist/index.js +14 -22
- package/dist/provision/ProvisionPodCreator.d.ts +1 -1
- package/dist/provision/ProvisionPodCreator.js +4 -3
- package/dist/search/RdfSearchIntentSink.d.ts +17 -0
- package/dist/search/RdfSearchIntentSink.js +46 -0
- package/dist/search/RdfSearchIntentSink.jsonld +47 -0
- package/dist/search/RdfSearchReconciliationRepository.d.ts +81 -0
- package/dist/search/RdfSearchReconciliationRepository.js +771 -0
- package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.d.ts +15 -0
- package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.js +48 -0
- package/dist/solidfs/LocalRdfAuthorityRecoveryInitializer.jsonld +99 -0
- package/dist/solidfs/RdfIndexSolidFsSyncer.js +22 -4
- package/dist/solidfs/SolidFsSyncJournal.d.ts +7 -1
- package/dist/solidfs/SolidFsSyncJournal.js +20 -5
- package/dist/solidfs/SolidFsSyncJournal.jsonld +43 -0
- package/dist/solidfs/index.d.ts +1 -0
- package/dist/solidfs/index.js +1 -0
- package/dist/storage/SparqlUpdateResourceStore.js +3 -3
- package/dist/storage/accessors/MixDataAccessor.d.ts +21 -29
- package/dist/storage/accessors/MixDataAccessor.js +182 -399
- package/dist/storage/accessors/MixDataAccessor.jsonld +109 -87
- package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +12 -8
- package/dist/storage/accessors/SolidRdfDataAccessor.js +189 -59
- package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +14 -29
- package/dist/storage/rdf/LocalQleverNativeSparqlClient.d.ts +55 -0
- package/dist/storage/rdf/LocalQleverNativeSparqlClient.js +519 -0
- package/dist/storage/rdf/LocalQleverNativeSparqlClient.jsonld +314 -0
- package/dist/storage/rdf/PostgresRdfEngine.d.ts +3 -1
- package/dist/storage/rdf/PostgresRdfEngine.js +111 -74
- package/dist/storage/rdf/PostgresRdfEngine.jsonld +12 -22
- package/dist/storage/rdf/PostgresRdfSchemaValidation.d.ts +8 -0
- package/dist/storage/rdf/PostgresRdfSchemaValidation.js +82 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +6 -3
- package/dist/storage/rdf/PostgresRdfTextIndex.js +158 -80
- package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +16 -4
- package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +4 -5
- package/dist/storage/rdf/PostgresRdfVectorIndex.js +124 -120
- package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +14 -18
- package/dist/storage/rdf/QleverSparqlEngine.d.ts +35 -0
- package/dist/storage/rdf/QleverSparqlEngine.js +185 -0
- package/dist/storage/rdf/QleverSparqlEngine.jsonld +70 -0
- package/dist/storage/rdf/Rdf3xIndex.js +20 -16
- package/dist/storage/rdf/RdfAccessScope.d.ts +4 -0
- package/dist/storage/rdf/RdfAccessScope.js +74 -9
- package/dist/storage/rdf/RdfAccessScope.jsonld +16 -0
- package/dist/storage/rdf/RdfEngineRdfJsSource.d.ts +14 -0
- package/dist/storage/rdf/RdfEngineRdfJsSource.js +179 -0
- package/dist/storage/rdf/RdfQuadIndex.d.ts +13 -14
- package/dist/storage/rdf/RdfQuadIndex.js +286 -99
- package/dist/storage/rdf/RdfQuadIndex.jsonld +10 -22
- package/dist/storage/rdf/RdfQueryExecutor.js +10 -4
- package/dist/storage/rdf/RdfQuerySparqlEngine.d.ts +33 -0
- package/dist/storage/rdf/RdfQuerySparqlEngine.js +215 -0
- package/dist/storage/rdf/RdfQuerySparqlEngine.jsonld +78 -0
- package/dist/storage/rdf/RdfSparqlAdapter.d.ts +0 -4
- package/dist/storage/rdf/RdfSparqlAdapter.js +75 -173
- package/dist/storage/rdf/RdfSparqlBoundary.d.ts +37 -0
- package/dist/storage/rdf/RdfSparqlBoundary.js +247 -0
- package/dist/storage/rdf/RdfSparqlSerialization.d.ts +3 -0
- package/dist/storage/rdf/RdfSparqlSerialization.js +19 -0
- package/dist/storage/rdf/RdfSqliteConnection.d.ts +7 -0
- package/dist/storage/rdf/RdfSqliteConnection.js +23 -0
- package/dist/storage/rdf/RdfTermDictionary.d.ts +0 -8
- package/dist/storage/rdf/RdfTermDictionary.js +0 -136
- package/dist/storage/rdf/RdfTermDictionary.jsonld +0 -32
- package/dist/storage/rdf/RdfTermSemantics.d.ts +6 -0
- package/dist/storage/rdf/RdfTermSemantics.js +29 -0
- package/dist/storage/rdf/RdfTextIndex.d.ts +5 -6
- package/dist/storage/rdf/RdfTextIndex.js +187 -115
- package/dist/storage/rdf/RdfTextIndex.jsonld +10 -14
- package/dist/storage/rdf/RdfVectorIndex.d.ts +4 -4
- package/dist/storage/rdf/RdfVectorIndex.js +156 -233
- package/dist/storage/rdf/RdfVectorIndex.jsonld +10 -14
- package/dist/storage/rdf/SolidRdfEngine.d.ts +16 -21
- package/dist/storage/rdf/SolidRdfEngine.js +28 -308
- package/dist/storage/rdf/SolidRdfEngine.jsonld +26 -148
- package/dist/storage/rdf/XpodComunicaQueryEngine.d.ts +10 -0
- package/dist/storage/rdf/XpodComunicaQueryEngine.js +72 -0
- package/dist/storage/rdf/index.d.ts +7 -6
- package/dist/storage/rdf/index.js +17 -12
- package/dist/storage/rdf/models-benchmark.d.ts +5 -1
- package/dist/storage/rdf/models-benchmark.js +17 -19
- package/dist/storage/rdf/types.d.ts +68 -6
- package/dist/storage/rdf/types.jsonld +69 -0
- package/dist/storage/sparql/SubgraphQueryEngine.d.ts +13 -7
- package/dist/storage/sparql/SubgraphQueryEngine.js +6 -6
- package/dist/storage/vector/index.d.ts +0 -1
- package/dist/storage/vector/index.js +0 -1
- package/dist/terminal/AclPermissionService.d.ts +4 -5
- package/dist/terminal/AclPermissionService.js +55 -75
- package/dist/terminal/TerminalSessionManager.d.ts +3 -2
- package/dist/terminal/TerminalSessionManager.js +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +29 -26
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +9 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js +6 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/notifications/notifications-client.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +13 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +31 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql/builder/expression-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/sparql-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +29 -26
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +9 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js +6 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/notifications/notifications-client.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +6 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +14 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +30 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js +45 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/sparql-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/package.json +5 -4
- package/package.json +22 -8
- package/static/app/assets/{index-36TJKN-3.js → index-BikOyGPu.js} +34 -34
- package/static/app/assets/inrupt-smoke.js +2 -2
- package/static/app/assets/main.css +1 -1
- package/static/app/assets/main.js +11 -11
- package/static/auth-callback/assets/{AiConfigContext-BvBdu_A3.js → AiConfigContext-iQ74JmRZ.js} +1 -1
- package/static/auth-callback/assets/{AiConfigPage-BpDw4jco.js → AiConfigPage-BBDKE1gJ.js} +1 -1
- package/static/auth-callback/assets/{DocumentProcessingPanel-BmZ_jzRr.js → DocumentProcessingPanel-D9NntIEK.js} +1 -1
- package/static/auth-callback/assets/{IndexLifecyclePanel-BfQBjN4z.js → IndexLifecyclePanel-BG07yBdA.js} +1 -1
- package/static/auth-callback/assets/{IndexSubjectPanel-BlsnatPt.js → IndexSubjectPanel-B-bUnU3G.js} +1 -1
- package/static/auth-callback/assets/{ModelAssignmentsPanel-KA6Mdndz.js → ModelAssignmentsPanel-C7I-Nqy-.js} +1 -1
- package/static/auth-callback/assets/{ModelsPage-C7jymyIY.js → ModelsPage-C2hxyrmI.js} +1 -1
- package/static/auth-callback/assets/{NetworkPage-k2ShktNm.js → NetworkPage-IGIc2q1Y.js} +1 -1
- package/static/auth-callback/assets/{PaneListHeader-mLMe_dvU.js → PaneListHeader-CebuPl_g.js} +1 -1
- package/static/auth-callback/assets/{SearchIndexingPanel-CqV9um_t.js → SearchIndexingPanel-6HnZSg00.js} +1 -1
- package/static/auth-callback/assets/{StatusSubjectPanel-BgMBTbr2.js → StatusSubjectPanel-votxBkr5.js} +1 -1
- package/static/auth-callback/assets/{StatusWorkspace-zbSyhdG2.js → StatusWorkspace-Cksl61zX.js} +1 -1
- package/static/auth-callback/assets/{SystemSettingsPage-CtW79nW6.js → SystemSettingsPage-CKZFUaZT.js} +1 -1
- package/static/auth-callback/assets/{SystemSettingsSubjectPanel-ZOPKYUtZ.js → SystemSettingsSubjectPanel-pzfUcCf4.js} +1 -1
- package/static/auth-callback/assets/{activity-BQ-CQE3O.js → activity-DQL6kZHZ.js} +1 -1
- package/static/auth-callback/assets/auth-callback-B_s8Ye5Z.css +1 -0
- package/static/auth-callback/assets/{auth-callback-Htr_CB_g.js → auth-callback-BxQMd_Mc.js} +39 -39
- package/static/auth-callback/assets/{badge-D5SGTJeO.js → badge-DvW4LUHH.js} +1 -1
- package/static/auth-callback/assets/{download-DK183Ldo.js → download-Cx_uaCR1.js} +1 -1
- package/static/auth-callback/assets/{external-link-LDHy_4bn.js → external-link-D6L6ExH1.js} +1 -1
- package/static/auth-callback/assets/{index-BWrvgHqK.js → index-BAS_hxGu.js} +1 -1
- package/static/auth-callback/assets/{index-2WmlePQ9.js → index-BmBjpCoD.js} +1 -1
- package/static/auth-callback/assets/{index-browser-DUd4E4-x.js → index-browser-pdn4D3M4.js} +1 -1
- package/static/auth-callback/assets/{key-round-ibX79Kr-.js → key-round-BTBzOggq.js} +1 -1
- package/static/auth-callback/assets/{rotate-ccw-B2_VMaiX.js → rotate-ccw-eV7Cx8sB.js} +1 -1
- package/static/auth-callback/assets/{skeleton-F4nrpycc.js → skeleton-Bg4GYgBM.js} +1 -1
- package/static/auth-callback/assets/{waypoints-DImIq93f.js → waypoints-CJbydf0B.js} +1 -1
- package/static/auth-callback/assets/{workspace-layout-IVCSYU21.js → workspace-layout-C6Hh8Xf-.js} +1 -1
- package/static/auth-callback/auth-callback.html +2 -2
- package/static/dashboard/assets/{AiConfigContext-cjjfYTo9.js → AiConfigContext-BkJj28vK.js} +1 -1
- package/static/dashboard/assets/{AiConfigPage-CO0DSD_j.js → AiConfigPage-Cs9B4uyp.js} +1 -1
- package/static/dashboard/assets/{DocumentProcessingPanel-DMGnH8Oj.js → DocumentProcessingPanel-BBWmM7mS.js} +1 -1
- package/static/dashboard/assets/{IndexLifecyclePanel-DSkIOCL5.js → IndexLifecyclePanel-D5xGTT_i.js} +1 -1
- package/static/dashboard/assets/{IndexSubjectPanel-qWN_DbAp.js → IndexSubjectPanel-d-mjDthn.js} +1 -1
- package/static/dashboard/assets/{ModelAssignmentsPanel-DCf83uM3.js → ModelAssignmentsPanel-C-OLNbqf.js} +1 -1
- package/static/dashboard/assets/{ModelsPage-CMnvSrl5.js → ModelsPage-CBrLjuUn.js} +1 -1
- package/static/dashboard/assets/{NetworkPage-C8Gkwclb.js → NetworkPage-BlYk8L1z.js} +1 -1
- package/static/dashboard/assets/{PaneListHeader-BtU_8cDK.js → PaneListHeader-A5oZJQC0.js} +1 -1
- package/static/dashboard/assets/{SearchIndexingPanel-DEn12pNU.js → SearchIndexingPanel-Bs1j8ZP2.js} +1 -1
- package/static/dashboard/assets/{StatusSubjectPanel-B1_ILg2d.js → StatusSubjectPanel-Qao3orvi.js} +1 -1
- package/static/dashboard/assets/{StatusWorkspace-BG6nMNCo.js → StatusWorkspace-rDM0yDtk.js} +1 -1
- package/static/dashboard/assets/{SystemSettingsPage-BnWYIXaM.js → SystemSettingsPage-FPRPkKaR.js} +1 -1
- package/static/dashboard/assets/{SystemSettingsSubjectPanel-C_mYVPWb.js → SystemSettingsSubjectPanel-CjlJAxnX.js} +1 -1
- package/static/dashboard/assets/{activity-DYJ7PdRl.js → activity-CJ5K6hYC.js} +1 -1
- package/static/dashboard/assets/{badge-BIaZco1P.js → badge-L-NMOi1P.js} +1 -1
- package/static/dashboard/assets/dashboard-B_s8Ye5Z.css +1 -0
- package/static/dashboard/assets/{dashboard-Dl40_MEa.js → dashboard-DyjAyYxx.js} +34 -34
- package/static/dashboard/assets/{download-By16k9VK.js → download-Bi4u5K5B.js} +1 -1
- package/static/dashboard/assets/{external-link-B92xOG_d.js → external-link-jmhLDfvT.js} +1 -1
- package/static/dashboard/assets/{index-BajZpJ48.js → index-BoaGJBxf.js} +1 -1
- package/static/dashboard/assets/{index-wsVPom_x.js → index-C22TAEi4.js} +1 -1
- package/static/dashboard/assets/{key-round-Clo5FOwA.js → key-round-Dk1VmMrn.js} +1 -1
- package/static/dashboard/assets/{rotate-ccw-smWSfi1L.js → rotate-ccw-DIfLsSwi.js} +1 -1
- package/static/dashboard/assets/{skeleton-BrTaGeJw.js → skeleton-BGPJMHb-.js} +1 -1
- package/static/dashboard/assets/{waypoints-DGPQInE7.js → waypoints-CY53egpu.js} +1 -1
- package/static/dashboard/assets/{workspace-layout-CPU4XRmb.js → workspace-layout-CoHkcx70.js} +1 -1
- package/static/dashboard/dashboard.html +2 -2
- package/static/settings/assets/{AiConfigContext-CT29_OyW.js → AiConfigContext-BcEPlEJe.js} +1 -1
- package/static/settings/assets/{AiConfigPage-WIE95S28.js → AiConfigPage-D-t3ZUhg.js} +1 -1
- package/static/settings/assets/{DocumentProcessingPanel-KG8Sq999.js → DocumentProcessingPanel-m2SasiMO.js} +1 -1
- package/static/settings/assets/{IndexLifecyclePanel-iKvtHDXY.js → IndexLifecyclePanel-BNmAvx8V.js} +1 -1
- package/static/settings/assets/{IndexSubjectPanel-BQdSCkk4.js → IndexSubjectPanel-C5-L2AcW.js} +1 -1
- package/static/settings/assets/{ModelAssignmentsPanel-P8QcVB0F.js → ModelAssignmentsPanel-Cfpkf02Y.js} +1 -1
- package/static/settings/assets/{ModelsPage-UZkZGqor.js → ModelsPage-DZrACwVN.js} +1 -1
- package/static/settings/assets/{NetworkPage-Dcpcvg15.js → NetworkPage-BlrGGfqL.js} +1 -1
- package/static/settings/assets/{PaneListHeader--gHtZws5.js → PaneListHeader-C3TCs1RI.js} +1 -1
- package/static/settings/assets/{SearchIndexingPanel-DdgJSJYQ.js → SearchIndexingPanel-Cyp3CUzX.js} +1 -1
- package/static/settings/assets/{StatusSubjectPanel-UOxp_XVL.js → StatusSubjectPanel-gRkb8WEX.js} +1 -1
- package/static/settings/assets/{StatusWorkspace-CPNXuD12.js → StatusWorkspace-Dptx4Ec2.js} +1 -1
- package/static/settings/assets/{SystemSettingsPage-B6ySeVPw.js → SystemSettingsPage-BWgGUQbs.js} +1 -1
- package/static/settings/assets/{SystemSettingsSubjectPanel-I7zWmpiI.js → SystemSettingsSubjectPanel-VflUvpgC.js} +1 -1
- package/static/settings/assets/{activity-CFhmzahP.js → activity-D7iNhTkQ.js} +1 -1
- package/static/settings/assets/{badge-BBdUc5B-.js → badge-DO0r_RT4.js} +1 -1
- package/static/settings/assets/{download-WJE9-yxQ.js → download-CsJlNSbd.js} +1 -1
- package/static/settings/assets/{external-link-RKoYyCp_.js → external-link-BCR7SHme.js} +1 -1
- package/static/settings/assets/{index-Bq2o0Bif.js → index-Cgq16ekN.js} +1 -1
- package/static/settings/assets/{index-DvxneI5O.js → index-SrhQvcrU.js} +1 -1
- package/static/settings/assets/{index-browser-Qmo6EsFT.js → index-browser-THpcMCnz.js} +1 -1
- package/static/settings/assets/{key-round-r-D9sQUK.js → key-round-Dd3jk1BT.js} +1 -1
- package/static/settings/assets/{rotate-ccw-D3IIhbPH.js → rotate-ccw-tiL14i1d.js} +1 -1
- package/static/settings/assets/settings-B_s8Ye5Z.css +1 -0
- package/static/settings/assets/{settings-D8oDBXWg.js → settings-CVLDPejo.js} +34 -34
- package/static/settings/assets/{skeleton-DrL4RQuw.js → skeleton-DBxLuNgU.js} +1 -1
- package/static/settings/assets/{waypoints-C5sRhpJw.js → waypoints-DS3e3hv7.js} +1 -1
- package/static/settings/assets/{workspace-layout-B4ALmWsM.js → workspace-layout-mucrxyTK.js} +1 -1
- package/static/settings/settings.html +2 -2
- package/config/search.json +0 -66
- package/dist/document/HeadingChunker.jsonld +0 -41
- package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +0 -124
- package/dist/security/secret-cell/SecretCellVault.jsonld +0 -207
- package/dist/storage/PostgresDerivedIndexJournal.d.ts +0 -47
- package/dist/storage/PostgresDerivedIndexJournal.js +0 -408
- package/dist/storage/PostgresDerivedIndexJournal.jsonld +0 -303
- package/dist/storage/RdfDerivedIndexingListener.d.ts +0 -32
- package/dist/storage/RdfDerivedIndexingListener.js +0 -135
- package/dist/storage/RdfDerivedIndexingListener.jsonld +0 -228
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.d.ts +0 -148
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.js +0 -436
- package/dist/storage/accessors/QuadstoreSparqlDataAccessor.jsonld +0 -172
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.d.ts +0 -102
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.js +0 -474
- package/dist/storage/accessors/QuintStoreSparqlDataAccessor.jsonld +0 -192
- package/dist/storage/rdf/RdfSparqlAdapter.jsonld +0 -486
- package/dist/storage/rdf/ShadowRdfQuintStore.d.ts +0 -59
- package/dist/storage/rdf/ShadowRdfQuintStore.js +0 -216
- package/dist/storage/rdf/ShadowRdfQuintStore.jsonld +0 -312
- package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +0 -107
- package/dist/storage/rdf/SolidRdfSparqlEngine.js +0 -1117
- package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +0 -312
- package/dist/storage/sparql/AlgebraUtils.d.ts +0 -48
- package/dist/storage/sparql/AlgebraUtils.js +0 -118
- package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +0 -37
- package/dist/storage/sparql/CompatibilitySparqlEngine.js +0 -96
- package/dist/storage/sparql/CompatibilitySparqlEngine.jsonld +0 -123
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +0 -36
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +0 -124
- package/dist/storage/sparql/ComunicaOptimizedEngine.d.ts +0 -59
- package/dist/storage/sparql/ComunicaOptimizedEngine.js +0 -254
- package/dist/storage/sparql/ComunicaQuintEngine.d.ts +0 -143
- package/dist/storage/sparql/ComunicaQuintEngine.js +0 -781
- package/dist/storage/sparql/ExpressionEvaluator.d.ts +0 -54
- package/dist/storage/sparql/ExpressionEvaluator.js +0 -340
- package/dist/storage/sparql/FilterPushdownExtractor.d.ts +0 -74
- package/dist/storage/sparql/FilterPushdownExtractor.js +0 -421
- package/dist/storage/sparql/OptimizedQuadstoreEngine.d.ts +0 -65
- package/dist/storage/sparql/OptimizedQuadstoreEngine.js +0 -327
- package/dist/storage/sparql/OptimizedQuadstoreSource.d.ts +0 -46
- package/dist/storage/sparql/OptimizedQuadstoreSource.js +0 -118
- package/dist/storage/sparql/PatternBuilder.d.ts +0 -41
- package/dist/storage/sparql/PatternBuilder.js +0 -118
- package/dist/storage/sparql/QueryOptimizer.d.ts +0 -125
- package/dist/storage/sparql/QueryOptimizer.js +0 -375
- package/dist/storage/sparql/QuintEngine.d.ts +0 -92
- package/dist/storage/sparql/QuintEngine.js +0 -150
- package/dist/storage/sparql/QuintQuerySource.d.ts +0 -241
- package/dist/storage/sparql/QuintQuerySource.js +0 -1069
- package/dist/storage/sparql/SimpleSparqlExecutor.d.ts +0 -40
- package/dist/storage/sparql/SimpleSparqlExecutor.js +0 -131
- package/dist/storage/vector/VectorIndexingListener.d.ts +0 -114
- package/dist/storage/vector/VectorIndexingListener.js +0 -346
- package/static/auth-callback/assets/auth-callback-rWdEQY5f.css +0 -1
- package/static/dashboard/assets/dashboard-rWdEQY5f.css +0 -1
- package/static/settings/assets/settings-rWdEQY5f.css +0 -1
|
@@ -5,7 +5,21 @@ const pglite_1 = require("@electric-sql/pglite");
|
|
|
5
5
|
const PostgresPoolManager_1 = require("../database/PostgresPoolManager");
|
|
6
6
|
const RdfSearchSourceFilter_1 = require("./RdfSearchSourceFilter");
|
|
7
7
|
const PostgresRdfSqlExecutor_1 = require("./PostgresRdfSqlExecutor");
|
|
8
|
+
const PostgresRdfSchemaValidation_1 = require("./PostgresRdfSchemaValidation");
|
|
8
9
|
const RdfVectorIndex_1 = require("./RdfVectorIndex");
|
|
10
|
+
const PG_RDF_VECTOR_SCHEMA_LOCK_KEY = 2026072902;
|
|
11
|
+
const PG_RDF_VECTOR_DOMAIN_TABLES = [
|
|
12
|
+
'rdf_vector_metadata',
|
|
13
|
+
'rdf_vector_sources',
|
|
14
|
+
'rdf_vector_chunks',
|
|
15
|
+
'rdf_vector_components',
|
|
16
|
+
];
|
|
17
|
+
const PG_RDF_VECTOR_REQUIRED_COLUMNS = {
|
|
18
|
+
rdf_vector_metadata: ['key', 'value'],
|
|
19
|
+
rdf_vector_sources: ['id', 'source_key', 'source', 'workspace', 'local_path', 'content_type', 'source_version', 'source_hash', 'updated_at'],
|
|
20
|
+
rdf_vector_chunks: ['id', 'source_id', 'chunk_key', 'ordinal', 'level', 'heading', 'path', 'content', 'start_offset', 'end_offset', 'embedding_json', 'summary_metadata', 'dimensions', 'magnitude', 'provider', 'model', 'model_version', 'input_kind', 'input_hash', 'projection_policy_version', 'updated_at'],
|
|
21
|
+
rdf_vector_components: ['chunk_id', 'dimension', 'value', 'updated_at'],
|
|
22
|
+
};
|
|
9
23
|
class PostgresRdfVectorIndex {
|
|
10
24
|
constructor(options = {}) {
|
|
11
25
|
this.executor = null;
|
|
@@ -48,6 +62,14 @@ class PostgresRdfVectorIndex {
|
|
|
48
62
|
async clear() {
|
|
49
63
|
await this.requireExecutor().exec('DELETE FROM rdf_vector_components; DELETE FROM rdf_vector_chunks; DELETE FROM rdf_vector_sources;');
|
|
50
64
|
}
|
|
65
|
+
async schemaVersion() {
|
|
66
|
+
return await this.readSchemaVersion(this.requireExecutor());
|
|
67
|
+
}
|
|
68
|
+
async readSchemaVersion(executor) {
|
|
69
|
+
const row = await executor
|
|
70
|
+
.query("SELECT value FROM rdf_vector_metadata WHERE key = 'schema_version'");
|
|
71
|
+
return Number(row[0]?.value ?? 0) || 0;
|
|
72
|
+
}
|
|
51
73
|
async indexVector(source, chunks) {
|
|
52
74
|
const executor = this.requireExecutor();
|
|
53
75
|
await executor.transaction(async (tx) => {
|
|
@@ -190,6 +212,58 @@ class PostgresRdfVectorIndex {
|
|
|
190
212
|
return Number(deletedRows[0]?.count ?? 0);
|
|
191
213
|
});
|
|
192
214
|
}
|
|
215
|
+
async moveSource(oldSource, next) {
|
|
216
|
+
const executor = this.requireExecutor();
|
|
217
|
+
return await executor.transaction(async (tx) => {
|
|
218
|
+
const oldRows = await tx.query('SELECT * FROM rdf_vector_sources WHERE source = $1', [oldSource]);
|
|
219
|
+
const oldRow = oldRows[0];
|
|
220
|
+
if (!oldRow) {
|
|
221
|
+
return 0;
|
|
222
|
+
}
|
|
223
|
+
const oldId = Number(oldRow.id);
|
|
224
|
+
const sourceKey = oldRow.source_key;
|
|
225
|
+
if (next.sourceKey && next.sourceKey !== sourceKey) {
|
|
226
|
+
throw new Error(`RDF vector source key mismatch for source ${oldSource}: expected ${sourceKey}, got ${next.sourceKey}`);
|
|
227
|
+
}
|
|
228
|
+
const countRows = await tx.query('SELECT COUNT(*) AS count FROM rdf_vector_chunks WHERE source_id = $1', [oldId]);
|
|
229
|
+
const targetRows = await tx.query('SELECT * FROM rdf_vector_sources WHERE source = $1', [next.source]);
|
|
230
|
+
const targetRow = targetRows[0];
|
|
231
|
+
if (targetRow && Number(targetRow.id) !== oldId) {
|
|
232
|
+
const targetId = Number(targetRow.id);
|
|
233
|
+
await tx.exec(`
|
|
234
|
+
DELETE FROM rdf_vector_components
|
|
235
|
+
WHERE chunk_id IN (
|
|
236
|
+
SELECT id FROM rdf_vector_chunks WHERE source_id = $1
|
|
237
|
+
)
|
|
238
|
+
`, [targetId]);
|
|
239
|
+
await tx.exec('DELETE FROM rdf_vector_chunks WHERE source_id = $1', [targetId]);
|
|
240
|
+
await tx.exec('DELETE FROM rdf_vector_sources WHERE id = $1', [targetId]);
|
|
241
|
+
}
|
|
242
|
+
await tx.exec(`
|
|
243
|
+
UPDATE rdf_vector_sources
|
|
244
|
+
SET
|
|
245
|
+
source_key = $1,
|
|
246
|
+
source = $2,
|
|
247
|
+
workspace = $3,
|
|
248
|
+
local_path = $4,
|
|
249
|
+
content_type = $5,
|
|
250
|
+
source_version = $6,
|
|
251
|
+
source_hash = $7,
|
|
252
|
+
updated_at = now()
|
|
253
|
+
WHERE id = $8
|
|
254
|
+
`, [
|
|
255
|
+
sourceKey,
|
|
256
|
+
next.source,
|
|
257
|
+
next.workspace,
|
|
258
|
+
next.localPath ?? null,
|
|
259
|
+
next.contentType ?? null,
|
|
260
|
+
next.sourceVersion ?? null,
|
|
261
|
+
next.sourceHash ?? oldRow.source_hash ?? null,
|
|
262
|
+
oldId,
|
|
263
|
+
]);
|
|
264
|
+
return Math.max(Number(countRows[0]?.count ?? 0), 1);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
193
267
|
async search(options) {
|
|
194
268
|
const embedding = (0, RdfVectorIndex_1.normalizeEmbedding)(options.embedding);
|
|
195
269
|
if (embedding.length === 0) {
|
|
@@ -380,13 +454,25 @@ class PostgresRdfVectorIndex {
|
|
|
380
454
|
await this.initializeSchema();
|
|
381
455
|
}
|
|
382
456
|
async initializeSchema() {
|
|
383
|
-
|
|
384
|
-
await
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
457
|
+
await this.requireExecutor().transaction(async (executor) => {
|
|
458
|
+
await executor.exec('SELECT pg_advisory_xact_lock($1)', [PG_RDF_VECTOR_SCHEMA_LOCK_KEY]);
|
|
459
|
+
if (await (0, PostgresRdfSchemaValidation_1.pgHasAnyDomainTable)(executor, PG_RDF_VECTOR_DOMAIN_TABLES)) {
|
|
460
|
+
await this.validateSchema(executor);
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
463
|
+
const embeddingVectorColumnSql = this.usesPgVectorBackend() ? 'embedding_vector vector,' : '';
|
|
464
|
+
if (this.usesPgVectorBackend()) {
|
|
465
|
+
await executor.exec('CREATE EXTENSION IF NOT EXISTS vector');
|
|
466
|
+
}
|
|
467
|
+
await executor.exec(`
|
|
468
|
+
CREATE TABLE rdf_vector_metadata (
|
|
469
|
+
key TEXT PRIMARY KEY,
|
|
470
|
+
value TEXT NOT NULL
|
|
471
|
+
);
|
|
472
|
+
|
|
473
|
+
CREATE TABLE rdf_vector_sources (
|
|
388
474
|
id BIGSERIAL PRIMARY KEY,
|
|
389
|
-
source_key TEXT,
|
|
475
|
+
source_key TEXT NOT NULL UNIQUE,
|
|
390
476
|
source TEXT NOT NULL UNIQUE,
|
|
391
477
|
workspace TEXT NOT NULL,
|
|
392
478
|
local_path TEXT,
|
|
@@ -396,7 +482,7 @@ class PostgresRdfVectorIndex {
|
|
|
396
482
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
397
483
|
);
|
|
398
484
|
|
|
399
|
-
CREATE TABLE
|
|
485
|
+
CREATE TABLE rdf_vector_chunks (
|
|
400
486
|
id BIGSERIAL PRIMARY KEY,
|
|
401
487
|
source_id BIGINT NOT NULL REFERENCES rdf_vector_sources(id) ON DELETE CASCADE,
|
|
402
488
|
chunk_key TEXT NOT NULL,
|
|
@@ -417,6 +503,7 @@ class PostgresRdfVectorIndex {
|
|
|
417
503
|
input_kind TEXT NOT NULL DEFAULT '',
|
|
418
504
|
input_hash TEXT NOT NULL DEFAULT '',
|
|
419
505
|
projection_policy_version TEXT NOT NULL DEFAULT '',
|
|
506
|
+
${embeddingVectorColumnSql}
|
|
420
507
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
421
508
|
UNIQUE (
|
|
422
509
|
source_id,
|
|
@@ -430,7 +517,7 @@ class PostgresRdfVectorIndex {
|
|
|
430
517
|
)
|
|
431
518
|
);
|
|
432
519
|
|
|
433
|
-
CREATE TABLE
|
|
520
|
+
CREATE TABLE rdf_vector_components (
|
|
434
521
|
chunk_id BIGINT NOT NULL REFERENCES rdf_vector_chunks(id) ON DELETE CASCADE,
|
|
435
522
|
dimension INTEGER NOT NULL,
|
|
436
523
|
value DOUBLE PRECISION NOT NULL,
|
|
@@ -438,28 +525,31 @@ class PostgresRdfVectorIndex {
|
|
|
438
525
|
PRIMARY KEY (chunk_id, dimension)
|
|
439
526
|
);
|
|
440
527
|
|
|
441
|
-
CREATE INDEX
|
|
442
|
-
CREATE INDEX
|
|
443
|
-
CREATE INDEX
|
|
444
|
-
CREATE INDEX
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
528
|
+
CREATE INDEX rdf_vector_sources_workspace ON rdf_vector_sources(workspace);
|
|
529
|
+
CREATE INDEX rdf_vector_sources_source ON rdf_vector_sources(source);
|
|
530
|
+
CREATE INDEX rdf_vector_chunks_source ON rdf_vector_chunks(source_id, ordinal);
|
|
531
|
+
CREATE INDEX rdf_vector_components_dimension ON rdf_vector_components(dimension, chunk_id);
|
|
532
|
+
CREATE INDEX rdf_vector_chunks_model_dimensions
|
|
533
|
+
ON rdf_vector_chunks(provider, model, model_version, input_kind, projection_policy_version, dimensions);
|
|
534
|
+
|
|
535
|
+
INSERT INTO rdf_vector_metadata (key, value)
|
|
536
|
+
VALUES ('schema_version', '${RdfVectorIndex_1.RDF_VECTOR_SCHEMA_VERSION}');
|
|
537
|
+
`);
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
async validateSchema(executor = this.requireExecutor()) {
|
|
541
|
+
for (const table of PG_RDF_VECTOR_DOMAIN_TABLES) {
|
|
542
|
+
await (0, PostgresRdfSchemaValidation_1.assertPgRequiredColumns)(executor, table, PG_RDF_VECTOR_REQUIRED_COLUMNS[table], 'vector');
|
|
450
543
|
}
|
|
451
|
-
|
|
452
|
-
|
|
544
|
+
const version = await this.readSchemaVersion(executor);
|
|
545
|
+
if (version !== RdfVectorIndex_1.RDF_VECTOR_SCHEMA_VERSION) {
|
|
546
|
+
throw new Error(`Unsupported PostgreSQL RDF vector index schema version: expected ${RdfVectorIndex_1.RDF_VECTOR_SCHEMA_VERSION}, got ${version}`);
|
|
547
|
+
}
|
|
548
|
+
await (0, PostgresRdfSchemaValidation_1.assertPgNotNullColumn)(executor, 'rdf_vector_sources', 'source_key', 'vector');
|
|
549
|
+
await (0, PostgresRdfSchemaValidation_1.assertPgUniqueColumn)(executor, 'rdf_vector_sources', 'source_key', 'vector');
|
|
550
|
+
if (this.usesPgVectorBackend()) {
|
|
551
|
+
await (0, PostgresRdfSchemaValidation_1.assertPgColumnType)(executor, 'rdf_vector_chunks', 'embedding_vector', 'vector', 'vector');
|
|
453
552
|
}
|
|
454
|
-
}
|
|
455
|
-
async ensurePgVectorColumn() {
|
|
456
|
-
await this.requireExecutor().exec('ALTER TABLE rdf_vector_chunks ADD COLUMN IF NOT EXISTS embedding_vector vector');
|
|
457
|
-
await this.requireExecutor().exec(`
|
|
458
|
-
UPDATE rdf_vector_chunks
|
|
459
|
-
SET embedding_vector = embedding_json::vector
|
|
460
|
-
WHERE embedding_vector IS NULL
|
|
461
|
-
AND embedding_json IS NOT NULL
|
|
462
|
-
`);
|
|
463
553
|
}
|
|
464
554
|
async ensurePgVectorSearchIndex(dimensions, metric) {
|
|
465
555
|
if (!this.usesPgVectorBackend()) {
|
|
@@ -480,97 +570,12 @@ class PostgresRdfVectorIndex {
|
|
|
480
570
|
`);
|
|
481
571
|
this.ensuredPgVectorIndexes.add(key);
|
|
482
572
|
}
|
|
483
|
-
async ensureSourceKeyColumn() {
|
|
484
|
-
await this.requireExecutor().exec('ALTER TABLE rdf_vector_sources ADD COLUMN IF NOT EXISTS source_key TEXT');
|
|
485
|
-
await this.requireExecutor().exec('UPDATE rdf_vector_sources SET source_key = source WHERE source_key IS NULL OR source_key = \'\'');
|
|
486
|
-
}
|
|
487
|
-
async ensureVectorIdentityColumns() {
|
|
488
|
-
await this.requireExecutor().exec(`
|
|
489
|
-
ALTER TABLE rdf_vector_chunks ADD COLUMN IF NOT EXISTS provider TEXT NOT NULL DEFAULT '';
|
|
490
|
-
ALTER TABLE rdf_vector_chunks ADD COLUMN IF NOT EXISTS model_version TEXT NOT NULL DEFAULT '';
|
|
491
|
-
ALTER TABLE rdf_vector_chunks ADD COLUMN IF NOT EXISTS input_kind TEXT NOT NULL DEFAULT '';
|
|
492
|
-
ALTER TABLE rdf_vector_chunks ADD COLUMN IF NOT EXISTS input_hash TEXT NOT NULL DEFAULT '';
|
|
493
|
-
ALTER TABLE rdf_vector_chunks ADD COLUMN IF NOT EXISTS projection_policy_version TEXT NOT NULL DEFAULT '';
|
|
494
|
-
ALTER TABLE rdf_vector_chunks ADD COLUMN IF NOT EXISTS summary_metadata TEXT;
|
|
495
|
-
UPDATE rdf_vector_chunks
|
|
496
|
-
SET
|
|
497
|
-
provider = COALESCE(provider, ''),
|
|
498
|
-
model_version = COALESCE(model_version, ''),
|
|
499
|
-
input_kind = COALESCE(input_kind, ''),
|
|
500
|
-
input_hash = COALESCE(input_hash, ''),
|
|
501
|
-
projection_policy_version = COALESCE(projection_policy_version, '');
|
|
502
|
-
`);
|
|
503
|
-
await this.ensureVectorChunkIdentityUniqueConstraint();
|
|
504
|
-
await this.requireExecutor().exec(`
|
|
505
|
-
CREATE INDEX IF NOT EXISTS rdf_vector_chunks_model_dimensions
|
|
506
|
-
ON rdf_vector_chunks(provider, model, model_version, input_kind, projection_policy_version, dimensions);
|
|
507
|
-
`);
|
|
508
|
-
}
|
|
509
|
-
async ensureVectorChunkIdentityUniqueConstraint() {
|
|
510
|
-
const rows = await this.requireExecutor().query(`
|
|
511
|
-
SELECT
|
|
512
|
-
constraint_info.conname,
|
|
513
|
-
string_agg(attribute.attname, ',' ORDER BY constraint_key.ordinality) AS columns
|
|
514
|
-
FROM pg_constraint constraint_info
|
|
515
|
-
JOIN unnest(constraint_info.conkey) WITH ORDINALITY AS constraint_key(attnum, ordinality) ON TRUE
|
|
516
|
-
JOIN pg_attribute attribute
|
|
517
|
-
ON attribute.attrelid = constraint_info.conrelid
|
|
518
|
-
AND attribute.attnum = constraint_key.attnum
|
|
519
|
-
WHERE constraint_info.conrelid = 'rdf_vector_chunks'::regclass
|
|
520
|
-
AND constraint_info.contype = 'u'
|
|
521
|
-
GROUP BY constraint_info.conname
|
|
522
|
-
`);
|
|
523
|
-
let hasIdentityUnique = false;
|
|
524
|
-
for (const row of rows) {
|
|
525
|
-
if (row.columns === 'source_id,chunk_key') {
|
|
526
|
-
await this.requireExecutor().exec(`ALTER TABLE rdf_vector_chunks DROP CONSTRAINT ${quotePgIdentifier(row.conname)}`);
|
|
527
|
-
}
|
|
528
|
-
else if (row.columns === 'source_id,chunk_key,provider,model,model_version,input_kind,projection_policy_version,input_hash') {
|
|
529
|
-
hasIdentityUnique = true;
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
if (hasIdentityUnique) {
|
|
533
|
-
return;
|
|
534
|
-
}
|
|
535
|
-
await this.requireExecutor().exec(`
|
|
536
|
-
CREATE UNIQUE INDEX IF NOT EXISTS rdf_vector_chunks_identity_unique
|
|
537
|
-
ON rdf_vector_chunks (
|
|
538
|
-
source_id,
|
|
539
|
-
chunk_key,
|
|
540
|
-
provider,
|
|
541
|
-
model,
|
|
542
|
-
model_version,
|
|
543
|
-
input_kind,
|
|
544
|
-
projection_policy_version,
|
|
545
|
-
input_hash
|
|
546
|
-
)
|
|
547
|
-
`);
|
|
548
|
-
}
|
|
549
|
-
async backfillVectorComponents() {
|
|
550
|
-
const rows = await this.requireExecutor().query(`
|
|
551
|
-
SELECT
|
|
552
|
-
chunk.id,
|
|
553
|
-
chunk.dimensions,
|
|
554
|
-
chunk.embedding_json,
|
|
555
|
-
COUNT(component.dimension) AS component_count
|
|
556
|
-
FROM rdf_vector_chunks chunk
|
|
557
|
-
LEFT JOIN rdf_vector_components component ON component.chunk_id = chunk.id
|
|
558
|
-
WHERE chunk.dimensions > 0
|
|
559
|
-
GROUP BY chunk.id
|
|
560
|
-
HAVING COUNT(component.dimension) <> chunk.dimensions
|
|
561
|
-
`);
|
|
562
|
-
if (rows.length === 0) {
|
|
563
|
-
return;
|
|
564
|
-
}
|
|
565
|
-
await this.requireExecutor().transaction(async (tx) => {
|
|
566
|
-
for (const row of rows) {
|
|
567
|
-
const chunkId = Number(row.id);
|
|
568
|
-
await tx.exec('DELETE FROM rdf_vector_components WHERE chunk_id = $1', [chunkId]);
|
|
569
|
-
await insertVectorComponents(tx, chunkId, (0, RdfVectorIndex_1.parseEmbedding)(row.embedding_json));
|
|
570
|
-
}
|
|
571
|
-
});
|
|
572
|
-
}
|
|
573
573
|
async upsertSource(tx, source) {
|
|
574
|
+
const existing = await tx.query('SELECT * FROM rdf_vector_sources WHERE source = $1', [source.source]);
|
|
575
|
+
if (existing[0] && source.sourceKey && existing[0].source_key !== source.sourceKey) {
|
|
576
|
+
throw new Error(`RDF vector source key mismatch for source ${source.source}: expected ${existing[0].source_key}, got ${source.sourceKey}`);
|
|
577
|
+
}
|
|
578
|
+
const sourceKey = existing[0]?.source_key ?? source.sourceKey ?? source.source;
|
|
574
579
|
const rows = await tx.query(`
|
|
575
580
|
INSERT INTO rdf_vector_sources (
|
|
576
581
|
source_key,
|
|
@@ -585,7 +590,6 @@ class PostgresRdfVectorIndex {
|
|
|
585
590
|
VALUES ($1, $2, $3, $4, $5, $6, $7, now())
|
|
586
591
|
ON CONFLICT (source)
|
|
587
592
|
DO UPDATE SET
|
|
588
|
-
source_key = COALESCE(EXCLUDED.source_key, rdf_vector_sources.source_key, EXCLUDED.source),
|
|
589
593
|
workspace = EXCLUDED.workspace,
|
|
590
594
|
local_path = EXCLUDED.local_path,
|
|
591
595
|
content_type = EXCLUDED.content_type,
|
|
@@ -594,7 +598,7 @@ class PostgresRdfVectorIndex {
|
|
|
594
598
|
updated_at = EXCLUDED.updated_at
|
|
595
599
|
RETURNING id
|
|
596
600
|
`, [
|
|
597
|
-
|
|
601
|
+
sourceKey,
|
|
598
602
|
source.source,
|
|
599
603
|
source.workspace,
|
|
600
604
|
source.localPath ?? null,
|
|
@@ -291,6 +291,14 @@
|
|
|
291
291
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_clear",
|
|
292
292
|
"memberFieldName": "clear"
|
|
293
293
|
},
|
|
294
|
+
{
|
|
295
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_schemaVersion",
|
|
296
|
+
"memberFieldName": "schemaVersion"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_readSchemaVersion",
|
|
300
|
+
"memberFieldName": "readSchemaVersion"
|
|
301
|
+
},
|
|
294
302
|
{
|
|
295
303
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_indexVector",
|
|
296
304
|
"memberFieldName": "indexVector"
|
|
@@ -299,6 +307,10 @@
|
|
|
299
307
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_deleteSource",
|
|
300
308
|
"memberFieldName": "deleteSource"
|
|
301
309
|
},
|
|
310
|
+
{
|
|
311
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_moveSource",
|
|
312
|
+
"memberFieldName": "moveSource"
|
|
313
|
+
},
|
|
302
314
|
{
|
|
303
315
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_search",
|
|
304
316
|
"memberFieldName": "search"
|
|
@@ -328,29 +340,13 @@
|
|
|
328
340
|
"memberFieldName": "initializeSchema"
|
|
329
341
|
},
|
|
330
342
|
{
|
|
331
|
-
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#
|
|
332
|
-
"memberFieldName": "
|
|
343
|
+
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_validateSchema",
|
|
344
|
+
"memberFieldName": "validateSchema"
|
|
333
345
|
},
|
|
334
346
|
{
|
|
335
347
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_ensurePgVectorSearchIndex",
|
|
336
348
|
"memberFieldName": "ensurePgVectorSearchIndex"
|
|
337
349
|
},
|
|
338
|
-
{
|
|
339
|
-
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_ensureSourceKeyColumn",
|
|
340
|
-
"memberFieldName": "ensureSourceKeyColumn"
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_ensureVectorIdentityColumns",
|
|
344
|
-
"memberFieldName": "ensureVectorIdentityColumns"
|
|
345
|
-
},
|
|
346
|
-
{
|
|
347
|
-
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_ensureVectorChunkIdentityUniqueConstraint",
|
|
348
|
-
"memberFieldName": "ensureVectorChunkIdentityUniqueConstraint"
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_backfillVectorComponents",
|
|
352
|
-
"memberFieldName": "backfillVectorComponents"
|
|
353
|
-
},
|
|
354
350
|
{
|
|
355
351
|
"@id": "undefineds:dist/storage/rdf/PostgresRdfVectorIndex.jsonld#PostgresRdfVectorIndex__member_upsertSource",
|
|
356
352
|
"memberFieldName": "upsertSource"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { AsyncIterator } from 'asynciterator';
|
|
2
|
+
import type { Quad, Term, Variable } from '@rdfjs/types';
|
|
3
|
+
import type { SparqlEngine, SparqlQueryOptions, SparqlVoidOptions } from '../sparql/SubgraphQueryEngine';
|
|
4
|
+
import type { RdfAccessScope } from './RdfAccessScope';
|
|
5
|
+
import type { RdfEngineLike } from './types';
|
|
6
|
+
type QleverBindingsStream = AsyncIterator<QleverBindings> & {
|
|
7
|
+
metadata(): Promise<{
|
|
8
|
+
variables: Variable[];
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Thin CSS SparqlEngine adapter over the shared native QLever envelope.
|
|
13
|
+
*
|
|
14
|
+
* It performs product-boundary validation and result decoding only. It has no
|
|
15
|
+
* alternate evaluator, planner, update compiler, or secondary execution path.
|
|
16
|
+
*/
|
|
17
|
+
export declare class QleverSparqlEngine implements SparqlEngine {
|
|
18
|
+
private readonly rdfEngine;
|
|
19
|
+
constructor(rdfEngine: RdfEngineLike);
|
|
20
|
+
queryBindings(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlQueryOptions): Promise<QleverBindingsStream>;
|
|
21
|
+
queryBoolean(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlQueryOptions): Promise<boolean>;
|
|
22
|
+
queryQuads(query: string, basePath: string, accessScope?: RdfAccessScope, options?: SparqlQueryOptions): Promise<AsyncIterator<Quad>>;
|
|
23
|
+
queryVoid(_query: string, _basePath: string, _accessScope?: RdfAccessScope, _options?: SparqlVoidOptions): Promise<void>;
|
|
24
|
+
constructGraph(graph: string, basePath: string, accessScope?: RdfAccessScope): Promise<AsyncIterator<Quad>>;
|
|
25
|
+
listGraphs(basePath: string, accessScope?: RdfAccessScope): Promise<Set<string>>;
|
|
26
|
+
close(): Promise<void>;
|
|
27
|
+
private execute;
|
|
28
|
+
}
|
|
29
|
+
declare class QleverBindings extends Map<Variable, Term> {
|
|
30
|
+
private readonly byName;
|
|
31
|
+
constructor(entries: [Variable, Term][]);
|
|
32
|
+
get(key: string | Variable): Term | undefined;
|
|
33
|
+
has(key: string | Variable): boolean;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QleverSparqlEngine = void 0;
|
|
4
|
+
const asynciterator_1 = require("asynciterator");
|
|
5
|
+
const n3_1 = require("n3");
|
|
6
|
+
const rdf_data_factory_1 = require("rdf-data-factory");
|
|
7
|
+
const RdfSparqlBoundary_1 = require("./RdfSparqlBoundary");
|
|
8
|
+
const RdfSparqlSerialization_1 = require("./RdfSparqlSerialization");
|
|
9
|
+
const rdfDataFactory = new rdf_data_factory_1.DataFactory();
|
|
10
|
+
const XPOD_RDF_STATUS_CANCELLED = 3;
|
|
11
|
+
/**
|
|
12
|
+
* Thin CSS SparqlEngine adapter over the shared native QLever envelope.
|
|
13
|
+
*
|
|
14
|
+
* It performs product-boundary validation and result decoding only. It has no
|
|
15
|
+
* alternate evaluator, planner, update compiler, or secondary execution path.
|
|
16
|
+
*/
|
|
17
|
+
class QleverSparqlEngine {
|
|
18
|
+
constructor(rdfEngine) {
|
|
19
|
+
this.rdfEngine = rdfEngine;
|
|
20
|
+
if (typeof rdfEngine.sparqlQuery !== 'function') {
|
|
21
|
+
throw new Error('QleverSparqlEngine requires an RdfEngine with native SPARQL support');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async queryBindings(query, basePath, accessScope, options) {
|
|
25
|
+
const result = await this.execute(query, basePath, 'queryBindings', 'application/sparql-results+json', accessScope, options);
|
|
26
|
+
const payload = parseSparqlJson(result);
|
|
27
|
+
if (!payload.results) {
|
|
28
|
+
throw new RdfSparqlBoundary_1.NativeSparqlExecutionError('QLever SELECT result does not contain bindings');
|
|
29
|
+
}
|
|
30
|
+
const variables = payload.head?.vars ?? inferVariableNames(payload.results.bindings ?? []);
|
|
31
|
+
const rows = (payload.results.bindings ?? []).map((row) => toBindings(row, variables));
|
|
32
|
+
const iterator = new asynciterator_1.ArrayIterator(rows);
|
|
33
|
+
iterator.metadata = async () => ({
|
|
34
|
+
variables: variables.map((name) => rdfDataFactory.variable(name)),
|
|
35
|
+
});
|
|
36
|
+
return iterator;
|
|
37
|
+
}
|
|
38
|
+
async queryBoolean(query, basePath, accessScope, options) {
|
|
39
|
+
const result = await this.execute(query, basePath, 'queryBoolean', 'application/sparql-results+json', accessScope, options);
|
|
40
|
+
const payload = parseSparqlJson(result);
|
|
41
|
+
if (typeof payload.boolean !== 'boolean') {
|
|
42
|
+
throw new RdfSparqlBoundary_1.NativeSparqlExecutionError('QLever ASK result does not contain a boolean');
|
|
43
|
+
}
|
|
44
|
+
return payload.boolean;
|
|
45
|
+
}
|
|
46
|
+
async queryQuads(query, basePath, accessScope, options) {
|
|
47
|
+
const result = await this.execute(query, basePath, 'queryQuads', 'application/n-quads', accessScope, options);
|
|
48
|
+
return new asynciterator_1.ArrayIterator(parseGraph(result));
|
|
49
|
+
}
|
|
50
|
+
async queryVoid(_query, _basePath, _accessScope, _options) {
|
|
51
|
+
throw new RdfSparqlBoundary_1.UnsupportedSparqlQueryError('Direct SPARQL UPDATE execution is disabled; use the Pod update authority prepared-delta path', {
|
|
52
|
+
code: 'rdf.sparql.update_authority_required',
|
|
53
|
+
capability: 'sparql.update.authority',
|
|
54
|
+
hint: 'Send the update through the Pod SPARQL HTTP endpoint so the authority can prepare and atomically commit source-file changes.',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
async constructGraph(graph, basePath, accessScope) {
|
|
58
|
+
return this.queryQuads(`CONSTRUCT { ?s ?p ?o } WHERE { GRAPH ${(0, RdfSparqlSerialization_1.serializeSparqlIri)(graph)} { ?s ?p ?o } }`, basePath, accessScope);
|
|
59
|
+
}
|
|
60
|
+
async listGraphs(basePath, accessScope) {
|
|
61
|
+
const stream = await this.queryBindings('SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }', basePath, accessScope);
|
|
62
|
+
const graphs = new Set();
|
|
63
|
+
for await (const binding of stream) {
|
|
64
|
+
const graph = binding.get('g');
|
|
65
|
+
if (graph?.termType === 'NamedNode') {
|
|
66
|
+
graphs.add(graph.value);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return graphs;
|
|
70
|
+
}
|
|
71
|
+
async close() {
|
|
72
|
+
await this.rdfEngine.close();
|
|
73
|
+
}
|
|
74
|
+
async execute(query, basePath, operation, acceptMediaType, accessScope, options) {
|
|
75
|
+
(0, RdfSparqlBoundary_1.assertServerOwnedNativeSparqlQuery)(query, basePath);
|
|
76
|
+
const result = await this.rdfEngine.sparqlQuery(query, {
|
|
77
|
+
basePath,
|
|
78
|
+
operation,
|
|
79
|
+
acceptMediaType,
|
|
80
|
+
...(accessScope ? { accessScope } : {}),
|
|
81
|
+
...(options?.sourceUri === undefined ? {} : { sourceUri: options.sourceUri }),
|
|
82
|
+
...(options?.defaultDataset === undefined ? {} : { defaultDataset: options.defaultDataset }),
|
|
83
|
+
...(options?.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
|
|
84
|
+
...(options?.signal ? { signal: options.signal } : {}),
|
|
85
|
+
});
|
|
86
|
+
if (result.status === 'ok') {
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
if (result.status === 'unsupported') {
|
|
90
|
+
throw new RdfSparqlBoundary_1.UnsupportedSparqlQueryError(result.error || 'QLever reported the SPARQL query as unsupported', { capability: 'sparql.qlever' });
|
|
91
|
+
}
|
|
92
|
+
if (options?.timeoutMs !== undefined && result.queryStatus === XPOD_RDF_STATUS_CANCELLED) {
|
|
93
|
+
throw new RdfSparqlBoundary_1.NativeSparqlTimeoutError(options.timeoutMs, result.error);
|
|
94
|
+
}
|
|
95
|
+
throw new RdfSparqlBoundary_1.NativeSparqlExecutionError(result.error || 'QLever returned an error result');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.QleverSparqlEngine = QleverSparqlEngine;
|
|
99
|
+
function parseSparqlJson(result) {
|
|
100
|
+
try {
|
|
101
|
+
return JSON.parse(result.body);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
throw new RdfSparqlBoundary_1.NativeSparqlExecutionError(`QLever returned invalid SPARQL JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function parseGraph(result) {
|
|
108
|
+
const mediaType = result.mediaType.toLowerCase();
|
|
109
|
+
try {
|
|
110
|
+
return new n3_1.Parser({
|
|
111
|
+
format: mediaType.includes('n-quads')
|
|
112
|
+
? 'N-Quads'
|
|
113
|
+
: mediaType.includes('turtle')
|
|
114
|
+
? 'Turtle'
|
|
115
|
+
: 'N-Triples',
|
|
116
|
+
}).parse(result.body);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
throw new RdfSparqlBoundary_1.NativeSparqlExecutionError(`QLever returned an invalid graph result: ${error instanceof Error ? error.message : String(error)}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function toBindings(row, variables) {
|
|
123
|
+
const entries = [];
|
|
124
|
+
for (const variable of variables) {
|
|
125
|
+
const term = sparqlJsonTerm(row[variable]);
|
|
126
|
+
if (term) {
|
|
127
|
+
entries.push([rdfDataFactory.variable(variable), term]);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return new QleverBindings(entries);
|
|
131
|
+
}
|
|
132
|
+
function inferVariableNames(rows) {
|
|
133
|
+
const names = new Set();
|
|
134
|
+
for (const row of rows) {
|
|
135
|
+
for (const name of Object.keys(row)) {
|
|
136
|
+
names.add(name);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return [...names];
|
|
140
|
+
}
|
|
141
|
+
function sparqlJsonTerm(value) {
|
|
142
|
+
if (!value || typeof value !== 'object') {
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
const term = value;
|
|
146
|
+
if (typeof term.value !== 'string') {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
if (term.type === 'uri') {
|
|
150
|
+
return rdfDataFactory.namedNode(term.value);
|
|
151
|
+
}
|
|
152
|
+
if (term.type === 'bnode') {
|
|
153
|
+
return rdfDataFactory.blankNode(term.value);
|
|
154
|
+
}
|
|
155
|
+
if (term.type === 'literal' || term.type === 'typed-literal') {
|
|
156
|
+
if (term['xml:lang']) {
|
|
157
|
+
return rdfDataFactory.literal(term.value, term['xml:lang']);
|
|
158
|
+
}
|
|
159
|
+
if (term.datatype) {
|
|
160
|
+
return rdfDataFactory.literal(term.value, rdfDataFactory.namedNode(term.datatype));
|
|
161
|
+
}
|
|
162
|
+
return rdfDataFactory.literal(term.value);
|
|
163
|
+
}
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
class QleverBindings extends Map {
|
|
167
|
+
constructor(entries) {
|
|
168
|
+
super(entries);
|
|
169
|
+
this.byName = new Map();
|
|
170
|
+
for (const [variable, term] of entries) {
|
|
171
|
+
this.byName.set(variable.value, term);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
get(key) {
|
|
175
|
+
return typeof key === 'string'
|
|
176
|
+
? this.byName.get(key)
|
|
177
|
+
: this.byName.get(key.value) ?? super.get(key);
|
|
178
|
+
}
|
|
179
|
+
has(key) {
|
|
180
|
+
return typeof key === 'string'
|
|
181
|
+
? this.byName.has(key)
|
|
182
|
+
: this.byName.has(key.value) || super.has(key);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=QleverSparqlEngine.js.map
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@undefineds.co/xpod/^0.0.0/components/context.jsonld"
|
|
4
|
+
],
|
|
5
|
+
"@id": "npmd:@undefineds.co/xpod",
|
|
6
|
+
"components": [
|
|
7
|
+
{
|
|
8
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine",
|
|
9
|
+
"@type": "Class",
|
|
10
|
+
"requireElement": "QleverSparqlEngine",
|
|
11
|
+
"extends": [
|
|
12
|
+
"undefineds:dist/storage/sparql/SubgraphQueryEngine.jsonld#SparqlEngine"
|
|
13
|
+
],
|
|
14
|
+
"comment": "Thin CSS SparqlEngine adapter over the shared native QLever envelope. It performs product-boundary validation and result decoding only. It has no alternate evaluator, planner, update compiler, or secondary execution path.",
|
|
15
|
+
"parameters": [
|
|
16
|
+
{
|
|
17
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine_rdfEngine",
|
|
18
|
+
"range": "undefineds:dist/storage/rdf/types.jsonld#RdfEngineLike"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"memberFields": [
|
|
22
|
+
{
|
|
23
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_rdfEngine",
|
|
24
|
+
"memberFieldName": "rdfEngine"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_constructor",
|
|
28
|
+
"memberFieldName": "constructor"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_queryBindings",
|
|
32
|
+
"memberFieldName": "queryBindings"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_queryBoolean",
|
|
36
|
+
"memberFieldName": "queryBoolean"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_queryQuads",
|
|
40
|
+
"memberFieldName": "queryQuads"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_queryVoid",
|
|
44
|
+
"memberFieldName": "queryVoid"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_constructGraph",
|
|
48
|
+
"memberFieldName": "constructGraph"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_listGraphs",
|
|
52
|
+
"memberFieldName": "listGraphs"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_close",
|
|
56
|
+
"memberFieldName": "close"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine__member_execute",
|
|
60
|
+
"memberFieldName": "execute"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"constructorArguments": [
|
|
64
|
+
{
|
|
65
|
+
"@id": "undefineds:dist/storage/rdf/QleverSparqlEngine.jsonld#QleverSparqlEngine_rdfEngine"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|