@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
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ExpressionEvaluator - In-memory SPARQL expression evaluation
|
|
3
|
-
*
|
|
4
|
-
* Evaluates SPARQL expressions that cannot be pushed down to the database.
|
|
5
|
-
* Used for filtering bindings after initial pattern matching.
|
|
6
|
-
*/
|
|
7
|
-
import type { Term, Bindings } from '@rdfjs/types';
|
|
8
|
-
import type { Algebra } from 'sparqlalgebrajs';
|
|
9
|
-
import type { QuintStore } from '../quint/types';
|
|
10
|
-
import type { PatternBuilder } from './PatternBuilder';
|
|
11
|
-
/**
|
|
12
|
-
* Callback for extracting pattern from operation
|
|
13
|
-
*/
|
|
14
|
-
export type ExtractPatternFn = (operation: Algebra.Operation) => {
|
|
15
|
-
pattern: Algebra.Pattern;
|
|
16
|
-
filter: Algebra.Expression | null;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* ExpressionEvaluator handles in-memory evaluation of SPARQL expressions
|
|
20
|
-
*/
|
|
21
|
-
export declare class ExpressionEvaluator {
|
|
22
|
-
private readonly store;
|
|
23
|
-
private readonly patternBuilder;
|
|
24
|
-
private readonly extractPatternAndFilter;
|
|
25
|
-
constructor(store: QuintStore, patternBuilder: PatternBuilder, extractPatternAndFilter: ExtractPatternFn);
|
|
26
|
-
/**
|
|
27
|
-
* Evaluate filter expression tree against candidate bindings
|
|
28
|
-
*/
|
|
29
|
-
evaluateFilterTree(expr: Algebra.Expression, candidates: Bindings[], pattern: Algebra.Pattern): Promise<Bindings[]>;
|
|
30
|
-
/**
|
|
31
|
-
* Evaluate operator expression
|
|
32
|
-
*/
|
|
33
|
-
private evaluateOperator;
|
|
34
|
-
/**
|
|
35
|
-
* Union multiple binding sets
|
|
36
|
-
*/
|
|
37
|
-
private unionBindings;
|
|
38
|
-
/**
|
|
39
|
-
* Evaluate EXISTS/NOT EXISTS
|
|
40
|
-
*/
|
|
41
|
-
private evaluateExistence;
|
|
42
|
-
private checkExists;
|
|
43
|
-
/**
|
|
44
|
-
* Evaluate single binding against operator
|
|
45
|
-
*/
|
|
46
|
-
evaluateSingleBinding(expr: Algebra.OperatorExpression, binding: Bindings): boolean;
|
|
47
|
-
getTermValue(expr: Algebra.Expression, binding: Bindings): Term | null;
|
|
48
|
-
getNumericValue(expr: Algebra.Expression, binding: Bindings): number | null;
|
|
49
|
-
getStringValue(expr: Algebra.Expression, binding: Bindings): string | null;
|
|
50
|
-
compareTerms(left: Term | null, right: Term | null, op: string): boolean;
|
|
51
|
-
isNumericLiteral(lit: any): boolean;
|
|
52
|
-
effectiveBooleanValue(term: Term): boolean;
|
|
53
|
-
getBindingKey(binding: Bindings): string;
|
|
54
|
-
}
|
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* ExpressionEvaluator - In-memory SPARQL expression evaluation
|
|
4
|
-
*
|
|
5
|
-
* Evaluates SPARQL expressions that cannot be pushed down to the database.
|
|
6
|
-
* Used for filtering bindings after initial pattern matching.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ExpressionEvaluator = void 0;
|
|
10
|
-
const rdf_data_factory_1 = require("rdf-data-factory");
|
|
11
|
-
const serialization_1 = require("../quint/serialization");
|
|
12
|
-
const dataFactory = new rdf_data_factory_1.DataFactory();
|
|
13
|
-
/**
|
|
14
|
-
* ExpressionEvaluator handles in-memory evaluation of SPARQL expressions
|
|
15
|
-
*/
|
|
16
|
-
class ExpressionEvaluator {
|
|
17
|
-
constructor(store, patternBuilder, extractPatternAndFilter) {
|
|
18
|
-
this.store = store;
|
|
19
|
-
this.patternBuilder = patternBuilder;
|
|
20
|
-
this.extractPatternAndFilter = extractPatternAndFilter;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Evaluate filter expression tree against candidate bindings
|
|
24
|
-
*/
|
|
25
|
-
async evaluateFilterTree(expr, candidates, pattern) {
|
|
26
|
-
if (candidates.length === 0)
|
|
27
|
-
return [];
|
|
28
|
-
switch (expr.expressionType) {
|
|
29
|
-
case 'operator':
|
|
30
|
-
return this.evaluateOperator(expr, candidates, pattern);
|
|
31
|
-
case 'existence':
|
|
32
|
-
return this.evaluateExistence(expr, candidates, pattern);
|
|
33
|
-
case 'term':
|
|
34
|
-
const termExpr = expr;
|
|
35
|
-
return this.effectiveBooleanValue(termExpr.term) ? candidates : [];
|
|
36
|
-
default:
|
|
37
|
-
return candidates; // Unknown: be permissive
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Evaluate operator expression
|
|
42
|
-
*/
|
|
43
|
-
async evaluateOperator(expr, candidates, pattern) {
|
|
44
|
-
const op = expr.operator.toLowerCase();
|
|
45
|
-
// Logical AND
|
|
46
|
-
if (op === '&&') {
|
|
47
|
-
let result = candidates;
|
|
48
|
-
for (const arg of expr.args) {
|
|
49
|
-
result = await this.evaluateFilterTree(arg, result, pattern);
|
|
50
|
-
}
|
|
51
|
-
return result;
|
|
52
|
-
}
|
|
53
|
-
// Logical OR
|
|
54
|
-
if (op === '||') {
|
|
55
|
-
const resultSets = await Promise.all(expr.args.map(arg => this.evaluateFilterTree(arg, candidates, pattern)));
|
|
56
|
-
return this.unionBindings(resultSets);
|
|
57
|
-
}
|
|
58
|
-
// Logical NOT
|
|
59
|
-
if (op === '!') {
|
|
60
|
-
const positives = await this.evaluateFilterTree(expr.args[0], candidates, pattern);
|
|
61
|
-
const positiveKeys = new Set(positives.map(b => this.getBindingKey(b)));
|
|
62
|
-
return candidates.filter(b => !positiveKeys.has(this.getBindingKey(b)));
|
|
63
|
-
}
|
|
64
|
-
// Other operators: evaluate each binding individually
|
|
65
|
-
return candidates.filter(b => this.evaluateSingleBinding(expr, b));
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Union multiple binding sets
|
|
69
|
-
*/
|
|
70
|
-
unionBindings(sets) {
|
|
71
|
-
const seen = new Set();
|
|
72
|
-
const result = [];
|
|
73
|
-
for (const set of sets) {
|
|
74
|
-
for (const binding of set) {
|
|
75
|
-
const key = this.getBindingKey(binding);
|
|
76
|
-
if (!seen.has(key)) {
|
|
77
|
-
seen.add(key);
|
|
78
|
-
result.push(binding);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return result;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Evaluate EXISTS/NOT EXISTS
|
|
86
|
-
*/
|
|
87
|
-
async evaluateExistence(expr, candidates, _pattern) {
|
|
88
|
-
const results = [];
|
|
89
|
-
for (const binding of candidates) {
|
|
90
|
-
const exists = await this.checkExists(expr.input, binding);
|
|
91
|
-
if (expr.not ? !exists : exists) {
|
|
92
|
-
results.push(binding);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return results;
|
|
96
|
-
}
|
|
97
|
-
async checkExists(subOperation, binding) {
|
|
98
|
-
const { pattern: subPattern } = this.extractPatternAndFilter(subOperation);
|
|
99
|
-
const quintPattern = this.patternBuilder.buildExistsPattern(subPattern, binding);
|
|
100
|
-
const results = await this.store.get(quintPattern, { limit: 1 });
|
|
101
|
-
return results.length > 0;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Evaluate single binding against operator
|
|
105
|
-
*/
|
|
106
|
-
evaluateSingleBinding(expr, binding) {
|
|
107
|
-
const op = expr.operator.toLowerCase();
|
|
108
|
-
// Comparison
|
|
109
|
-
if (['=', '!=', '<', '>', '<=', '>='].includes(op)) {
|
|
110
|
-
const left = this.getTermValue(expr.args[0], binding);
|
|
111
|
-
const right = this.getTermValue(expr.args[1], binding);
|
|
112
|
-
if (left === null || right === null)
|
|
113
|
-
return false;
|
|
114
|
-
return this.compareTerms(left, right, op);
|
|
115
|
-
}
|
|
116
|
-
// BOUND
|
|
117
|
-
if (op === 'bound') {
|
|
118
|
-
const varExpr = expr.args[0];
|
|
119
|
-
if (varExpr.expressionType === 'term') {
|
|
120
|
-
const term = varExpr.term;
|
|
121
|
-
if (term.termType === 'Variable') {
|
|
122
|
-
return binding.get(term) !== undefined;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
// String functions
|
|
128
|
-
if (op === 'strstarts') {
|
|
129
|
-
const str = this.getStringValue(expr.args[0], binding);
|
|
130
|
-
const prefix = this.getStringValue(expr.args[1], binding);
|
|
131
|
-
return str !== null && prefix !== null && str.startsWith(prefix);
|
|
132
|
-
}
|
|
133
|
-
if (op === 'strends') {
|
|
134
|
-
const str = this.getStringValue(expr.args[0], binding);
|
|
135
|
-
const suffix = this.getStringValue(expr.args[1], binding);
|
|
136
|
-
return str !== null && suffix !== null && str.endsWith(suffix);
|
|
137
|
-
}
|
|
138
|
-
if (op === 'contains') {
|
|
139
|
-
const str = this.getStringValue(expr.args[0], binding);
|
|
140
|
-
const substr = this.getStringValue(expr.args[1], binding);
|
|
141
|
-
return str !== null && substr !== null && str.includes(substr);
|
|
142
|
-
}
|
|
143
|
-
if (op === 'regex') {
|
|
144
|
-
const str = this.getStringValue(expr.args[0], binding);
|
|
145
|
-
const pattern = this.getStringValue(expr.args[1], binding);
|
|
146
|
-
if (str === null || pattern === null)
|
|
147
|
-
return false;
|
|
148
|
-
try {
|
|
149
|
-
const flags = expr.args[2] ? this.getStringValue(expr.args[2], binding) || '' : '';
|
|
150
|
-
return new RegExp(pattern, flags).test(str);
|
|
151
|
-
}
|
|
152
|
-
catch {
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// Type checking functions
|
|
157
|
-
if (op === 'isiri' || op === 'isuri') {
|
|
158
|
-
const term = this.getTermValue(expr.args[0], binding);
|
|
159
|
-
return term !== null && term.termType === 'NamedNode';
|
|
160
|
-
}
|
|
161
|
-
if (op === 'isblank') {
|
|
162
|
-
const term = this.getTermValue(expr.args[0], binding);
|
|
163
|
-
return term !== null && term.termType === 'BlankNode';
|
|
164
|
-
}
|
|
165
|
-
if (op === 'isliteral') {
|
|
166
|
-
const term = this.getTermValue(expr.args[0], binding);
|
|
167
|
-
return term !== null && term.termType === 'Literal';
|
|
168
|
-
}
|
|
169
|
-
if (op === 'isnumeric') {
|
|
170
|
-
const term = this.getTermValue(expr.args[0], binding);
|
|
171
|
-
if (term?.termType === 'Literal') {
|
|
172
|
-
const lit = term;
|
|
173
|
-
return lit.datatype && serialization_1.NUMERIC_TYPES.has(lit.datatype.value);
|
|
174
|
-
}
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
// LANGMATCHES
|
|
178
|
-
if (op === 'langmatches') {
|
|
179
|
-
const langExpr = expr.args[0];
|
|
180
|
-
if (langExpr.expressionType === 'operator' && langExpr.operator.toLowerCase() === 'lang') {
|
|
181
|
-
const term = this.getTermValue(langExpr.args[0], binding);
|
|
182
|
-
if (term?.termType === 'Literal') {
|
|
183
|
-
const lit = term;
|
|
184
|
-
const lang = lit.language || '';
|
|
185
|
-
const pattern = this.getStringValue(expr.args[1], binding);
|
|
186
|
-
if (pattern === '*')
|
|
187
|
-
return lang.length > 0;
|
|
188
|
-
if (pattern)
|
|
189
|
-
return lang.toLowerCase() === pattern.toLowerCase();
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
// IN / NOT IN
|
|
195
|
-
if (op === 'in') {
|
|
196
|
-
const value = this.getTermValue(expr.args[0], binding);
|
|
197
|
-
if (value === null)
|
|
198
|
-
return false;
|
|
199
|
-
for (let i = 1; i < expr.args.length; i++) {
|
|
200
|
-
if (this.compareTerms(value, this.getTermValue(expr.args[i], binding), '='))
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
return false;
|
|
204
|
-
}
|
|
205
|
-
if (op === 'notin') {
|
|
206
|
-
const value = this.getTermValue(expr.args[0], binding);
|
|
207
|
-
if (value === null)
|
|
208
|
-
return true;
|
|
209
|
-
for (let i = 1; i < expr.args.length; i++) {
|
|
210
|
-
if (this.compareTerms(value, this.getTermValue(expr.args[i], binding), '='))
|
|
211
|
-
return false;
|
|
212
|
-
}
|
|
213
|
-
return true;
|
|
214
|
-
}
|
|
215
|
-
return true; // Unknown: be permissive
|
|
216
|
-
}
|
|
217
|
-
// ============================================================
|
|
218
|
-
// Helper Methods
|
|
219
|
-
// ============================================================
|
|
220
|
-
getTermValue(expr, binding) {
|
|
221
|
-
if (expr.expressionType === 'term') {
|
|
222
|
-
const termExpr = expr;
|
|
223
|
-
if (termExpr.term.termType === 'Variable') {
|
|
224
|
-
return binding.get(termExpr.term) || null;
|
|
225
|
-
}
|
|
226
|
-
return termExpr.term;
|
|
227
|
-
}
|
|
228
|
-
if (expr.expressionType === 'operator') {
|
|
229
|
-
const opExpr = expr;
|
|
230
|
-
const op = opExpr.operator.toLowerCase();
|
|
231
|
-
// STR function
|
|
232
|
-
if (op === 'str') {
|
|
233
|
-
const inner = this.getTermValue(opExpr.args[0], binding);
|
|
234
|
-
if (inner)
|
|
235
|
-
return dataFactory.literal(inner.value);
|
|
236
|
-
}
|
|
237
|
-
// STRLEN function - returns integer
|
|
238
|
-
if (op === 'strlen') {
|
|
239
|
-
const str = this.getStringValue(opExpr.args[0], binding);
|
|
240
|
-
if (str !== null) {
|
|
241
|
-
return dataFactory.literal(str.length.toString(), dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#integer'));
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
// Numeric functions
|
|
245
|
-
if (op === 'abs') {
|
|
246
|
-
const val = this.getNumericValue(opExpr.args[0], binding);
|
|
247
|
-
if (val !== null) {
|
|
248
|
-
return dataFactory.literal(Math.abs(val).toString(), dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#decimal'));
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
if (op === 'round') {
|
|
252
|
-
const val = this.getNumericValue(opExpr.args[0], binding);
|
|
253
|
-
if (val !== null) {
|
|
254
|
-
return dataFactory.literal(Math.round(val).toString(), dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#decimal'));
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
if (op === 'floor') {
|
|
258
|
-
const val = this.getNumericValue(opExpr.args[0], binding);
|
|
259
|
-
if (val !== null) {
|
|
260
|
-
return dataFactory.literal(Math.floor(val).toString(), dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#decimal'));
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
if (op === 'ceil') {
|
|
264
|
-
const val = this.getNumericValue(opExpr.args[0], binding);
|
|
265
|
-
if (val !== null) {
|
|
266
|
-
return dataFactory.literal(Math.ceil(val).toString(), dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#decimal'));
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
return null;
|
|
271
|
-
}
|
|
272
|
-
getNumericValue(expr, binding) {
|
|
273
|
-
const term = this.getTermValue(expr, binding);
|
|
274
|
-
if (term?.termType === 'Literal') {
|
|
275
|
-
const val = parseFloat(term.value);
|
|
276
|
-
if (!isNaN(val))
|
|
277
|
-
return val;
|
|
278
|
-
}
|
|
279
|
-
return null;
|
|
280
|
-
}
|
|
281
|
-
getStringValue(expr, binding) {
|
|
282
|
-
const term = this.getTermValue(expr, binding);
|
|
283
|
-
return term?.value ?? null;
|
|
284
|
-
}
|
|
285
|
-
compareTerms(left, right, op) {
|
|
286
|
-
if (left === null || right === null)
|
|
287
|
-
return false;
|
|
288
|
-
if (left.termType === 'Literal' && right.termType === 'Literal') {
|
|
289
|
-
const leftLit = left;
|
|
290
|
-
const rightLit = right;
|
|
291
|
-
if (this.isNumericLiteral(leftLit) && this.isNumericLiteral(rightLit)) {
|
|
292
|
-
const l = parseFloat(leftLit.value), r = parseFloat(rightLit.value);
|
|
293
|
-
switch (op) {
|
|
294
|
-
case '=': return l === r;
|
|
295
|
-
case '!=': return l !== r;
|
|
296
|
-
case '<': return l < r;
|
|
297
|
-
case '>': return l > r;
|
|
298
|
-
case '<=': return l <= r;
|
|
299
|
-
case '>=': return l >= r;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
const cmp = leftLit.value.localeCompare(rightLit.value);
|
|
303
|
-
switch (op) {
|
|
304
|
-
case '=': return cmp === 0;
|
|
305
|
-
case '!=': return cmp !== 0;
|
|
306
|
-
case '<': return cmp < 0;
|
|
307
|
-
case '>': return cmp > 0;
|
|
308
|
-
case '<=': return cmp <= 0;
|
|
309
|
-
case '>=': return cmp >= 0;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
switch (op) {
|
|
313
|
-
case '=': return left.value === right.value;
|
|
314
|
-
case '!=': return left.value !== right.value;
|
|
315
|
-
default: return false;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
isNumericLiteral(lit) {
|
|
319
|
-
return lit.datatype && serialization_1.NUMERIC_TYPES.has(lit.datatype.value);
|
|
320
|
-
}
|
|
321
|
-
effectiveBooleanValue(term) {
|
|
322
|
-
if (term.termType === 'Literal') {
|
|
323
|
-
const lit = term;
|
|
324
|
-
if (lit.datatype?.value === 'http://www.w3.org/2001/XMLSchema#boolean') {
|
|
325
|
-
return lit.value === 'true';
|
|
326
|
-
}
|
|
327
|
-
return lit.value.length > 0;
|
|
328
|
-
}
|
|
329
|
-
return true;
|
|
330
|
-
}
|
|
331
|
-
getBindingKey(binding) {
|
|
332
|
-
const parts = [];
|
|
333
|
-
binding.forEach((value, key) => {
|
|
334
|
-
parts.push(`${key.value}=${value.value}`);
|
|
335
|
-
});
|
|
336
|
-
return parts.sort().join('|');
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
exports.ExpressionEvaluator = ExpressionEvaluator;
|
|
340
|
-
//# sourceMappingURL=ExpressionEvaluator.js.map
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FilterPushdownExtractor - Extract pushdownable conditions from SPARQL FILTER
|
|
3
|
-
*
|
|
4
|
-
* Analyzes SPARQL FILTER expressions and extracts conditions that can be
|
|
5
|
-
* pushed down to the database layer for efficient query execution.
|
|
6
|
-
*
|
|
7
|
-
* Supported pushdown operations:
|
|
8
|
-
* - Comparison: =, !=, <, >, <=, >=
|
|
9
|
-
* - String functions: STRSTARTS, STRENDS, CONTAINS, REGEX
|
|
10
|
-
* - Type checking: isIRI, isBlank, isLiteral, isNumeric
|
|
11
|
-
* - Language: LANGMATCHES
|
|
12
|
-
* - Logical: AND, OR (with $in optimization)
|
|
13
|
-
* - Set operations: IN, NOT IN
|
|
14
|
-
* - Existence: BOUND, !BOUND
|
|
15
|
-
*/
|
|
16
|
-
import type { Algebra } from 'sparqlalgebrajs';
|
|
17
|
-
import type { TermOperators } from '../quint/types';
|
|
18
|
-
/**
|
|
19
|
-
* Pushdown filters extracted from SPARQL FILTER clauses
|
|
20
|
-
* Maps variable names to their filter conditions
|
|
21
|
-
*/
|
|
22
|
-
export interface PushdownFilters {
|
|
23
|
-
[varName: string]: TermOperators;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Result of extracting pushdown filters from an expression
|
|
27
|
-
*/
|
|
28
|
-
export interface PushdownResult {
|
|
29
|
-
filters: PushdownFilters;
|
|
30
|
-
remainder: Algebra.Expression | null;
|
|
31
|
-
orBranches?: PushdownFilters[];
|
|
32
|
-
orNonPushdownBranches?: Algebra.Expression[];
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* FilterPushdownExtractor extracts pushdownable conditions from FILTER expressions
|
|
36
|
-
*/
|
|
37
|
-
export declare class FilterPushdownExtractor {
|
|
38
|
-
/**
|
|
39
|
-
* Extract pushdownable filters from an expression
|
|
40
|
-
* Returns filters that can be pushed down and the remaining expression
|
|
41
|
-
*/
|
|
42
|
-
extractPushdownFilters(expr: Algebra.Expression, pattern: Algebra.Pattern): PushdownResult;
|
|
43
|
-
/**
|
|
44
|
-
* Handle OR expression pushdown
|
|
45
|
-
* - Same variable equality: convert to $in
|
|
46
|
-
* - Different variables: create OR branches for separate queries
|
|
47
|
-
* - Mixed (pushdownable + non-pushdownable): orBranches + orNonPushdownBranches
|
|
48
|
-
*/
|
|
49
|
-
private extractOrPushdown;
|
|
50
|
-
/**
|
|
51
|
-
* Try to convert same-variable equalities to $in
|
|
52
|
-
*/
|
|
53
|
-
private tryConvertToIn;
|
|
54
|
-
/**
|
|
55
|
-
* Try to extract pushdown filter from a single operator expression
|
|
56
|
-
*/
|
|
57
|
-
tryExtractSinglePushdown(expr: Algebra.OperatorExpression, pattern: Algebra.Pattern): PushdownFilters | null;
|
|
58
|
-
/**
|
|
59
|
-
* Extract comparison operator info
|
|
60
|
-
*/
|
|
61
|
-
private extractComparison;
|
|
62
|
-
private mapComparisonOp;
|
|
63
|
-
private reverseComparisonOp;
|
|
64
|
-
/**
|
|
65
|
-
* Serialize value for comparison
|
|
66
|
-
*
|
|
67
|
-
* Range comparison handling:
|
|
68
|
-
* - $gt, $lte: Use fpstring + max suffix to be >= all values with same fpstring
|
|
69
|
-
* - $lt, $gte: Use fpstring only (prefix), stored values are always > prefix
|
|
70
|
-
* - $eq, $ne: Use exact serialization
|
|
71
|
-
*/
|
|
72
|
-
serializeForComparison(value: string, datatype: string | undefined, filterOp: string): string;
|
|
73
|
-
serializeExactValue(value: string, datatype?: string): string;
|
|
74
|
-
}
|