@comake/skl-js-engine 0.10.1 → 0.11.0

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 (32) hide show
  1. package/dist/index.d.ts +1 -6
  2. package/dist/index.js +1 -7
  3. package/dist/index.js.map +1 -1
  4. package/dist/sklEngine.d.ts +1 -2
  5. package/dist/sklEngine.js +2 -6
  6. package/dist/sklEngine.js.map +1 -1
  7. package/dist/storage/BaseQueryAdapterOptions.d.ts +1 -1
  8. package/dist/storage/sparql/{BasicSparqlQueryAdapter.d.ts → SparqlQueryAdapter.d.ts} +1 -1
  9. package/dist/storage/sparql/{BasicSparqlQueryAdapter.js → SparqlQueryAdapter.js} +8 -8
  10. package/dist/storage/sparql/SparqlQueryAdapter.js.map +1 -0
  11. package/dist/storage/sparql/SparqlQueryBuilder.d.ts +62 -5
  12. package/dist/storage/sparql/SparqlQueryBuilder.js +592 -0
  13. package/dist/storage/sparql/SparqlQueryBuilder.js.map +1 -1
  14. package/dist/util/TripleUtil.js +4 -1
  15. package/dist/util/TripleUtil.js.map +1 -1
  16. package/package.json +5 -5
  17. package/dist/storage/blazegraph/BlazegraphQueryAdapter.d.ts +0 -32
  18. package/dist/storage/blazegraph/BlazegraphQueryAdapter.js +0 -137
  19. package/dist/storage/blazegraph/BlazegraphQueryAdapter.js.map +0 -1
  20. package/dist/storage/blazegraph/BlazegraphQueryAdapterOptions.d.ts +0 -15
  21. package/dist/storage/blazegraph/BlazegraphQueryAdapterOptions.js +0 -3
  22. package/dist/storage/blazegraph/BlazegraphQueryAdapterOptions.js.map +0 -1
  23. package/dist/storage/blazegraph/BlazegraphQueryBuilder.d.ts +0 -23
  24. package/dist/storage/blazegraph/BlazegraphQueryBuilder.js +0 -98
  25. package/dist/storage/blazegraph/BlazegraphQueryBuilder.js.map +0 -1
  26. package/dist/storage/sparql/BasicSparqlQueryAdapter.js.map +0 -1
  27. package/dist/storage/sparql/BasicSparqlQueryBuilder.d.ts +0 -17
  28. package/dist/storage/sparql/BasicSparqlQueryBuilder.js +0 -36
  29. package/dist/storage/sparql/BasicSparqlQueryBuilder.js.map +0 -1
  30. package/dist/storage/sparql/SparqlQueryPatternBuilder.d.ts +0 -58
  31. package/dist/storage/sparql/SparqlQueryPatternBuilder.js +0 -573
  32. package/dist/storage/sparql/SparqlQueryPatternBuilder.js.map +0 -1
@@ -1,573 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SparqlQueryPatternBuilder = void 0;
7
- const data_model_1 = __importDefault(require("@rdfjs/data-model"));
8
- const SparqlUtil_1 = require("../../util/SparqlUtil");
9
- const TripleUtil_1 = require("../../util/TripleUtil");
10
- const Util_1 = require("../../util/Util");
11
- const Vocabularies_1 = require("../../util/Vocabularies");
12
- const FindOperator_1 = require("../FindOperator");
13
- const VariableGenerator_1 = require("./VariableGenerator");
14
- class SparqlQueryPatternBuilder {
15
- constructor() {
16
- this.variableGenerator = new VariableGenerator_1.VariableGenerator();
17
- }
18
- buildEntitySelectPatternsFromOptions(subject, where, order, relations, serviceTriples, additionalTriples) {
19
- const whereQueryData = this.createWhereQueryData(subject, where, additionalTriples);
20
- const orderQueryData = this.createOrderQueryData(subject, order);
21
- const relationsQueryData = this.createRelationsQueryData(subject, relations);
22
- if (whereQueryData.triples.length === 0 && (whereQueryData.filters.length > 0 ||
23
- orderQueryData.triples.length > 0 ||
24
- (whereQueryData.values.length === 0 &&
25
- whereQueryData.graphValues.length === 0 &&
26
- whereQueryData.graphTriples.length === 0))) {
27
- whereQueryData.triples.push({
28
- subject,
29
- predicate: this.createVariable(),
30
- object: this.createVariable(),
31
- });
32
- }
33
- const wherePatterns = this.createWherePatternsFromQueryData(whereQueryData.values, whereQueryData.triples, whereQueryData.filters, orderQueryData.triples, orderQueryData.filters, serviceTriples);
34
- const graphWherePatterns = this.createWherePatternsFromQueryData(whereQueryData.graphValues, whereQueryData.graphTriples, whereQueryData.graphFilters, undefined, undefined, undefined, relationsQueryData.patterns);
35
- return {
36
- where: wherePatterns,
37
- orders: orderQueryData.orders,
38
- group: orderQueryData.groupByParent ? subject : undefined,
39
- graphWhere: graphWherePatterns,
40
- graphSelectionTriples: relationsQueryData.selectionTriples,
41
- };
42
- }
43
- createWhereQueryData(subject, where, baseTriples = []) {
44
- const hasSingleKey = Object.keys(where ?? {}).length === 1;
45
- const whereQueryData = Object.entries(where ?? {}).reduce((obj, [key, value]) => {
46
- const whereQueryDataForField = this.createWhereQueryDataForField(subject, key, value, hasSingleKey);
47
- return {
48
- values: [...obj.values, ...whereQueryDataForField.values],
49
- triples: [...obj.triples, ...whereQueryDataForField.triples],
50
- filters: [...obj.filters, ...whereQueryDataForField.filters],
51
- graphValues: [...obj.graphValues, ...whereQueryDataForField.graphValues],
52
- graphTriples: [...obj.graphTriples, ...whereQueryDataForField.graphTriples],
53
- graphFilters: [...obj.graphFilters, ...whereQueryDataForField.graphFilters],
54
- };
55
- }, { values: [], triples: baseTriples, filters: [], graphValues: [], graphTriples: [], graphFilters: [] });
56
- return whereQueryData;
57
- }
58
- createWhereQueryDataForField(subject, field, value, isOnlyField) {
59
- if (field === 'id') {
60
- return this.createWhereQueryDataForIdValue(subject, value, isOnlyField);
61
- }
62
- if (field === 'type') {
63
- return this.createWhereQueryDataForType(subject, value);
64
- }
65
- const predicate = data_model_1.default.namedNode(field);
66
- return this.createWhereQueryDataFromKeyValue(subject, predicate, value);
67
- }
68
- createWhereQueryDataForIdValue(term, value, isOnlyField) {
69
- let filter;
70
- let valuePattern;
71
- if (FindOperator_1.FindOperator.isFindOperator(value)) {
72
- ({ filter, valuePattern } = this.resolveFindOperatorAsExpressionForId(term, value));
73
- }
74
- else {
75
- valuePattern = {
76
- type: 'values',
77
- values: [{
78
- [`?${term.value}`]: data_model_1.default.namedNode(value),
79
- }],
80
- };
81
- }
82
- if (isOnlyField) {
83
- return {
84
- values: [],
85
- filters: [],
86
- triples: [],
87
- graphValues: valuePattern ? [valuePattern] : [],
88
- graphFilters: filter ? [filter] : [],
89
- graphTriples: [],
90
- };
91
- }
92
- return {
93
- values: valuePattern ? [valuePattern] : [],
94
- filters: filter ? [filter] : [],
95
- triples: [],
96
- graphValues: [],
97
- graphFilters: [],
98
- graphTriples: [],
99
- };
100
- }
101
- createWhereQueryDataForType(subject, value) {
102
- if (FindOperator_1.FindOperator.isFindOperator(value)) {
103
- if (value.operator === 'inverse') {
104
- const inversePredicate = (0, SparqlUtil_1.createSparqlInversePredicate)([SparqlUtil_1.allTypesAndSuperTypesPath]);
105
- const inverseWhereQueryData = this.createWhereQueryDataFromKeyValue(subject, inversePredicate, value.value);
106
- return {
107
- values: inverseWhereQueryData.values,
108
- filters: inverseWhereQueryData.filters,
109
- triples: inverseWhereQueryData.triples,
110
- graphValues: [],
111
- graphTriples: [],
112
- graphFilters: [],
113
- };
114
- }
115
- const variable = this.createVariable();
116
- const triple = { subject, predicate: SparqlUtil_1.allTypesAndSuperTypesPath, object: variable };
117
- const { filter, valuePattern, tripleInFilter } = this.resolveFindOperatorAsExpressionWithMultipleValues(variable, value, triple);
118
- return {
119
- values: valuePattern ? [valuePattern] : [],
120
- filters: filter ? [filter] : [],
121
- triples: tripleInFilter ? [] : [triple],
122
- graphValues: [],
123
- graphFilters: [],
124
- graphTriples: [],
125
- };
126
- }
127
- return {
128
- values: [],
129
- filters: [],
130
- triples: [{
131
- subject,
132
- predicate: SparqlUtil_1.allTypesAndSuperTypesPath,
133
- object: data_model_1.default.namedNode(value),
134
- }],
135
- graphValues: [],
136
- graphFilters: [],
137
- graphTriples: [],
138
- };
139
- }
140
- createWhereQueryDataFromKeyValue(subject, predicate, value) {
141
- if (Array.isArray(value) && FindOperator_1.FindOperator.isFindOperator(value[0])) {
142
- return this.createWhereQueryDataForMultipleFindOperators(subject, predicate, value);
143
- }
144
- if (FindOperator_1.FindOperator.isFindOperator(value)) {
145
- return this.createWhereQueryDataForFindOperator(subject, predicate, value);
146
- }
147
- if (Array.isArray(value)) {
148
- return value.reduce((obj, valueItem) => {
149
- const valueWhereQueryData = this.createWhereQueryDataFromKeyValue(subject, predicate, valueItem);
150
- return {
151
- values: [...obj.values, ...valueWhereQueryData.values],
152
- filters: [...obj.filters, ...valueWhereQueryData.filters],
153
- triples: [...obj.triples, ...valueWhereQueryData.triples],
154
- graphValues: [...obj.graphValues, ...valueWhereQueryData.graphValues],
155
- graphFilters: [...obj.graphFilters, ...valueWhereQueryData.graphFilters],
156
- graphTriples: [...obj.graphTriples, ...valueWhereQueryData.graphTriples],
157
- };
158
- }, { values: [], filters: [], triples: [], graphTriples: [], graphValues: [], graphFilters: [] });
159
- }
160
- if (typeof value === 'object') {
161
- if ('@value' in value) {
162
- return this.createWhereQueryDataForValueObject(subject, predicate, value);
163
- }
164
- return this.createWhereQueryDataForNestedWhere(subject, predicate, value);
165
- }
166
- const term = this.resolveValueToTerm(value);
167
- return {
168
- values: [],
169
- filters: [],
170
- triples: [{ subject, predicate, object: term }],
171
- graphValues: [],
172
- graphFilters: [],
173
- graphTriples: [],
174
- };
175
- }
176
- createWhereQueryDataForFindOperator(subject, predicate, operator) {
177
- if (operator.operator === 'inverse') {
178
- const inversePredicate = (0, SparqlUtil_1.createSparqlInversePredicate)([predicate]);
179
- const inverseWhereQueryData = this.createWhereQueryDataFromKeyValue(subject, inversePredicate, operator.value);
180
- return {
181
- values: inverseWhereQueryData.values,
182
- filters: inverseWhereQueryData.filters,
183
- triples: inverseWhereQueryData.triples,
184
- graphValues: [],
185
- graphTriples: [],
186
- graphFilters: [],
187
- };
188
- }
189
- const variable = this.createVariable();
190
- const triple = { subject, predicate, object: variable };
191
- const { filter, valuePattern } = this.resolveFindOperatorAsExpressionWithMultipleValues(variable, operator, triple);
192
- return {
193
- values: valuePattern ? [valuePattern] : [],
194
- filters: filter ? [filter] : [],
195
- triples: [triple],
196
- graphValues: [],
197
- graphTriples: [],
198
- graphFilters: [],
199
- };
200
- }
201
- createWhereQueryDataForMultipleFindOperators(subject, predicate, operators) {
202
- const variable = this.createVariable();
203
- const triple = { subject, predicate, object: variable };
204
- const whereQueryData = {
205
- values: [],
206
- filters: [],
207
- triples: [triple],
208
- graphValues: [],
209
- graphTriples: [],
210
- graphFilters: [],
211
- };
212
- return operators.reduce((obj, operator) => {
213
- const { filter, valuePattern } = this.resolveFindOperatorAsExpressionWithMultipleValues(variable, operator, triple);
214
- if (valuePattern) {
215
- obj.values.push(valuePattern);
216
- }
217
- if (filter) {
218
- obj.filters.push(filter);
219
- }
220
- return obj;
221
- }, whereQueryData);
222
- }
223
- createWhereQueryDataForNestedWhere(subject, predicate, where) {
224
- const subNodeVariable = this.createVariable();
225
- const subWhereQueryData = this.createWhereQueryData(subNodeVariable, where);
226
- return {
227
- values: [...subWhereQueryData.values, ...subWhereQueryData.graphValues],
228
- filters: subWhereQueryData.filters,
229
- triples: [
230
- { subject, predicate, object: subNodeVariable },
231
- ...subWhereQueryData.triples,
232
- ],
233
- graphValues: [],
234
- graphFilters: [],
235
- graphTriples: [],
236
- };
237
- }
238
- createWhereQueryDataForValueObject(subject, predicate, valueObject) {
239
- const term = this.valueObjectToTerm(valueObject);
240
- return {
241
- values: [],
242
- filters: [],
243
- triples: [{ subject, predicate, object: term }],
244
- graphValues: [],
245
- graphFilters: [],
246
- graphTriples: [],
247
- };
248
- }
249
- valueObjectToTerm(valueObject) {
250
- let typeOrLanguage;
251
- let value;
252
- if ('@type' in valueObject && valueObject['@type'] === '@json') {
253
- typeOrLanguage = Vocabularies_1.RDF.JSON;
254
- value = JSON.stringify(valueObject['@value']);
255
- }
256
- else {
257
- typeOrLanguage = ('@type' in valueObject ? valueObject['@type'] : valueObject['@language']);
258
- value = valueObject['@value'].toString();
259
- }
260
- return data_model_1.default.literal(value, typeOrLanguage);
261
- }
262
- resolveFindOperatorAsExpressionWithMultipleValues(leftSide, operator, triple, dontUseValuePattern = false) {
263
- if (operator.operator === 'in') {
264
- const resolvedValue = this.resolveValueToExpression(operator.value);
265
- if (Array.isArray(resolvedValue) && !dontUseValuePattern) {
266
- return {
267
- valuePattern: {
268
- type: 'values',
269
- values: resolvedValue.map((value) => ({ [`?${leftSide.value}`]: value })),
270
- },
271
- };
272
- }
273
- return {
274
- filter: (0, SparqlUtil_1.createSparqlInOperation)(leftSide, resolvedValue),
275
- };
276
- }
277
- if (operator.operator === 'not') {
278
- return {
279
- filter: this.buildNotOperationForMultiValued(leftSide, this.resolveValueToExpression(operator.value), triple),
280
- tripleInFilter: true,
281
- };
282
- }
283
- const resolvedExpression = this.resolveValueToExpression(operator.value);
284
- switch (operator.operator) {
285
- case 'equal':
286
- return { filter: (0, SparqlUtil_1.createSparqlEqualOperation)(leftSide, resolvedExpression) };
287
- case 'gt':
288
- return { filter: (0, SparqlUtil_1.createSparqlGtOperation)(leftSide, resolvedExpression) };
289
- case 'gte':
290
- return { filter: (0, SparqlUtil_1.createSparqlGteOperation)(leftSide, resolvedExpression) };
291
- case 'lt':
292
- return { filter: (0, SparqlUtil_1.createSparqlLtOperation)(leftSide, resolvedExpression) };
293
- case 'lte':
294
- return { filter: (0, SparqlUtil_1.createSparqlLteOperation)(leftSide, resolvedExpression) };
295
- default:
296
- throw new Error(`Unsupported operator "${operator.operator}"`);
297
- }
298
- }
299
- resolveFindOperatorAsExpressionForId(leftSide, operator) {
300
- switch (operator.operator) {
301
- case 'in': {
302
- const resolvedValue = this.resolveValueToExpression(operator.value);
303
- return {
304
- valuePattern: {
305
- type: 'values',
306
- values: resolvedValue.map((value) => ({ [`?${leftSide.value}`]: value })),
307
- },
308
- };
309
- }
310
- case 'not':
311
- return {
312
- filter: this.buildNotOperationForId(leftSide, this.resolveValueToExpression(operator.value)),
313
- };
314
- case 'equal':
315
- return {
316
- filter: (0, SparqlUtil_1.createSparqlEqualOperation)(leftSide, this.resolveValueToExpression(operator.value)),
317
- };
318
- default:
319
- throw new Error(`Unsupported operator "${operator.operator}"`);
320
- }
321
- }
322
- resolveValueToExpression(value) {
323
- if (FindOperator_1.FindOperator.isFindOperator(value)) {
324
- return value;
325
- }
326
- if (Array.isArray(value)) {
327
- return value.map((valueItem) => this.resolveValueToTerm(valueItem));
328
- }
329
- return this.resolveValueToTerm(value);
330
- }
331
- buildNotOperationForMultiValued(leftSide, rightSide, triple) {
332
- let filterExpression;
333
- const rightSideIsOperation = typeof rightSide === 'object' && 'operator' in rightSide;
334
- if (rightSideIsOperation) {
335
- let expression;
336
- try {
337
- ({ filter: expression } = this.resolveFindOperatorAsExpressionWithMultipleValues(leftSide, rightSide, triple, true));
338
- }
339
- catch {
340
- throw new Error(`Unsupported Not sub operator "${rightSide.operator}"`);
341
- }
342
- filterExpression = (0, SparqlUtil_1.createSparqlFilterWithExpression)(expression);
343
- }
344
- else {
345
- filterExpression = (0, SparqlUtil_1.createSparqlFilterWithExpression)((0, SparqlUtil_1.createSparqlEqualOperation)(leftSide, rightSide));
346
- }
347
- return (0, SparqlUtil_1.createSparqlNotExistsOperation)([
348
- (0, SparqlUtil_1.createSparqlSelectGroup)([
349
- (0, SparqlUtil_1.createSparqlBasicGraphPattern)([triple]),
350
- filterExpression,
351
- ]),
352
- ]);
353
- }
354
- buildNotOperationForId(leftSide, rightSide) {
355
- if (FindOperator_1.FindOperator.isFindOperator(rightSide)) {
356
- const resolvedValue = this.resolveValueToExpression(rightSide.value);
357
- switch (rightSide.operator) {
358
- case 'in':
359
- return (0, SparqlUtil_1.createSparqlNotInOperation)(leftSide, resolvedValue);
360
- case 'equal':
361
- return (0, SparqlUtil_1.createSparqlNotEqualOperation)(leftSide, resolvedValue);
362
- default:
363
- throw new Error(`Unsupported Not sub operator "${rightSide.operator}"`);
364
- }
365
- }
366
- return (0, SparqlUtil_1.createSparqlNotEqualOperation)(leftSide, rightSide);
367
- }
368
- resolveValueToTerm(value) {
369
- if (typeof value === 'object' && '@value' in value) {
370
- return (0, TripleUtil_1.valueToLiteral)(value['@value'], '@type' in value ? value['@type'] : undefined);
371
- }
372
- if ((0, Util_1.isUrl)(value)) {
373
- return data_model_1.default.namedNode(value);
374
- }
375
- return (0, TripleUtil_1.valueToLiteral)(value);
376
- }
377
- createOrderQueryData(subject, order, isNested = false) {
378
- if (!order) {
379
- return { triples: [], orders: [], filters: [] };
380
- }
381
- return Object.entries(order).reduce((obj, [property, orderValue]) => {
382
- const orderQueryData = this.createOrderQueryDataForProperty(subject, property, orderValue, isNested);
383
- obj.orders = [...obj.orders, ...orderQueryData.orders];
384
- obj.triples = [...obj.triples, ...orderQueryData.triples];
385
- obj.filters = [...obj.filters, ...orderQueryData.filters];
386
- obj.groupByParent = obj.groupByParent ?? orderQueryData.groupByParent;
387
- return obj;
388
- }, { triples: [], orders: [], filters: [] });
389
- }
390
- createOrderQueryDataForProperty(subject, property, orderValue, isNested = false) {
391
- const predicate = data_model_1.default.namedNode(property);
392
- if (FindOperator_1.FindOperator.isFindOperator(orderValue)) {
393
- const variable = this.createVariable();
394
- const inverseRelationTriple = {
395
- subject,
396
- predicate: (0, SparqlUtil_1.createSparqlInversePredicate)([predicate]),
397
- object: variable,
398
- };
399
- const subRelationOperatorValue = orderValue.value;
400
- const subRelationOrderQueryData = this.createOrderQueryData(variable, subRelationOperatorValue.order, true);
401
- const subRelationWhereQueryData = this.createWhereQueryData(variable, subRelationOperatorValue.where);
402
- return {
403
- triples: [inverseRelationTriple, ...subRelationOrderQueryData.triples, ...subRelationWhereQueryData.triples],
404
- filters: subRelationWhereQueryData.filters,
405
- orders: subRelationOrderQueryData.orders,
406
- groupByParent: true,
407
- };
408
- }
409
- if (property === 'id') {
410
- return {
411
- triples: [],
412
- filters: [],
413
- orders: [{
414
- expression: subject,
415
- descending: orderValue === 'DESC' || orderValue === 'desc',
416
- }],
417
- };
418
- }
419
- const variable = this.createVariable();
420
- const isDescending = orderValue === 'DESC' || orderValue === 'desc';
421
- return {
422
- triples: [{ subject, predicate, object: variable }],
423
- filters: [],
424
- orders: [{
425
- expression: isNested
426
- ? {
427
- type: 'aggregate',
428
- expression: variable,
429
- aggregation: isDescending ? 'max' : 'min',
430
- }
431
- : variable,
432
- descending: isDescending,
433
- }],
434
- };
435
- }
436
- createRelationsQueryData(subject, relations) {
437
- if (!relations) {
438
- return { patterns: [], selectionTriples: [] };
439
- }
440
- return Object.entries(relations)
441
- .reduce((obj, [property, relationsValue]) => {
442
- const predicate = data_model_1.default.namedNode(property);
443
- if (typeof relationsValue === 'object') {
444
- if (FindOperator_1.FindOperator.isFindOperator(relationsValue)) {
445
- const { patterns, selectionTriples } = this.createRelationsQueryDataForInverseRelation(subject, predicate, relationsValue);
446
- return {
447
- patterns: [...obj.patterns, ...patterns],
448
- selectionTriples: [...obj.selectionTriples, ...selectionTriples],
449
- };
450
- }
451
- const { patterns, selectionTriples } = this.createRelationsQueryDataForNestedRelation(subject, predicate, relationsValue);
452
- return {
453
- patterns: [...obj.patterns, ...patterns],
454
- selectionTriples: [...obj.selectionTriples, ...selectionTriples],
455
- };
456
- }
457
- const variable = this.createVariable();
458
- const graphTriple = {
459
- subject: this.createVariable(),
460
- predicate: this.createVariable(),
461
- object: this.createVariable(),
462
- };
463
- const relationPattern = (0, SparqlUtil_1.createSparqlOptional)([
464
- (0, SparqlUtil_1.createSparqlBasicGraphPattern)([{ subject, predicate, object: variable }]),
465
- (0, SparqlUtil_1.createSparqlGraphPattern)(variable, [(0, SparqlUtil_1.createSparqlBasicGraphPattern)([graphTriple])]),
466
- ]);
467
- return {
468
- patterns: [...obj.patterns, relationPattern],
469
- selectionTriples: [...obj.selectionTriples, graphTriple],
470
- };
471
- }, { patterns: [], selectionTriples: [] });
472
- }
473
- createRelationsQueryDataForInverseRelation(subject, predicate, relationsValue) {
474
- const variable = this.createVariable();
475
- const graphTriple = {
476
- subject: this.createVariable(),
477
- predicate: this.createVariable(),
478
- object: this.createVariable(),
479
- };
480
- const inverseRelationTriple = {
481
- subject,
482
- predicate: (0, SparqlUtil_1.createSparqlInversePredicate)([predicate]),
483
- object: variable,
484
- };
485
- if (typeof relationsValue.value === 'object' &&
486
- relationsValue.value.relations) {
487
- const subRelationsQueryData = this.createRelationsQueryData(variable, relationsValue.value.relations);
488
- const relationPattern = (0, SparqlUtil_1.createSparqlOptional)([
489
- (0, SparqlUtil_1.createSparqlBasicGraphPattern)([inverseRelationTriple]),
490
- (0, SparqlUtil_1.createSparqlGraphPattern)(variable, [(0, SparqlUtil_1.createSparqlBasicGraphPattern)([graphTriple])]),
491
- ...subRelationsQueryData.patterns,
492
- ]);
493
- return {
494
- patterns: [relationPattern],
495
- selectionTriples: [graphTriple, ...subRelationsQueryData.selectionTriples],
496
- };
497
- }
498
- const relationPattern = (0, SparqlUtil_1.createSparqlOptional)([
499
- (0, SparqlUtil_1.createSparqlBasicGraphPattern)([inverseRelationTriple]),
500
- (0, SparqlUtil_1.createSparqlGraphPattern)(variable, [(0, SparqlUtil_1.createSparqlBasicGraphPattern)([graphTriple])]),
501
- ]);
502
- return {
503
- patterns: [relationPattern],
504
- selectionTriples: [graphTriple],
505
- };
506
- }
507
- createRelationsQueryDataForNestedRelation(subject, predicate, relationsValue) {
508
- const variable = this.createVariable();
509
- const graphTriple = {
510
- subject: this.createVariable(),
511
- predicate: this.createVariable(),
512
- object: this.createVariable(),
513
- };
514
- const relationTriple = { subject, predicate, object: variable };
515
- const subRelationsQueryData = this.createRelationsQueryData(variable, relationsValue);
516
- const relationPattern = (0, SparqlUtil_1.createSparqlOptional)([
517
- (0, SparqlUtil_1.createSparqlBasicGraphPattern)([relationTriple]),
518
- (0, SparqlUtil_1.createSparqlGraphPattern)(variable, [(0, SparqlUtil_1.createSparqlBasicGraphPattern)([graphTriple])]),
519
- ...subRelationsQueryData.patterns,
520
- ]);
521
- return {
522
- patterns: [relationPattern],
523
- selectionTriples: [graphTriple, ...subRelationsQueryData.selectionTriples],
524
- };
525
- }
526
- createVariable() {
527
- return data_model_1.default.variable(this.variableGenerator.getNext());
528
- }
529
- createSelectPattern(select, subject) {
530
- if (Array.isArray(select)) {
531
- return select.map((selectPredicate) => ({
532
- subject,
533
- predicate: data_model_1.default.namedNode(selectPredicate),
534
- object: this.createVariable(),
535
- }));
536
- }
537
- return Object.entries(select).reduce((arr, [key, value]) => {
538
- const variable = this.createVariable();
539
- arr.push({ subject, predicate: data_model_1.default.namedNode(key), object: variable });
540
- if (typeof value === 'object') {
541
- arr = [...arr, ...this.createSelectPattern(value, variable)];
542
- }
543
- return arr;
544
- }, []);
545
- }
546
- createWherePatternsFromQueryData(values, triples, filters, orderTriples, orderFilters, serviceTriples, additionalPatterns) {
547
- let patterns = values;
548
- if (triples.length > 0) {
549
- patterns.push((0, SparqlUtil_1.createSparqlBasicGraphPattern)(triples));
550
- }
551
- if (orderTriples && orderTriples.length > 0) {
552
- const optionalPatterns = [(0, SparqlUtil_1.createSparqlBasicGraphPattern)(orderTriples)];
553
- if (orderFilters && orderFilters.length > 0) {
554
- optionalPatterns.push((0, SparqlUtil_1.createFilterPatternFromFilters)(orderFilters));
555
- }
556
- patterns.push((0, SparqlUtil_1.createSparqlOptional)(optionalPatterns));
557
- }
558
- if (filters.length > 0) {
559
- patterns.push((0, SparqlUtil_1.createFilterPatternFromFilters)(filters));
560
- }
561
- if (serviceTriples) {
562
- for (const [service, sTriples] of Object.entries(serviceTriples)) {
563
- patterns.unshift((0, SparqlUtil_1.createSparqlServicePattern)(service, sTriples));
564
- }
565
- }
566
- if (additionalPatterns) {
567
- patterns = [...patterns, ...additionalPatterns];
568
- }
569
- return patterns;
570
- }
571
- }
572
- exports.SparqlQueryPatternBuilder = SparqlQueryPatternBuilder;
573
- //# sourceMappingURL=SparqlQueryPatternBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SparqlQueryPatternBuilder.js","sourceRoot":"","sources":["../../../src/storage/sparql/SparqlQueryPatternBuilder.ts"],"names":[],"mappings":"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"}