@comake/skl-js-engine 1.5.2 → 1.5.4

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.
Files changed (304) hide show
  1. package/package.json +1 -1
  2. package/src/SklEngine.ts +8 -1
  3. package/src/util/TripleUtil.ts +22 -2
  4. package/dist/JsExecutor/PermissionBuilder.d.ts +0 -14
  5. package/dist/JsExecutor/PermissionBuilder.d.ts.map +0 -1
  6. package/dist/JsExecutor/PermissionBuilder.js +0 -58
  7. package/dist/JsExecutor/PermissionBuilder.js.map +0 -1
  8. package/dist/JsExecutor/constants.d.ts +0 -27
  9. package/dist/JsExecutor/constants.d.ts.map +0 -1
  10. package/dist/JsExecutor/constants.js +0 -30
  11. package/dist/JsExecutor/constants.js.map +0 -1
  12. package/dist/JsExecutor/denoUtils.d.ts +0 -10
  13. package/dist/JsExecutor/denoUtils.d.ts.map +0 -1
  14. package/dist/JsExecutor/denoUtils.js +0 -24
  15. package/dist/JsExecutor/denoUtils.js.map +0 -1
  16. package/dist/JsExecutor/errors.d.ts +0 -40
  17. package/dist/JsExecutor/errors.d.ts.map +0 -1
  18. package/dist/JsExecutor/errors.js +0 -67
  19. package/dist/JsExecutor/errors.js.map +0 -1
  20. package/dist/JsExecutor/examples/basic/index.d.ts +0 -1
  21. package/dist/JsExecutor/examples/basic/index.d.ts.map +0 -1
  22. package/dist/JsExecutor/examples/basic/index.js +0 -46
  23. package/dist/JsExecutor/examples/basic/index.js.map +0 -1
  24. package/dist/JsExecutor/examples/basic/process.d.ts +0 -1
  25. package/dist/JsExecutor/examples/basic/process.d.ts.map +0 -1
  26. package/dist/JsExecutor/examples/basic/process.js +0 -34
  27. package/dist/JsExecutor/examples/basic/process.js.map +0 -1
  28. package/dist/JsExecutor/examples/jsExecutor/index.d.ts +0 -2
  29. package/dist/JsExecutor/examples/jsExecutor/index.d.ts.map +0 -1
  30. package/dist/JsExecutor/examples/jsExecutor/index.js +0 -47
  31. package/dist/JsExecutor/examples/jsExecutor/index.js.map +0 -1
  32. package/dist/JsExecutor/examples/jsExecutor/process.d.ts +0 -2
  33. package/dist/JsExecutor/examples/jsExecutor/process.d.ts.map +0 -1
  34. package/dist/JsExecutor/examples/jsExecutor/process.js +0 -58
  35. package/dist/JsExecutor/examples/jsExecutor/process.js.map +0 -1
  36. package/dist/JsExecutor/index.d.ts +0 -7
  37. package/dist/JsExecutor/index.d.ts.map +0 -1
  38. package/dist/JsExecutor/index.js +0 -36
  39. package/dist/JsExecutor/index.js.map +0 -1
  40. package/dist/JsExecutor/jsExecutor.d.ts +0 -68
  41. package/dist/JsExecutor/jsExecutor.d.ts.map +0 -1
  42. package/dist/JsExecutor/jsExecutor.js +0 -171
  43. package/dist/JsExecutor/jsExecutor.js.map +0 -1
  44. package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts +0 -165
  45. package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts.map +0 -1
  46. package/dist/JsExecutor/jsonRpc/JsonRpcClient.js +0 -335
  47. package/dist/JsExecutor/jsonRpc/JsonRpcClient.js.map +0 -1
  48. package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts +0 -125
  49. package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts.map +0 -1
  50. package/dist/JsExecutor/jsonRpc/JsonRpcServer.js +0 -391
  51. package/dist/JsExecutor/jsonRpc/JsonRpcServer.js.map +0 -1
  52. package/dist/JsExecutor/jsonRpc/index.d.ts +0 -4
  53. package/dist/JsExecutor/jsonRpc/index.d.ts.map +0 -1
  54. package/dist/JsExecutor/jsonRpc/index.js +0 -23
  55. package/dist/JsExecutor/jsonRpc/index.js.map +0 -1
  56. package/dist/JsExecutor/jsonRpc/types.d.ts +0 -193
  57. package/dist/JsExecutor/jsonRpc/types.d.ts.map +0 -1
  58. package/dist/JsExecutor/jsonRpc/types.js +0 -37
  59. package/dist/JsExecutor/jsonRpc/types.js.map +0 -1
  60. package/dist/JsExecutor/transport/Transport.d.ts +0 -74
  61. package/dist/JsExecutor/transport/Transport.d.ts.map +0 -1
  62. package/dist/JsExecutor/transport/Transport.js +0 -14
  63. package/dist/JsExecutor/transport/Transport.js.map +0 -1
  64. package/dist/JsExecutor/transport/base/BaseTransport.d.ts +0 -51
  65. package/dist/JsExecutor/transport/base/BaseTransport.d.ts.map +0 -1
  66. package/dist/JsExecutor/transport/base/BaseTransport.js +0 -68
  67. package/dist/JsExecutor/transport/base/BaseTransport.js.map +0 -1
  68. package/dist/JsExecutor/transport/index.d.ts +0 -13
  69. package/dist/JsExecutor/transport/index.d.ts.map +0 -1
  70. package/dist/JsExecutor/transport/index.js +0 -36
  71. package/dist/JsExecutor/transport/index.js.map +0 -1
  72. package/dist/JsExecutor/transport/process/ProcessManager.d.ts +0 -96
  73. package/dist/JsExecutor/transport/process/ProcessManager.d.ts.map +0 -1
  74. package/dist/JsExecutor/transport/process/ProcessManager.js +0 -219
  75. package/dist/JsExecutor/transport/process/ProcessManager.js.map +0 -1
  76. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts +0 -87
  77. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts.map +0 -1
  78. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.js +0 -219
  79. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.js.map +0 -1
  80. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts +0 -81
  81. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts.map +0 -1
  82. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.js +0 -259
  83. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.js.map +0 -1
  84. package/dist/JsExecutor/transport/utils/MessageUtils.d.ts +0 -68
  85. package/dist/JsExecutor/transport/utils/MessageUtils.d.ts.map +0 -1
  86. package/dist/JsExecutor/transport/utils/MessageUtils.js +0 -135
  87. package/dist/JsExecutor/transport/utils/MessageUtils.js.map +0 -1
  88. package/dist/JsExecutor/transport/utils/PollingUtils.d.ts +0 -53
  89. package/dist/JsExecutor/transport/utils/PollingUtils.d.ts.map +0 -1
  90. package/dist/JsExecutor/transport/utils/PollingUtils.js +0 -92
  91. package/dist/JsExecutor/transport/utils/PollingUtils.js.map +0 -1
  92. package/dist/JsExecutor/types.d.ts +0 -113
  93. package/dist/JsExecutor/types.d.ts.map +0 -1
  94. package/dist/JsExecutor/types.js +0 -3
  95. package/dist/JsExecutor/types.js.map +0 -1
  96. package/dist/SklEngine.d.ts +0 -132
  97. package/dist/SklEngine.d.ts.map +0 -1
  98. package/dist/SklEngine.js +0 -1501
  99. package/dist/SklEngine.js.map +0 -1
  100. package/dist/SklEngineOptions.d.ts +0 -58
  101. package/dist/SklEngineOptions.d.ts.map +0 -1
  102. package/dist/SklEngineOptions.js +0 -3
  103. package/dist/SklEngineOptions.js.map +0 -1
  104. package/dist/constants.d.ts +0 -96
  105. package/dist/constants.d.ts.map +0 -1
  106. package/dist/constants.js +0 -103
  107. package/dist/constants.js.map +0 -1
  108. package/dist/customCapabilities.d.ts +0 -22
  109. package/dist/customCapabilities.d.ts.map +0 -1
  110. package/dist/customCapabilities.js +0 -45
  111. package/dist/customCapabilities.js.map +0 -1
  112. package/dist/examples/customCapabilitiesExample.d.ts +0 -2
  113. package/dist/examples/customCapabilitiesExample.d.ts.map +0 -1
  114. package/dist/examples/customCapabilitiesExample.js +0 -59
  115. package/dist/examples/customCapabilitiesExample.js.map +0 -1
  116. package/dist/executor.js +0 -216
  117. package/dist/hooks/globalHooks.d.ts +0 -50
  118. package/dist/hooks/globalHooks.d.ts.map +0 -1
  119. package/dist/hooks/globalHooks.js +0 -164
  120. package/dist/hooks/globalHooks.js.map +0 -1
  121. package/dist/hooks/types.d.ts +0 -9
  122. package/dist/hooks/types.d.ts.map +0 -1
  123. package/dist/hooks/types.js +0 -3
  124. package/dist/hooks/types.js.map +0 -1
  125. package/dist/index.d.ts +0 -41
  126. package/dist/index.d.ts.map +0 -1
  127. package/dist/index.js +0 -68
  128. package/dist/index.js.map +0 -1
  129. package/dist/logger.d.ts +0 -35
  130. package/dist/logger.d.ts.map +0 -1
  131. package/dist/logger.js +0 -119
  132. package/dist/logger.js.map +0 -1
  133. package/dist/mapping/Mapper.d.ts +0 -13
  134. package/dist/mapping/Mapper.d.ts.map +0 -1
  135. package/dist/mapping/Mapper.js +0 -64
  136. package/dist/mapping/Mapper.js.map +0 -1
  137. package/dist/storage/FindOperator.d.ts +0 -19
  138. package/dist/storage/FindOperator.d.ts.map +0 -1
  139. package/dist/storage/FindOperator.js +0 -23
  140. package/dist/storage/FindOperator.js.map +0 -1
  141. package/dist/storage/FindOptionsTypes.d.ts +0 -79
  142. package/dist/storage/FindOptionsTypes.d.ts.map +0 -1
  143. package/dist/storage/FindOptionsTypes.js +0 -3
  144. package/dist/storage/FindOptionsTypes.js.map +0 -1
  145. package/dist/storage/GroupOptionTypes.d.ts +0 -29
  146. package/dist/storage/GroupOptionTypes.d.ts.map +0 -1
  147. package/dist/storage/GroupOptionTypes.js +0 -3
  148. package/dist/storage/GroupOptionTypes.js.map +0 -1
  149. package/dist/storage/operator/And.d.ts +0 -4
  150. package/dist/storage/operator/And.d.ts.map +0 -1
  151. package/dist/storage/operator/And.js +0 -13
  152. package/dist/storage/operator/And.js.map +0 -1
  153. package/dist/storage/operator/Contains.d.ts +0 -3
  154. package/dist/storage/operator/Contains.d.ts.map +0 -1
  155. package/dist/storage/operator/Contains.js +0 -13
  156. package/dist/storage/operator/Contains.js.map +0 -1
  157. package/dist/storage/operator/Equal.d.ts +0 -5
  158. package/dist/storage/operator/Equal.d.ts.map +0 -1
  159. package/dist/storage/operator/Equal.js +0 -13
  160. package/dist/storage/operator/Equal.js.map +0 -1
  161. package/dist/storage/operator/Exists.d.ts +0 -3
  162. package/dist/storage/operator/Exists.d.ts.map +0 -1
  163. package/dist/storage/operator/Exists.js +0 -10
  164. package/dist/storage/operator/Exists.js.map +0 -1
  165. package/dist/storage/operator/GreaterThan.d.ts +0 -4
  166. package/dist/storage/operator/GreaterThan.d.ts.map +0 -1
  167. package/dist/storage/operator/GreaterThan.js +0 -13
  168. package/dist/storage/operator/GreaterThan.js.map +0 -1
  169. package/dist/storage/operator/GreaterThanOrEqual.d.ts +0 -4
  170. package/dist/storage/operator/GreaterThanOrEqual.d.ts.map +0 -1
  171. package/dist/storage/operator/GreaterThanOrEqual.js +0 -13
  172. package/dist/storage/operator/GreaterThanOrEqual.js.map +0 -1
  173. package/dist/storage/operator/In.d.ts +0 -4
  174. package/dist/storage/operator/In.d.ts.map +0 -1
  175. package/dist/storage/operator/In.js +0 -13
  176. package/dist/storage/operator/In.js.map +0 -1
  177. package/dist/storage/operator/Inverse.d.ts +0 -3
  178. package/dist/storage/operator/Inverse.d.ts.map +0 -1
  179. package/dist/storage/operator/Inverse.js +0 -13
  180. package/dist/storage/operator/Inverse.js.map +0 -1
  181. package/dist/storage/operator/InversePath.d.ts +0 -7
  182. package/dist/storage/operator/InversePath.d.ts.map +0 -1
  183. package/dist/storage/operator/InversePath.js +0 -13
  184. package/dist/storage/operator/InversePath.js.map +0 -1
  185. package/dist/storage/operator/InverseRelation.d.ts +0 -9
  186. package/dist/storage/operator/InverseRelation.d.ts.map +0 -1
  187. package/dist/storage/operator/InverseRelation.js +0 -13
  188. package/dist/storage/operator/InverseRelation.js.map +0 -1
  189. package/dist/storage/operator/InverseRelationOrder.d.ts +0 -8
  190. package/dist/storage/operator/InverseRelationOrder.d.ts.map +0 -1
  191. package/dist/storage/operator/InverseRelationOrder.js +0 -13
  192. package/dist/storage/operator/InverseRelationOrder.js.map +0 -1
  193. package/dist/storage/operator/LessThan.d.ts +0 -4
  194. package/dist/storage/operator/LessThan.d.ts.map +0 -1
  195. package/dist/storage/operator/LessThan.js +0 -13
  196. package/dist/storage/operator/LessThan.js.map +0 -1
  197. package/dist/storage/operator/LessThanOrEqual.d.ts +0 -4
  198. package/dist/storage/operator/LessThanOrEqual.d.ts.map +0 -1
  199. package/dist/storage/operator/LessThanOrEqual.js +0 -13
  200. package/dist/storage/operator/LessThanOrEqual.js.map +0 -1
  201. package/dist/storage/operator/Not.d.ts +0 -3
  202. package/dist/storage/operator/Not.d.ts.map +0 -1
  203. package/dist/storage/operator/Not.js +0 -13
  204. package/dist/storage/operator/Not.js.map +0 -1
  205. package/dist/storage/operator/OneOrMorePath.d.ts +0 -7
  206. package/dist/storage/operator/OneOrMorePath.d.ts.map +0 -1
  207. package/dist/storage/operator/OneOrMorePath.js +0 -13
  208. package/dist/storage/operator/OneOrMorePath.js.map +0 -1
  209. package/dist/storage/operator/Or.d.ts +0 -4
  210. package/dist/storage/operator/Or.d.ts.map +0 -1
  211. package/dist/storage/operator/Or.js +0 -13
  212. package/dist/storage/operator/Or.js.map +0 -1
  213. package/dist/storage/operator/Sequence.d.ts +0 -3
  214. package/dist/storage/operator/Sequence.d.ts.map +0 -1
  215. package/dist/storage/operator/Sequence.js +0 -13
  216. package/dist/storage/operator/Sequence.js.map +0 -1
  217. package/dist/storage/operator/SequencePath.d.ts +0 -7
  218. package/dist/storage/operator/SequencePath.d.ts.map +0 -1
  219. package/dist/storage/operator/SequencePath.js +0 -13
  220. package/dist/storage/operator/SequencePath.js.map +0 -1
  221. package/dist/storage/operator/ZeroOrMorePath.d.ts +0 -7
  222. package/dist/storage/operator/ZeroOrMorePath.d.ts.map +0 -1
  223. package/dist/storage/operator/ZeroOrMorePath.js +0 -13
  224. package/dist/storage/operator/ZeroOrMorePath.js.map +0 -1
  225. package/dist/storage/query-adapter/QueryAdapter.d.ts +0 -99
  226. package/dist/storage/query-adapter/QueryAdapter.d.ts.map +0 -1
  227. package/dist/storage/query-adapter/QueryAdapter.js +0 -3
  228. package/dist/storage/query-adapter/QueryAdapter.js.map +0 -1
  229. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts +0 -40
  230. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts.map +0 -1
  231. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js +0 -315
  232. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js.map +0 -1
  233. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts +0 -34
  234. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts.map +0 -1
  235. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.js +0 -3
  236. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.js.map +0 -1
  237. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts +0 -104
  238. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts.map +0 -1
  239. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js +0 -1210
  240. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js.map +0 -1
  241. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts +0 -41
  242. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts.map +0 -1
  243. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.js +0 -305
  244. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.js.map +0 -1
  245. package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts +0 -5
  246. package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts.map +0 -1
  247. package/dist/storage/query-adapter/sparql/VariableGenerator.js +0 -14
  248. package/dist/storage/query-adapter/sparql/VariableGenerator.js.map +0 -1
  249. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts +0 -19
  250. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts.map +0 -1
  251. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.js +0 -90
  252. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.js.map +0 -1
  253. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts +0 -27
  254. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts.map +0 -1
  255. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.js +0 -116
  256. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.js.map +0 -1
  257. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts +0 -34
  258. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts.map +0 -1
  259. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.js +0 -3
  260. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.js.map +0 -1
  261. package/dist/tools/explain-findall-sparql.d.ts +0 -2
  262. package/dist/tools/explain-findall-sparql.d.ts.map +0 -1
  263. package/dist/tools/explain-findall-sparql.js +0 -303
  264. package/dist/tools/explain-findall-sparql.js.map +0 -1
  265. package/dist/util/PerformanceLogger.d.ts +0 -28
  266. package/dist/util/PerformanceLogger.d.ts.map +0 -1
  267. package/dist/util/PerformanceLogger.js +0 -223
  268. package/dist/util/PerformanceLogger.js.map +0 -1
  269. package/dist/util/ReadCacheHelper.d.ts +0 -14
  270. package/dist/util/ReadCacheHelper.d.ts.map +0 -1
  271. package/dist/util/ReadCacheHelper.js +0 -61
  272. package/dist/util/ReadCacheHelper.js.map +0 -1
  273. package/dist/util/SparqlUtil.d.ts +0 -72
  274. package/dist/util/SparqlUtil.d.ts.map +0 -1
  275. package/dist/util/SparqlUtil.js +0 -456
  276. package/dist/util/SparqlUtil.js.map +0 -1
  277. package/dist/util/TripleUtil.d.ts +0 -10
  278. package/dist/util/TripleUtil.d.ts.map +0 -1
  279. package/dist/util/TripleUtil.js +0 -402
  280. package/dist/util/TripleUtil.js.map +0 -1
  281. package/dist/util/Types.d.ts +0 -271
  282. package/dist/util/Types.d.ts.map +0 -1
  283. package/dist/util/Types.js +0 -3
  284. package/dist/util/Types.js.map +0 -1
  285. package/dist/util/Util.d.ts +0 -26
  286. package/dist/util/Util.d.ts.map +0 -1
  287. package/dist/util/Util.js +0 -138
  288. package/dist/util/Util.js.map +0 -1
  289. package/dist/util/Vocabularies/Shared.d.ts +0 -13
  290. package/dist/util/Vocabularies/Shared.d.ts.map +0 -1
  291. package/dist/util/Vocabularies/Shared.js +0 -96
  292. package/dist/util/Vocabularies/Shared.js.map +0 -1
  293. package/dist/util/Vocabularies/helper.d.ts +0 -5
  294. package/dist/util/Vocabularies/helper.d.ts.map +0 -1
  295. package/dist/util/Vocabularies/helper.js +0 -10
  296. package/dist/util/Vocabularies/helper.js.map +0 -1
  297. package/dist/util/Vocabularies/index.d.ts +0 -8
  298. package/dist/util/Vocabularies/index.d.ts.map +0 -1
  299. package/dist/util/Vocabularies/index.js +0 -114
  300. package/dist/util/Vocabularies/index.js.map +0 -1
  301. package/dist/util/safeJsonStringify.d.ts +0 -1
  302. package/dist/util/safeJsonStringify.d.ts.map +0 -1
  303. package/dist/util/safeJsonStringify.js +0 -19
  304. package/dist/util/safeJsonStringify.js.map +0 -1
@@ -1,315 +0,0 @@
1
- "use strict";
2
- /* eslint-disable capitalized-comments */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.SparqlQueryAdapter = void 0;
5
- const logger_1 = require("../../../logger");
6
- const PerformanceLogger_1 = require("../../../util/PerformanceLogger");
7
- const SparqlUtil_1 = require("../../../util/SparqlUtil");
8
- const TripleUtil_1 = require("../../../util/TripleUtil");
9
- const Util_1 = require("../../../util/Util");
10
- const InMemorySparqlQueryExecutor_1 = require("./query-executor/InMemorySparqlQueryExecutor");
11
- const SparqlEndpointQueryExecutor_1 = require("./query-executor/SparqlEndpointQueryExecutor");
12
- const SparqlQueryBuilder_1 = require("./SparqlQueryBuilder");
13
- const SparqlUpdateBuilder_1 = require("./SparqlUpdateBuilder");
14
- /**
15
- * A {@link QueryAdapter} that stores data in a database through a sparql endpoint.
16
- */
17
- class SparqlQueryAdapter {
18
- constructor(options) {
19
- this.setTimestamps = options.setTimestamps ?? false;
20
- switch (options.type) {
21
- case 'memory':
22
- this.queryExecutor = new InMemorySparqlQueryExecutor_1.InMemorySparqlQueryExecutor();
23
- break;
24
- case 'sparql':
25
- this.queryExecutor = new SparqlEndpointQueryExecutor_1.SparqlEndpointQueryExecutor(options);
26
- break;
27
- default:
28
- throw new Error('No schema source found in setSchema args.');
29
- }
30
- this.logger = logger_1.Logger.getInstance();
31
- }
32
- async executeRawQuery(query) {
33
- const response = await this.queryExecutor.executeSparqlSelectAndGetDataRaw(query);
34
- if (response.length === 0) {
35
- return [];
36
- }
37
- return (0, SparqlUtil_1.selectQueryResultsAsJSValues)(response);
38
- }
39
- async executeRawConstructQuery(query, frame) {
40
- const response = await this.queryExecutor.executeSparqlConstructAndGetDataRaw(query);
41
- if (response.length === 0) {
42
- return { '@graph': [] };
43
- }
44
- return await (0, TripleUtil_1.triplesToJsonldWithFrame)(response, frame);
45
- }
46
- async executeRawUpdate(query) {
47
- await this.queryExecutor.executeRawSparqlUpdate(query);
48
- }
49
- async find(options) {
50
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.find', async () => {
51
- const jsonld = await this.findAllAsJsonLd({ ...options, limit: 1 });
52
- if (Array.isArray(jsonld) && !options?.skipFraming) {
53
- if (jsonld.length === 0) {
54
- return null;
55
- }
56
- if (jsonld.length === 1) {
57
- return jsonld[0];
58
- }
59
- }
60
- return jsonld;
61
- }, { options });
62
- }
63
- async findBy(where) {
64
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.findBy', async () => this.find({ where }), { where });
65
- }
66
- async findAll(options) {
67
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.findAll', async () => {
68
- const jsonld = await this.findAllAsJsonLd(options);
69
- if (Array.isArray(jsonld)) {
70
- return jsonld;
71
- }
72
- return [jsonld];
73
- }, { options });
74
- }
75
- async findAllAsJsonLd(options) {
76
- const queryBuilder = new SparqlQueryBuilder_1.SparqlQueryBuilder();
77
- const { where, selectionTriples, entityOrder, rdfTypes } = await this.buildFindAllQueryData(queryBuilder, options);
78
- if (entityOrder && entityOrder.length === 0) {
79
- return [];
80
- }
81
- const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(SparqlUtil_1.entityVariable, options);
82
- const query = queryBuilder.buildConstructFromEntitySelectQuery(where, selectionTriples, options?.select, queryData.selectVariables);
83
- return await this.executeEntitySelectQuery(query, options, entityOrder, rdfTypes);
84
- }
85
- async buildFindAllQueryData(queryBuilder, options) {
86
- const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(SparqlUtil_1.entityVariable, options);
87
- const selectQueryData = queryBuilder.buildEntitySelectPatternsFromOptions(SparqlUtil_1.entityVariable, {
88
- ...options,
89
- relations: undefined
90
- });
91
- let rdfTypes;
92
- const wherePatterns = [...selectQueryData.where, ...selectQueryData.graphWhere];
93
- wherePatterns.push({
94
- type: 'bgp',
95
- triples: [
96
- {
97
- subject: SparqlUtil_1.entityVariable,
98
- predicate: SparqlUtil_1.rdfTypeNamedNode,
99
- object: SparqlUtil_1.rdfTypeVariable
100
- }
101
- ]
102
- });
103
- const entitySelectVariable = options?.entitySelectVariable ?? SparqlUtil_1.entityVariable;
104
- const groupBy = (0, Util_1.ensureArray)(selectQueryData?.group ?? options?.group ?? []);
105
- groupBy.push(entitySelectVariable);
106
- // All non-aggregated variables in SELECT must be in GROUP BY
107
- for (const selectVariable of selectQueryData.selectVariables ?? []) {
108
- if (!('aggregation' in selectVariable.expression) && selectVariable.expression.constructor.name === 'Variable') {
109
- groupBy.push(selectVariable.expression);
110
- }
111
- }
112
- const entitySelectQuery = selectQueryData.where.length > 0
113
- ? (0, SparqlUtil_1.createSparqlSelectQuery)([
114
- entitySelectVariable,
115
- // (GROUP_CONCAT(DISTINCT str(?rdfType); SEPARATOR = " | ") AS ?rdfTypes)
116
- {
117
- expression: {
118
- type: "aggregate",
119
- aggregation: "group_concat",
120
- separator: " | ",
121
- distinct: true,
122
- expression: {
123
- type: "operation",
124
- operator: "STR",
125
- args: [SparqlUtil_1.rdfTypeVariable]
126
- }
127
- },
128
- variable: SparqlUtil_1.rdfTypesVariable
129
- },
130
- ...selectQueryData.selectVariables?.map(({ variable, expression }) => {
131
- if (!expression)
132
- return variable;
133
- return {
134
- variable,
135
- expression
136
- };
137
- }) ?? []
138
- ], wherePatterns, selectQueryData.orders, groupBy, options?.limit, options?.offset)
139
- : undefined;
140
- let entityOrder;
141
- /* If relations are present add them to where */
142
- if ((queryData?.relationsQueryData?.unionPatterns ?? []).length > 0) {
143
- queryData?.relationsQueryData?.unionPatterns.push((0, SparqlUtil_1.createSparqlGraphPattern)(SparqlUtil_1.entityVariable, [(0, SparqlUtil_1.createSparqlBasicGraphPattern)([SparqlUtil_1.entityGraphTriple])]));
144
- }
145
- if (queryData.orders.length > 0 && options?.limit !== 1 && entitySelectQuery) {
146
- const entitySelectResponse = await this.queryExecutor.executeSparqlSelectAndGetData(entitySelectQuery);
147
- const valuesByVariable = (0, SparqlUtil_1.groupSelectQueryResultsByKey)(entitySelectResponse);
148
- entityOrder = (0, SparqlUtil_1.getEntityVariableValuesFromVariables)(valuesByVariable);
149
- if (entityOrder.length === 0) {
150
- return {
151
- where: queryData.where,
152
- selectionTriples: queryData.graphSelectionTriples,
153
- entityOrder: []
154
- };
155
- }
156
- const variableValueFilters = (0, SparqlUtil_1.createValuesPatternsForVariables)({
157
- [SparqlUtil_1.entityVariable.value]: valuesByVariable[SparqlUtil_1.entityVariable.value]
158
- });
159
- queryData.graphWhere = [...variableValueFilters, ...queryData.graphWhere];
160
- }
161
- else if (entitySelectQuery) {
162
- // We need entity IDs for framing when:
163
- // 1. There are relations (to distinguish root entities from related entities)
164
- // 2. There's a type constraint (to handle subclass matching where SPARQL finds subclasses but JSON-LD needs exact types)
165
- const hasRelations = (queryData?.relationsQueryData?.unionPatterns ?? []).length > 0;
166
- const hasTypeConstraint = options?.where?.type !== undefined;
167
- if ((hasRelations || hasTypeConstraint) && queryData.orders.length > 0) {
168
- const entitySelectResponse = await this.queryExecutor.executeSparqlSelectAndGetData(entitySelectQuery);
169
- const valuesByVariable = (0, SparqlUtil_1.groupSelectQueryResultsByKey)(entitySelectResponse);
170
- entityOrder = queryData.orders.length > 0 ? (0, SparqlUtil_1.getEntityVariableValuesFromVariables)(valuesByVariable) : [];
171
- if (entityOrder.length === 0) {
172
- return {
173
- where: queryData.where,
174
- selectionTriples: queryData.graphSelectionTriples,
175
- entityOrder: []
176
- };
177
- }
178
- }
179
- else if (hasRelations || hasTypeConstraint) {
180
- const entitySelectResponse = await this.queryExecutor.executeSparqlSelectAndGetData(entitySelectQuery);
181
- const groupedResults = (0, SparqlUtil_1.groupSelectQueryResultsByKey)(entitySelectResponse);
182
- const valuesByVariable = (0, SparqlUtil_1.getRdfTypeVariableValuesFromVariables)(groupedResults);
183
- rdfTypes = [...new Set(valuesByVariable)];
184
- // Also get entity IDs for framing to distinguish root entities from related ones
185
- // entityOrder = getEntityVariableValuesFromVariables(groupedResults);
186
- // if (entityOrder.length === 0) {
187
- // return {
188
- // where: queryData.where,
189
- // selectionTriples: queryData.graphSelectionTriples,
190
- // entityOrder: [],
191
- // rdfTypes
192
- // };
193
- // }
194
- }
195
- // Always add the select group query to the CONSTRUCT
196
- const entitySelectGroupQuery = (0, SparqlUtil_1.createSparqlSelectGroup)([entitySelectQuery]);
197
- queryData.graphWhere.unshift(entitySelectGroupQuery);
198
- // queryData.graphWhere = [ ...queryData.where, ...queryData.graphWhere ];
199
- }
200
- return {
201
- where: queryData.graphWhere,
202
- selectionTriples: queryData.graphSelectionTriples,
203
- entityOrder,
204
- rdfTypes
205
- };
206
- }
207
- async executeEntitySelectQuery(query, options, entityOrder, rdfTypes) {
208
- const responseTriples = await this.queryExecutor.executeSparqlSelectAndGetData(query);
209
- return await (0, TripleUtil_1.triplesToJsonld)(responseTriples, options?.skipFraming, options?.relations, options?.where, entityOrder, rdfTypes);
210
- }
211
- async findAllBy(where) {
212
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.findAllBy', async () => this.findAll({ where }), { where });
213
- }
214
- async exists(options) {
215
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.exists', async () => {
216
- const queryBuilder = new SparqlQueryBuilder_1.SparqlQueryBuilder();
217
- const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(SparqlUtil_1.entityVariable, options);
218
- const values = queryData.graphWhere.filter((pattern) => pattern.type === 'values');
219
- const query = (0, SparqlUtil_1.creteSparqlAskQuery)([...values, ...queryData.where]);
220
- return await this.queryExecutor.executeAskQueryAndGetResponse(query);
221
- }, { options });
222
- }
223
- async count(options) {
224
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.count', async () => {
225
- const queryBuilder = new SparqlQueryBuilder_1.SparqlQueryBuilder();
226
- const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(SparqlUtil_1.entityVariable, options);
227
- const values = queryData.graphWhere.filter((pattern) => pattern.type === 'values');
228
- const query = (0, SparqlUtil_1.createSparqlCountSelectQuery)(SparqlUtil_1.entityVariable, [...values, ...queryData.where], queryData.orders, options?.offset);
229
- return await this.queryExecutor.executeSelectCountAndGetResponse(query);
230
- }, { options });
231
- }
232
- async save(entityOrEntities) {
233
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.save', async () => {
234
- const queryBuilder = new SparqlUpdateBuilder_1.SparqlUpdateBuilder({ setTimestamps: this.setTimestamps });
235
- const query = queryBuilder.buildUpdate(entityOrEntities);
236
- await this.queryExecutor.executeSparqlUpdate(query);
237
- return entityOrEntities;
238
- }, { entityCount: Array.isArray(entityOrEntities) ? entityOrEntities.length : 1 });
239
- }
240
- async groupBy(options) {
241
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.groupBy', async () => {
242
- const queryBuilder = new SparqlQueryBuilder_1.SparqlQueryBuilder();
243
- const { query: selectQuery, variableMapping } = await queryBuilder.buildGroupByQuery(options);
244
- const results = await this.queryExecutor.executeSparqlSelectAndGetData(selectQuery);
245
- // Create reverse mapping from path to variable name
246
- const reverseMapping = Object.entries(variableMapping).reduce((acc, [varName, path]) => {
247
- acc[path] = varName;
248
- return acc;
249
- }, {});
250
- // Transform results
251
- const groupResults = results.map(result => {
252
- const group = {};
253
- options.groupBy?.forEach(path => {
254
- const varName = reverseMapping[path];
255
- if (!varName) {
256
- throw new Error(`No variable mapping found for path: ${path}`);
257
- }
258
- const { value } = result[varName];
259
- // Try to convert to number if possible
260
- group[path] = Number.isNaN(Number(value)) ? value : Number(value);
261
- });
262
- if (options.dateGrouping) {
263
- const dateGroupVarName = reverseMapping.dateGroup;
264
- group.dateGroup = result[dateGroupVarName].value;
265
- }
266
- const countVarName = reverseMapping.count;
267
- const entityIdsVarName = reverseMapping.entityIds;
268
- return {
269
- group,
270
- count: Number.parseInt(result[countVarName].value, 10),
271
- entityIds: result[entityIdsVarName].value.split(' ')
272
- };
273
- });
274
- return {
275
- results: groupResults,
276
- meta: {
277
- totalCount: groupResults.reduce((sum, curr) => sum + curr.count, 0),
278
- dateRange: options.dateRange,
279
- groupings: options.groupBy || []
280
- }
281
- };
282
- }, { options });
283
- }
284
- async update(idOrIds, attributes) {
285
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.update', async () => {
286
- const queryBuilder = new SparqlUpdateBuilder_1.SparqlUpdateBuilder({ setTimestamps: this.setTimestamps });
287
- const query = queryBuilder.buildPartialUpdate(idOrIds, attributes);
288
- await this.queryExecutor.executeSparqlUpdate(query);
289
- }, { idCount: Array.isArray(idOrIds) ? idOrIds.length : 1 });
290
- }
291
- async delete(idOrIds) {
292
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.delete', async () => {
293
- const queryBuilder = new SparqlUpdateBuilder_1.SparqlUpdateBuilder();
294
- const query = queryBuilder.buildDeleteById(idOrIds);
295
- await this.queryExecutor.executeSparqlUpdate(query);
296
- }, { idCount: Array.isArray(idOrIds) ? idOrIds.length : 1 });
297
- }
298
- async destroy(entityOrEntities) {
299
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.destroy', async () => {
300
- const queryBuilder = new SparqlUpdateBuilder_1.SparqlUpdateBuilder();
301
- const query = queryBuilder.buildDelete(entityOrEntities);
302
- await this.queryExecutor.executeSparqlUpdate(query);
303
- return entityOrEntities;
304
- }, { entityCount: Array.isArray(entityOrEntities) ? entityOrEntities.length : 1 });
305
- }
306
- async destroyAll() {
307
- return PerformanceLogger_1.PerformanceLogger.withSpan('Adapter.destroyAll', async () => {
308
- const queryBuilder = new SparqlUpdateBuilder_1.SparqlUpdateBuilder();
309
- const query = queryBuilder.buildDeleteAll();
310
- await this.queryExecutor.executeSparqlUpdate(query);
311
- });
312
- }
313
- }
314
- exports.SparqlQueryAdapter = SparqlQueryAdapter;
315
- //# sourceMappingURL=SparqlQueryAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SparqlQueryAdapter.js","sourceRoot":"","sources":["../../../../src/storage/query-adapter/sparql/SparqlQueryAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable capitalized-comments */\n \n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable indent */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport type { OrArray } from '@comake/rmlmapper-js';\nimport type { GraphObject, NodeObject } from 'jsonld';\nimport type { Frame } from 'jsonld/jsonld-spec';\nimport type {\n AggregateExpression,\n ConstructQuery,\n Pattern,\n Triple,\n Variable\n} from 'sparqljs';\nimport { Logger } from '../../../logger';\nimport { PerformanceLogger } from '../../../util/PerformanceLogger';\nimport {\n createSparqlBasicGraphPattern, createSparqlCountSelectQuery, createSparqlGraphPattern,\n createSparqlSelectGroup,\n createSparqlSelectQuery,\n createValuesPatternsForVariables,\n creteSparqlAskQuery, entityGraphTriple, entityVariable, getEntityVariableValuesFromVariables,\n getRdfTypeVariableValuesFromVariables,\n groupSelectQueryResultsByKey,\n rdfTypeNamedNode,\n rdfTypesVariable,\n rdfTypeVariable,\n selectQueryResultsAsJSValues\n} from '../../../util/SparqlUtil';\nimport {\n triplesToJsonld,\n triplesToJsonldWithFrame\n} from '../../../util/TripleUtil';\nimport type { Entity } from '../../../util/Types';\nimport { ensureArray } from '../../../util/Util';\nimport type {\n FindAllOptions, FindCountOptions,\n FindExistsOptions, FindOneOptions, FindOptionsWhere\n} from '../../FindOptionsTypes';\nimport type { GroupByOptions, GroupByResponse, GroupResult } from '../../GroupOptionTypes';\nimport type { QueryAdapter, RawQueryResult } from '../QueryAdapter';\nimport { InMemorySparqlQueryExecutor } from './query-executor/InMemorySparqlQueryExecutor';\nimport { SparqlEndpointQueryExecutor } from './query-executor/SparqlEndpointQueryExecutor';\nimport type { QueryExecutor } from './query-executor/SparqlQueryExecutor';\nimport type { SparqlQueryAdapterOptions } from './SparqlQueryAdapterOptions';\nimport { SparqlQueryBuilder } from './SparqlQueryBuilder';\nimport { SparqlUpdateBuilder } from './SparqlUpdateBuilder';\n\n/**\n * A {@link QueryAdapter} that stores data in a database through a sparql endpoint.\n */\nexport class SparqlQueryAdapter implements QueryAdapter {\n protected readonly queryExecutor: QueryExecutor;\n private readonly setTimestamps: boolean;\n private readonly logger: Logger;\n\n public constructor(options: SparqlQueryAdapterOptions) {\n this.setTimestamps = options.setTimestamps ?? false;\n switch (options.type) {\n case 'memory':\n this.queryExecutor = new InMemorySparqlQueryExecutor();\n break;\n case 'sparql':\n this.queryExecutor = new SparqlEndpointQueryExecutor(options);\n break;\n default:\n throw new Error('No schema source found in setSchema args.');\n }\n this.logger = Logger.getInstance();\n }\n\n public async executeRawQuery<T extends RawQueryResult>(query: string): Promise<T[]> {\n const response =\n await this.queryExecutor.executeSparqlSelectAndGetDataRaw(query);\n if (response.length === 0) {\n return [] as T[];\n }\n return selectQueryResultsAsJSValues<T>(response);\n }\n\n public async executeRawConstructQuery(query: string, frame?: Frame): Promise<GraphObject> {\n const response = await this.queryExecutor.executeSparqlConstructAndGetDataRaw(query);\n if (response.length === 0) {\n return { '@graph': []};\n }\n return await triplesToJsonldWithFrame(response, frame);\n }\n\n public async executeRawUpdate(\n query: string\n ): Promise<void> {\n await this.queryExecutor.executeRawSparqlUpdate(query);\n }\n\n public async find(options?: FindOneOptions): Promise<Entity | null> {\n return PerformanceLogger.withSpan('Adapter.find', async() => {\n const jsonld = await this.findAllAsJsonLd({ ...options, limit: 1 });\n if (Array.isArray(jsonld) && !options?.skipFraming) {\n if (jsonld.length === 0) {\n return null;\n }\n if (jsonld.length === 1) {\n return jsonld[0] as Entity;\n }\n }\n return jsonld as Entity;\n }, { options });\n }\n\n public async findBy(where: FindOptionsWhere): Promise<Entity | null> {\n return PerformanceLogger.withSpan('Adapter.findBy', async() => this.find({ where }), { where });\n }\n\n public async findAll(options?: FindAllOptions): Promise<Entity[]> {\n return PerformanceLogger.withSpan('Adapter.findAll', async() => {\n const jsonld = await this.findAllAsJsonLd(options);\n if (Array.isArray(jsonld)) {\n return jsonld as Entity[];\n }\n return [ jsonld ] as Entity[];\n }, { options });\n }\n\n private async findAllAsJsonLd(options?: FindAllOptions): Promise<OrArray<NodeObject>> {\n const queryBuilder = new SparqlQueryBuilder();\n const { where, selectionTriples, entityOrder, rdfTypes } = await this.buildFindAllQueryData(queryBuilder, options);\n if (entityOrder && entityOrder.length === 0) {\n return [];\n }\n const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(entityVariable, options);\n const query = queryBuilder.buildConstructFromEntitySelectQuery(\n where,\n selectionTriples,\n options?.select,\n queryData.selectVariables\n );\n return await this.executeEntitySelectQuery(query, options, entityOrder, rdfTypes);\n }\n\n private async buildFindAllQueryData(\n queryBuilder: SparqlQueryBuilder,\n options?: FindAllOptions\n ): Promise<{ where: Pattern[]; selectionTriples: Triple[]; entityOrder?: string[], rdfTypes?: string[] }> {\n const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(entityVariable, options);\n const selectQueryData = queryBuilder.buildEntitySelectPatternsFromOptions(entityVariable, {\n ...options,\n relations: undefined\n });\n let rdfTypes: string[] | undefined;\n const wherePatterns: Pattern[] = [ ...selectQueryData.where, ...selectQueryData.graphWhere ];\n wherePatterns.push({\n type: 'bgp',\n triples: [\n {\n subject: entityVariable,\n predicate: rdfTypeNamedNode,\n object: rdfTypeVariable\n }\n ]\n });\n const entitySelectVariable = options?.entitySelectVariable ?? entityVariable;\n const groupBy = ensureArray(selectQueryData?.group ?? options?.group ?? []);\n groupBy.push(entitySelectVariable);\n // All non-aggregated variables in SELECT must be in GROUP BY\n for (const selectVariable of selectQueryData.selectVariables ?? []) {\n if (!('aggregation' in (selectVariable.expression as AggregateExpression)) && selectVariable.expression.constructor.name === 'Variable') {\n groupBy.push(selectVariable.expression as Variable);\n }\n }\n const entitySelectQuery = selectQueryData.where.length > 0\n ? createSparqlSelectQuery(\n [\n entitySelectVariable,\n // (GROUP_CONCAT(DISTINCT str(?rdfType); SEPARATOR = \" | \") AS ?rdfTypes)\n {\n expression: {\n type: \"aggregate\",\n aggregation: \"group_concat\",\n separator: \" | \",\n distinct: true,\n expression: {\n type: \"operation\",\n operator: \"STR\",\n args: [ rdfTypeVariable ]\n }\n },\n variable: rdfTypesVariable\n },\n ...selectQueryData.selectVariables?.map(({ variable, expression }) => {\n if (!expression) return variable;\n return {\n variable,\n expression\n };\n }) ?? []\n ],\n wherePatterns,\n selectQueryData.orders,\n groupBy,\n options?.limit,\n options?.offset\n )\n : undefined;\n let entityOrder: string[] | undefined;\n /* If relations are present add them to where */\n if ((queryData?.relationsQueryData?.unionPatterns ?? []).length > 0) {\n queryData?.relationsQueryData?.unionPatterns.push(\n createSparqlGraphPattern(entityVariable, [ createSparqlBasicGraphPattern([ entityGraphTriple ]) ])\n );\n }\n if (queryData.orders.length > 0 && options?.limit !== 1 && entitySelectQuery) {\n const entitySelectResponse =\n await this.queryExecutor.executeSparqlSelectAndGetData(entitySelectQuery);\n const valuesByVariable = groupSelectQueryResultsByKey(entitySelectResponse);\n entityOrder = getEntityVariableValuesFromVariables(valuesByVariable);\n if (entityOrder.length === 0) {\n return {\n where: queryData.where,\n selectionTriples: queryData.graphSelectionTriples,\n entityOrder: []\n };\n }\n const variableValueFilters = createValuesPatternsForVariables({\n [entityVariable.value]: valuesByVariable[entityVariable.value]\n });\n queryData.graphWhere = [ ...variableValueFilters, ...queryData.graphWhere ];\n } else if (entitySelectQuery) {\n // We need entity IDs for framing when:\n // 1. There are relations (to distinguish root entities from related entities)\n // 2. There's a type constraint (to handle subclass matching where SPARQL finds subclasses but JSON-LD needs exact types)\n const hasRelations = (queryData?.relationsQueryData?.unionPatterns ?? []).length > 0;\n const hasTypeConstraint = options?.where?.type !== undefined;\n\n if ((hasRelations || hasTypeConstraint) && queryData.orders.length > 0) {\n const entitySelectResponse =\n await this.queryExecutor.executeSparqlSelectAndGetData(entitySelectQuery);\n const valuesByVariable = groupSelectQueryResultsByKey(entitySelectResponse);\n entityOrder = queryData.orders.length > 0 ? getEntityVariableValuesFromVariables(valuesByVariable) : [];\n if (entityOrder.length === 0) {\n return {\n where: queryData.where,\n selectionTriples: queryData.graphSelectionTriples,\n entityOrder: []\n };\n }\n }\n else if (hasRelations || hasTypeConstraint) {\n const entitySelectResponse = await this.queryExecutor.executeSparqlSelectAndGetData(entitySelectQuery);\n const groupedResults = groupSelectQueryResultsByKey(entitySelectResponse);\n const valuesByVariable = getRdfTypeVariableValuesFromVariables(groupedResults);\n rdfTypes = [...new Set(valuesByVariable)];\n // Also get entity IDs for framing to distinguish root entities from related ones\n // entityOrder = getEntityVariableValuesFromVariables(groupedResults);\n // if (entityOrder.length === 0) {\n // return {\n // where: queryData.where,\n // selectionTriples: queryData.graphSelectionTriples,\n // entityOrder: [],\n // rdfTypes\n // };\n // }\n }\n\n // Always add the select group query to the CONSTRUCT\n const entitySelectGroupQuery = createSparqlSelectGroup([ entitySelectQuery ]);\n queryData.graphWhere.unshift(entitySelectGroupQuery);\n // queryData.graphWhere = [ ...queryData.where, ...queryData.graphWhere ];\n }\n return {\n where: queryData.graphWhere,\n selectionTriples: queryData.graphSelectionTriples,\n entityOrder,\n rdfTypes\n };\n }\n\n private async executeEntitySelectQuery(\n query: ConstructQuery,\n options?: FindAllOptions,\n entityOrder?: string[],\n rdfTypes?: string[]\n ): Promise<OrArray<NodeObject>> {\n const responseTriples = await this.queryExecutor.executeSparqlSelectAndGetData(query);\n return await triplesToJsonld(\n responseTriples,\n options?.skipFraming,\n options?.relations,\n options?.where,\n entityOrder,\n rdfTypes\n );\n }\n\n public async findAllBy(where: FindOptionsWhere): Promise<Entity[]> {\n return PerformanceLogger.withSpan('Adapter.findAllBy', async() => this.findAll({ where }), { where });\n }\n\n public async exists(options: FindExistsOptions): Promise<boolean> {\n return PerformanceLogger.withSpan('Adapter.exists', async() => {\n const queryBuilder = new SparqlQueryBuilder();\n const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(entityVariable, options);\n const values = queryData.graphWhere.filter((pattern): boolean => pattern.type === 'values');\n const query = creteSparqlAskQuery([ ...values, ...queryData.where ]);\n return await this.queryExecutor.executeAskQueryAndGetResponse(query);\n }, { options });\n }\n\n public async count(options: FindCountOptions): Promise<number> {\n return PerformanceLogger.withSpan('Adapter.count', async() => {\n const queryBuilder = new SparqlQueryBuilder();\n const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(entityVariable, options);\n const values = queryData.graphWhere.filter((pattern): boolean => pattern.type === 'values');\n const query = createSparqlCountSelectQuery(\n entityVariable,\n [ ...values, ...queryData.where ],\n queryData.orders,\n options?.offset\n );\n return await this.queryExecutor.executeSelectCountAndGetResponse(query);\n }, { options });\n }\n\n public async save(entity: Entity): Promise<Entity>;\n public async save(entities: Entity[]): Promise<Entity[]>;\n public async save(entityOrEntities: Entity | Entity[]): Promise<Entity | Entity[]> {\n return PerformanceLogger.withSpan('Adapter.save', async() => {\n const queryBuilder = new SparqlUpdateBuilder({ setTimestamps: this.setTimestamps });\n const query = queryBuilder.buildUpdate(entityOrEntities);\n await this.queryExecutor.executeSparqlUpdate(query);\n return entityOrEntities;\n }, { entityCount: Array.isArray(entityOrEntities) ? entityOrEntities.length : 1 });\n }\n\n public async groupBy(options: GroupByOptions): Promise<GroupByResponse> {\n return PerformanceLogger.withSpan('Adapter.groupBy', async() => {\n const queryBuilder = new SparqlQueryBuilder();\n const { query: selectQuery, variableMapping } = await queryBuilder.buildGroupByQuery(options);\n const results = await this.queryExecutor.executeSparqlSelectAndGetData(\n selectQuery\n );\n\n // Create reverse mapping from path to variable name\n const reverseMapping = Object.entries(variableMapping).reduce<Record<string, string>>((acc, [ varName, path ]) => {\n acc[path] = varName;\n return acc;\n }, {});\n\n // Transform results\n const groupResults: GroupResult[] = results.map(result => {\n const group: Record<string, string | number> = {};\n\n options.groupBy?.forEach(path => {\n const varName = reverseMapping[path];\n if (!varName) {\n throw new Error(`No variable mapping found for path: ${path}`);\n }\n const { value } = result[varName];\n // Try to convert to number if possible\n group[path] = Number.isNaN(Number(value)) ? value : Number(value);\n });\n\n if (options.dateGrouping) {\n const dateGroupVarName = reverseMapping.dateGroup;\n group.dateGroup = result[dateGroupVarName].value;\n }\n\n const countVarName = reverseMapping.count;\n const entityIdsVarName = reverseMapping.entityIds;\n\n return {\n group,\n count: Number.parseInt(result[countVarName].value, 10),\n entityIds: result[entityIdsVarName].value.split(' ')\n };\n });\n\n return {\n results: groupResults,\n meta: {\n totalCount: groupResults.reduce((sum, curr) => sum + curr.count, 0),\n dateRange: options.dateRange,\n groupings: options.groupBy || []\n }\n };\n }, { options });\n }\n\n public async update(id: string, attributes: Partial<Entity>): Promise<void>;\n public async update(ids: string[], attributes: Partial<Entity>): Promise<void>;\n public async update(idOrIds: string | string[], attributes: Partial<Entity>): Promise<void> {\n return PerformanceLogger.withSpan('Adapter.update', async() => {\n const queryBuilder = new SparqlUpdateBuilder({ setTimestamps: this.setTimestamps });\n const query = queryBuilder.buildPartialUpdate(idOrIds, attributes);\n await this.queryExecutor.executeSparqlUpdate(query);\n }, { idCount: Array.isArray(idOrIds) ? idOrIds.length : 1 });\n }\n\n public async delete(id: string): Promise<void>;\n public async delete(ids: string[]): Promise<void>;\n public async delete(idOrIds: string | string[]): Promise<void> {\n return PerformanceLogger.withSpan('Adapter.delete', async() => {\n const queryBuilder = new SparqlUpdateBuilder();\n const query = queryBuilder.buildDeleteById(idOrIds);\n await this.queryExecutor.executeSparqlUpdate(query);\n }, { idCount: Array.isArray(idOrIds) ? idOrIds.length : 1 });\n }\n\n public async destroy(entity: Entity): Promise<Entity>;\n public async destroy(entities: Entity[]): Promise<Entity[]>;\n public async destroy(entityOrEntities: Entity | Entity[]): Promise<Entity | Entity[]> {\n return PerformanceLogger.withSpan('Adapter.destroy', async() => {\n const queryBuilder = new SparqlUpdateBuilder();\n const query = queryBuilder.buildDelete(entityOrEntities);\n await this.queryExecutor.executeSparqlUpdate(query);\n return entityOrEntities;\n }, { entityCount: Array.isArray(entityOrEntities) ? entityOrEntities.length : 1 });\n }\n\n public async destroyAll(): Promise<void> {\n return PerformanceLogger.withSpan('Adapter.destroyAll', async() => {\n const queryBuilder = new SparqlUpdateBuilder();\n const query = queryBuilder.buildDeleteAll();\n await this.queryExecutor.executeSparqlUpdate(query);\n });\n }\n}\n"]}
@@ -1,34 +0,0 @@
1
- export declare type QueryAdapterType = 'memory' | 'sparql';
2
- interface BaseQueryAdapterOptions {
3
- /**
4
- * Query Adapter type. This value is required.
5
- */
6
- readonly type: QueryAdapterType;
7
- /**
8
- * Whether to set Dublic Core created and modified timestamps on saved entities. Defaults to false.
9
- */
10
- readonly setTimestamps?: boolean;
11
- }
12
- interface SparqlEndpointQueryAdapterOptions extends BaseQueryAdapterOptions {
13
- /**
14
- * Query Adapter type.
15
- */
16
- readonly type: 'sparql';
17
- /**
18
- * The location of the SPARQL endpoint. This value is required.
19
- */
20
- readonly endpointUrl: string;
21
- /**
22
- * The location of the SPARQL update endpoint. Defaults to the value of endpointUrl if not set.
23
- */
24
- readonly updateUrl?: string;
25
- }
26
- interface MemorySparqlQueryAdapterOptions extends BaseQueryAdapterOptions {
27
- /**
28
- * Query Adapter type.
29
- */
30
- readonly type: 'memory';
31
- }
32
- export declare type SparqlQueryAdapterOptions = MemorySparqlQueryAdapterOptions | SparqlEndpointQueryAdapterOptions;
33
- export {};
34
- //# sourceMappingURL=SparqlQueryAdapterOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SparqlQueryAdapterOptions.d.ts","sourceRoot":"","sources":["../../../../src/storage/query-adapter/sparql/SparqlQueryAdapterOptions.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnD,UAAU,uBAAuB;IAC/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,UAAU,iCAAkC,SAAQ,uBAAuB;IACzE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,+BAAgC,SAAQ,uBAAuB;IACvE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,oBAAY,yBAAyB,GACnC,+BAA+B,GAC/B,iCAAiC,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=SparqlQueryAdapterOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SparqlQueryAdapterOptions.js","sourceRoot":"","sources":["../../../../src/storage/query-adapter/sparql/SparqlQueryAdapterOptions.ts"],"names":[],"mappings":"","sourcesContent":["export type QueryAdapterType = 'memory' | 'sparql';\n\ninterface BaseQueryAdapterOptions {\n /**\n * Query Adapter type. This value is required.\n */\n readonly type: QueryAdapterType;\n /**\n * Whether to set Dublic Core created and modified timestamps on saved entities. Defaults to false.\n */\n readonly setTimestamps?: boolean;\n}\n\ninterface SparqlEndpointQueryAdapterOptions extends BaseQueryAdapterOptions {\n /**\n * Query Adapter type.\n */\n readonly type: 'sparql';\n /**\n * The location of the SPARQL endpoint. This value is required.\n */\n readonly endpointUrl: string;\n /**\n * The location of the SPARQL update endpoint. Defaults to the value of endpointUrl if not set.\n */\n readonly updateUrl?: string;\n}\n\ninterface MemorySparqlQueryAdapterOptions extends BaseQueryAdapterOptions {\n /**\n * Query Adapter type.\n */\n readonly type: 'memory';\n}\n\nexport type SparqlQueryAdapterOptions =\n| MemorySparqlQueryAdapterOptions\n| SparqlEndpointQueryAdapterOptions;\n"]}
@@ -1,104 +0,0 @@
1
- import type { Variable } from '@rdfjs/types';
2
- import type { ConstructQuery, Expression, OperationExpression, Ordering, Pattern, SelectQuery, Triple, ValuesPattern } from 'sparqljs';
3
- import type { FindOptionsOrder, FindOptionsRelations, FindOptionsSelect, FindOptionsWhere, SubQuery } from '../../FindOptionsTypes';
4
- import type { GroupByOptions } from '../../GroupOptionTypes';
5
- export interface NonGraphWhereQueryData {
6
- values: ValuesPattern[];
7
- triples: Triple[];
8
- filters: OperationExpression[];
9
- patterns?: Pattern[];
10
- binds?: Pattern[];
11
- }
12
- export interface WhereQueryData extends NonGraphWhereQueryData {
13
- graphValues: ValuesPattern[];
14
- graphTriples: Triple[];
15
- graphFilters: OperationExpression[];
16
- serviceTriples?: Record<string, Triple[]>;
17
- selectVariables?: {
18
- variable: Variable;
19
- }[];
20
- }
21
- export interface RelationsQueryData {
22
- patterns: Pattern[];
23
- selectionTriples: Triple[];
24
- unionPatterns: Pattern[];
25
- }
26
- export interface OrderQueryData {
27
- triples: Triple[];
28
- filters: OperationExpression[];
29
- orders: Ordering[];
30
- groupByParent?: boolean;
31
- patterns?: Pattern[];
32
- }
33
- export interface EntitySelectQueryData {
34
- where: Pattern[];
35
- orders: Ordering[];
36
- graphWhere: Pattern[];
37
- graphSelectionTriples: Triple[];
38
- group?: Variable;
39
- selectVariables: {
40
- variable: Variable;
41
- expression: Expression;
42
- }[];
43
- relationsQueryData?: RelationsQueryData;
44
- }
45
- export interface SparqlQueryBuilderOptions {
46
- where?: FindOptionsWhere;
47
- select?: FindOptionsSelect;
48
- order?: FindOptionsOrder;
49
- relations?: FindOptionsRelations;
50
- subQueries?: SubQuery[];
51
- }
52
- export declare class SparqlQueryBuilder {
53
- private readonly variableGenerator;
54
- constructor();
55
- buildEntitySelectPatternsFromOptions(subject: Variable, options?: SparqlQueryBuilderOptions): EntitySelectQueryData;
56
- private createSubQueryPatterns;
57
- private createEntityGraphFilterPattern;
58
- buildConstructFromEntitySelectQuery(graphWhere: Pattern[], graphSelectionTriples: Triple[], select?: FindOptionsSelect, selectVariables?: {
59
- variable: Variable;
60
- expression: Expression;
61
- }[]): ConstructQuery;
62
- private createWhereQueryData;
63
- private createWhereQueryDataForField;
64
- private createWhereQueryDataForAndClause;
65
- private createWhereQueryDataForOrClause;
66
- private createWhereQueryDataForIdValue;
67
- private createWhereQueryDataForType;
68
- private createWhereQueryDataFromKeyValue;
69
- private createWhereQueryDataForFindOperator;
70
- private pathOperatorToPropertyPath;
71
- private createWhereQueryDataForMultipleFindOperators;
72
- private createWhereQueryDataForNestedWhere;
73
- private createWhereQueryDataForValueObject;
74
- private valueObjectToTerm;
75
- private resolveFindOperatorAsExpressionWithMultipleValues;
76
- private resolveFindOperatorAsExpressionForId;
77
- private resolveValueToExpression;
78
- private buildNotOperationForMultiValued;
79
- private buildNotOperationForId;
80
- private resolveValueToTerm;
81
- private createOrderQueryData;
82
- private createOrderQueryDataForProperty;
83
- private createRelationsQueryData;
84
- private createRelationsQueryDataForInverseRelation;
85
- private createRelationsQueryDataForNestedRelation;
86
- private createVariable;
87
- private createSelectPattern;
88
- private createWherePatternsFromQueryData;
89
- private createGroupPatternForPath;
90
- buildGroupByQuery(options: GroupByOptions): Promise<{
91
- query: SelectQuery;
92
- variableMapping: Record<string, string>;
93
- }>;
94
- private createDateGroupingBind;
95
- private createYearExpression;
96
- private createMonthExpression;
97
- private createDayExpression;
98
- private createPaddedDatePartExpression;
99
- private createLessThanComparison;
100
- private createPaddedStringExpression;
101
- private createUnpaddedStringExpression;
102
- private createDayExpressionParts;
103
- }
104
- //# sourceMappingURL=SparqlQueryBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SparqlQueryBuilder.d.ts","sourceRoot":"","sources":["../../../../src/storage/query-adapter/sparql/SparqlQueryBuilder.ts"],"names":[],"mappings":"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"}