@comake/skl-js-engine 0.3.8 → 0.5.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.
- package/dist/index.d.ts +10 -2
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/sklEngine.d.ts +4 -3
- package/dist/sklEngine.js +10 -6
- package/dist/sklEngine.js.map +1 -1
- package/dist/storage/BaseQueryAdapterOptions.d.ts +1 -1
- package/dist/storage/FindOperator.d.ts +1 -1
- package/dist/storage/FindOptionsTypes.d.ts +7 -4
- package/dist/storage/QueryAdapter.d.ts +2 -2
- package/dist/storage/blazegraph/BlazegraphQueryAdapter.d.ts +30 -0
- package/dist/storage/blazegraph/BlazegraphQueryAdapter.js +130 -0
- package/dist/storage/blazegraph/BlazegraphQueryAdapter.js.map +1 -0
- package/dist/storage/blazegraph/BlazegraphQueryAdapterOptions.d.ts +15 -0
- package/dist/storage/blazegraph/BlazegraphQueryAdapterOptions.js +3 -0
- package/dist/storage/blazegraph/BlazegraphQueryAdapterOptions.js.map +1 -0
- package/dist/storage/blazegraph/BlazegraphQueryBuilder.d.ts +23 -0
- package/dist/storage/blazegraph/BlazegraphQueryBuilder.js +98 -0
- package/dist/storage/blazegraph/BlazegraphQueryBuilder.js.map +1 -0
- package/dist/storage/memory/MemoryQueryAdapter.d.ts +2 -2
- package/dist/storage/memory/MemoryQueryAdapter.js +10 -5
- package/dist/storage/memory/MemoryQueryAdapter.js.map +1 -1
- package/dist/storage/operator/Equal.d.ts +3 -1
- package/dist/storage/operator/Equal.js.map +1 -1
- package/dist/storage/operator/In.d.ts +2 -1
- package/dist/storage/operator/In.js.map +1 -1
- package/dist/storage/operator/InverseRelation.d.ts +7 -0
- package/dist/storage/operator/InverseRelation.js +13 -0
- package/dist/storage/operator/InverseRelation.js.map +1 -0
- package/dist/storage/sparql/BasicSparqlQueryAdapter.d.ts +31 -0
- package/dist/storage/sparql/BasicSparqlQueryAdapter.js +133 -0
- package/dist/storage/sparql/BasicSparqlQueryAdapter.js.map +1 -0
- package/dist/storage/sparql/BasicSparqlQueryBuilder.d.ts +17 -0
- package/dist/storage/sparql/BasicSparqlQueryBuilder.js +36 -0
- package/dist/storage/sparql/BasicSparqlQueryBuilder.js.map +1 -0
- package/dist/storage/sparql/SparqlQueryAdapter.d.ts +15 -19
- package/dist/storage/sparql/SparqlQueryAdapter.js +51 -180
- package/dist/storage/sparql/SparqlQueryAdapter.js.map +1 -1
- package/dist/storage/sparql/SparqlQueryBuilder.d.ts +7 -84
- package/dist/storage/sparql/SparqlQueryBuilder.js +0 -655
- package/dist/storage/sparql/SparqlQueryBuilder.js.map +1 -1
- package/dist/storage/sparql/SparqlQueryExecutor.d.ts +23 -0
- package/dist/storage/sparql/SparqlQueryExecutor.js +63 -0
- package/dist/storage/sparql/SparqlQueryExecutor.js.map +1 -0
- package/dist/storage/sparql/SparqlQueryPatternBuilder.d.ts +55 -0
- package/dist/storage/sparql/SparqlQueryPatternBuilder.js +509 -0
- package/dist/storage/sparql/SparqlQueryPatternBuilder.js.map +1 -0
- package/dist/storage/sparql/SparqlUpdateBuilder.js +8 -7
- package/dist/storage/sparql/SparqlUpdateBuilder.js.map +1 -1
- package/dist/util/SparqlUtil.d.ts +50 -0
- package/dist/util/SparqlUtil.js +304 -0
- package/dist/util/SparqlUtil.js.map +1 -0
- package/dist/util/TripleUtil.d.ts +0 -12
- package/dist/util/TripleUtil.js +21 -34
- package/dist/util/TripleUtil.js.map +1 -1
- package/dist/util/Vocabularies.d.ts +1 -0
- package/dist/util/Vocabularies.js +4 -1
- package/dist/util/Vocabularies.js.map +1 -1
- package/package.json +1 -1
|
@@ -45,6 +45,9 @@ class MemoryQueryAdapter {
|
|
|
45
45
|
return this.find({ where });
|
|
46
46
|
}
|
|
47
47
|
async findAll(options) {
|
|
48
|
+
if (options?.search) {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
48
51
|
let results = [];
|
|
49
52
|
if (options?.where?.id && Object.keys(options.where).length === 1 && typeof options.where.id === 'string') {
|
|
50
53
|
const schema = this.schemas[options.where.id];
|
|
@@ -112,6 +115,7 @@ class MemoryQueryAdapter {
|
|
|
112
115
|
lt: async () => false,
|
|
113
116
|
lte: async () => false,
|
|
114
117
|
inverse: async () => false,
|
|
118
|
+
inverseRelation: async () => false,
|
|
115
119
|
});
|
|
116
120
|
}
|
|
117
121
|
if (fieldName === 'id') {
|
|
@@ -199,12 +203,13 @@ class MemoryQueryAdapter {
|
|
|
199
203
|
return subClasses;
|
|
200
204
|
}, [targetClass]);
|
|
201
205
|
}
|
|
202
|
-
async exists(
|
|
203
|
-
const res = await this.
|
|
204
|
-
return res
|
|
206
|
+
async exists(options) {
|
|
207
|
+
const res = await this.findAll(options);
|
|
208
|
+
return res.length > 0;
|
|
205
209
|
}
|
|
206
|
-
async count(
|
|
207
|
-
|
|
210
|
+
async count(options) {
|
|
211
|
+
const res = await this.findAll(options);
|
|
212
|
+
return res.length;
|
|
208
213
|
}
|
|
209
214
|
async save(entityOrEntities) {
|
|
210
215
|
if (Array.isArray(entityOrEntities)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryQueryAdapter.js","sourceRoot":"","sources":["../../../src/storage/memory/MemoryQueryAdapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MemoryQueryAdapter.js","sourceRoot":"","sources":["../../../src/storage/memory/MemoryQueryAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
2
|
+
import type { OrArray } from '../../util/Types';
|
|
1
3
|
import { FindOperator } from '../FindOperator';
|
|
2
|
-
export declare function Equal<T
|
|
4
|
+
export declare function Equal<T extends OrArray<number | Date | string | boolean | ValueObject>>(value: T): FindOperator<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Equal.js","sourceRoot":"","sources":["../../../src/storage/operator/Equal.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Equal.js","sourceRoot":"","sources":["../../../src/storage/operator/Equal.ts"],"names":[],"mappings":";;;AAEA,kDAA+C;AAE/C,gEAAgE;AAChE,SAAgB,KAAK,CACnB,KAAQ;IAER,OAAO,IAAI,2BAAY,CAAI;QACzB,QAAQ,EAAE,OAAO;QACjB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAPD,sBAOC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
1
2
|
import { FindOperator } from '../FindOperator';
|
|
2
|
-
export declare function In<T>(value: T[]): FindOperator<T[]>;
|
|
3
|
+
export declare function In<T extends number | Date | string | boolean | ValueObject>(value: T[]): FindOperator<T[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"In.js","sourceRoot":"","sources":["../../../src/storage/operator/In.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"In.js","sourceRoot":"","sources":["../../../src/storage/operator/In.ts"],"names":[],"mappings":";;;AACA,kDAA+C;AAE/C,gEAAgE;AAChE,SAAgB,EAAE,CAChB,KAAU;IAEV,OAAO,IAAI,2BAAY,CAAM;QAC3B,QAAQ,EAAE,IAAI;QACd,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAPD,gBAOC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
import type { FindOptionsRelations } from '../FindOptionsTypes';
|
|
3
|
+
export interface InverseRelationOperatorValue {
|
|
4
|
+
resolvedName: string;
|
|
5
|
+
relations?: FindOptionsRelations;
|
|
6
|
+
}
|
|
7
|
+
export declare function InverseRelation(value: InverseRelationOperatorValue): FindOperator<InverseRelationOperatorValue>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InverseRelation = void 0;
|
|
4
|
+
const FindOperator_1 = require("../FindOperator");
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
6
|
+
function InverseRelation(value) {
|
|
7
|
+
return new FindOperator_1.FindOperator({
|
|
8
|
+
operator: 'inverseRelation',
|
|
9
|
+
value,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
exports.InverseRelation = InverseRelation;
|
|
13
|
+
//# sourceMappingURL=InverseRelation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InverseRelation.js","sourceRoot":"","sources":["../../../src/storage/operator/InverseRelation.ts"],"names":[],"mappings":";;;AAAA,kDAA+C;AAQ/C,gEAAgE;AAChE,SAAgB,eAAe,CAAC,KAAmC;IACjE,OAAO,IAAI,2BAAY,CAA+B;QACpD,QAAQ,EAAE,iBAAiB;QAC3B,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AALD,0CAKC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { GraphObject } from 'jsonld';
|
|
2
|
+
import type { Frame } from 'jsonld/jsonld-spec';
|
|
3
|
+
import type { Entity } from '../../util/Types';
|
|
4
|
+
import type { FindOneOptions, FindAllOptions, FindOptionsWhere } from '../FindOptionsTypes';
|
|
5
|
+
import type { QueryAdapter, RawQueryResult } from '../QueryAdapter';
|
|
6
|
+
import type { SparqlQueryAdapterOptions } from './SparqlQueryAdapterOptions';
|
|
7
|
+
import { SparqlQueryExecutor } from './SparqlQueryExecutor';
|
|
8
|
+
/**
|
|
9
|
+
* A {@link QueryAdapter} that stores data in a database through a sparql endpoint.
|
|
10
|
+
*/
|
|
11
|
+
export declare class BasicSparqlQueryAdapter implements QueryAdapter {
|
|
12
|
+
protected readonly sparqlQueryExecutor: SparqlQueryExecutor;
|
|
13
|
+
private readonly setTimestamps;
|
|
14
|
+
constructor(options: SparqlQueryAdapterOptions);
|
|
15
|
+
executeRawQuery<T extends RawQueryResult>(query: string): Promise<T[]>;
|
|
16
|
+
executeRawEntityQuery(query: string, frame?: Frame): Promise<GraphObject>;
|
|
17
|
+
find(options?: FindOneOptions): Promise<Entity | null>;
|
|
18
|
+
findBy(where: FindOptionsWhere): Promise<Entity | null>;
|
|
19
|
+
findAll(options?: FindAllOptions): Promise<Entity[]>;
|
|
20
|
+
private findAllAsJsonLd;
|
|
21
|
+
private buildFindAllQueryData;
|
|
22
|
+
private executeEntitySelectQuery;
|
|
23
|
+
findAllBy(where: FindOptionsWhere): Promise<Entity[]>;
|
|
24
|
+
exists(options: FindAllOptions): Promise<boolean>;
|
|
25
|
+
count(options: FindAllOptions): Promise<number>;
|
|
26
|
+
save(entity: Entity): Promise<Entity>;
|
|
27
|
+
save(entities: Entity[]): Promise<Entity[]>;
|
|
28
|
+
destroy(entity: Entity): Promise<Entity>;
|
|
29
|
+
destroy(entities: Entity[]): Promise<Entity[]>;
|
|
30
|
+
destroyAll(): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BasicSparqlQueryAdapter = void 0;
|
|
4
|
+
const SparqlUtil_1 = require("../../util/SparqlUtil");
|
|
5
|
+
const TripleUtil_1 = require("../../util/TripleUtil");
|
|
6
|
+
const BasicSparqlQueryBuilder_1 = require("./BasicSparqlQueryBuilder");
|
|
7
|
+
const SparqlQueryExecutor_1 = require("./SparqlQueryExecutor");
|
|
8
|
+
const SparqlUpdateBuilder_1 = require("./SparqlUpdateBuilder");
|
|
9
|
+
/**
|
|
10
|
+
* A {@link QueryAdapter} that stores data in a database through a sparql endpoint.
|
|
11
|
+
*/
|
|
12
|
+
class BasicSparqlQueryAdapter {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.sparqlQueryExecutor = new SparqlQueryExecutor_1.SparqlQueryExecutor(options);
|
|
15
|
+
this.setTimestamps = options.setTimestamps ?? false;
|
|
16
|
+
}
|
|
17
|
+
async executeRawQuery(query) {
|
|
18
|
+
const response = await this.sparqlQueryExecutor.executeSparqlSelectAndGetDataRaw(query);
|
|
19
|
+
if (response.length === 0) {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
return (0, SparqlUtil_1.selectQueryResultsAsJSValues)(response);
|
|
23
|
+
}
|
|
24
|
+
async executeRawEntityQuery(query, frame) {
|
|
25
|
+
const response = await this.sparqlQueryExecutor.executeSparqlSelectAndGetDataRaw(query);
|
|
26
|
+
if (response.length === 0) {
|
|
27
|
+
return { '@graph': [] };
|
|
28
|
+
}
|
|
29
|
+
return await (0, TripleUtil_1.triplesToJsonldWithFrame)(response, frame);
|
|
30
|
+
}
|
|
31
|
+
async find(options) {
|
|
32
|
+
const jsonld = await this.findAllAsJsonLd({ ...options, limit: 1 });
|
|
33
|
+
if (Array.isArray(jsonld)) {
|
|
34
|
+
if (jsonld.length === 0) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
if (jsonld.length === 1) {
|
|
38
|
+
return jsonld[0];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return jsonld;
|
|
42
|
+
}
|
|
43
|
+
async findBy(where) {
|
|
44
|
+
return this.find({ where });
|
|
45
|
+
}
|
|
46
|
+
async findAll(options) {
|
|
47
|
+
const jsonld = await this.findAllAsJsonLd(options);
|
|
48
|
+
if (Array.isArray(jsonld)) {
|
|
49
|
+
return jsonld;
|
|
50
|
+
}
|
|
51
|
+
return [jsonld];
|
|
52
|
+
}
|
|
53
|
+
async findAllAsJsonLd(options) {
|
|
54
|
+
if (options?.search) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
const queryBuilder = new BasicSparqlQueryBuilder_1.BasicSparqlQueryBuilder();
|
|
58
|
+
const { where, selectionTriples, entityOrder } = await this.buildFindAllQueryData(queryBuilder, options);
|
|
59
|
+
if (entityOrder && entityOrder.length === 0) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
const query = queryBuilder.buildConstructFromEntitySelectQuery(where, selectionTriples, options?.select);
|
|
63
|
+
return await this.executeEntitySelectQuery(query, options?.relations, entityOrder);
|
|
64
|
+
}
|
|
65
|
+
async buildFindAllQueryData(queryBuilder, options) {
|
|
66
|
+
const queryData = queryBuilder.buildEntitySelectPatternsFromOptions(SparqlUtil_1.entityVariable, options);
|
|
67
|
+
const entitySelectQuery = queryData.where.length > 0
|
|
68
|
+
? (0, SparqlUtil_1.createSparqlSelectQuery)(SparqlUtil_1.entityVariable, queryData.where, queryData.orders, options?.limit, options?.offset)
|
|
69
|
+
: undefined;
|
|
70
|
+
let entityOrder;
|
|
71
|
+
if (queryData.orders.length > 0 && options?.limit !== 1 && entitySelectQuery) {
|
|
72
|
+
const entitySelectResponse = await this.sparqlQueryExecutor.executeSparqlSelectAndGetData(entitySelectQuery);
|
|
73
|
+
const valuesByVariable = (0, SparqlUtil_1.groupSelectQueryResultsByKey)(entitySelectResponse);
|
|
74
|
+
entityOrder = (0, SparqlUtil_1.getEntityVariableValuesFromVariables)(valuesByVariable);
|
|
75
|
+
if (entityOrder.length === 0) {
|
|
76
|
+
return {
|
|
77
|
+
where: queryData.where,
|
|
78
|
+
selectionTriples: queryData.graphSelectionTriples,
|
|
79
|
+
entityOrder: [],
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const variableValueFilters = (0, SparqlUtil_1.createValuesPatternsForVariables)(valuesByVariable);
|
|
83
|
+
queryData.graphWhere = [...variableValueFilters, ...queryData.graphWhere];
|
|
84
|
+
}
|
|
85
|
+
else if (entitySelectQuery) {
|
|
86
|
+
const entitySelectGroupQuery = (0, SparqlUtil_1.createSparqlSelectGroup)([entitySelectQuery]);
|
|
87
|
+
queryData.graphWhere.unshift(entitySelectGroupQuery);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
where: queryData.graphWhere,
|
|
91
|
+
selectionTriples: queryData.graphSelectionTriples,
|
|
92
|
+
entityOrder,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
async executeEntitySelectQuery(query, relations, entityOrder) {
|
|
96
|
+
const responseTriples = await this.sparqlQueryExecutor.executeSparqlSelectAndGetData(query);
|
|
97
|
+
return await (0, TripleUtil_1.triplesToJsonld)(responseTriples, relations, entityOrder);
|
|
98
|
+
}
|
|
99
|
+
async findAllBy(where) {
|
|
100
|
+
return this.findAll({ where });
|
|
101
|
+
}
|
|
102
|
+
async exists(options) {
|
|
103
|
+
const queryBuilder = new BasicSparqlQueryBuilder_1.BasicSparqlQueryBuilder();
|
|
104
|
+
const { where } = await this.buildFindAllQueryData(queryBuilder, options);
|
|
105
|
+
const query = (0, SparqlUtil_1.creteSparqlAskQuery)(where);
|
|
106
|
+
return await this.sparqlQueryExecutor.executeAskQueryAndGetResponse(query);
|
|
107
|
+
}
|
|
108
|
+
async count(options) {
|
|
109
|
+
const queryBuilder = new BasicSparqlQueryBuilder_1.BasicSparqlQueryBuilder();
|
|
110
|
+
const { where } = await this.buildFindAllQueryData(queryBuilder, options);
|
|
111
|
+
const query = (0, SparqlUtil_1.createSparqlCountSelectQuery)(SparqlUtil_1.entityVariable, where);
|
|
112
|
+
return await this.sparqlQueryExecutor.executeSelectCountAndGetResponse(query);
|
|
113
|
+
}
|
|
114
|
+
async save(entityOrEntities) {
|
|
115
|
+
const queryBuilder = new SparqlUpdateBuilder_1.SparqlUpdateBuilder({ setTimestamps: this.setTimestamps });
|
|
116
|
+
const query = queryBuilder.buildUpdate(entityOrEntities);
|
|
117
|
+
await this.sparqlQueryExecutor.executeSparqlUpdate(query);
|
|
118
|
+
return entityOrEntities;
|
|
119
|
+
}
|
|
120
|
+
async destroy(entityOrEntities) {
|
|
121
|
+
const queryBuilder = new SparqlUpdateBuilder_1.SparqlUpdateBuilder();
|
|
122
|
+
const query = queryBuilder.buildDelete(entityOrEntities);
|
|
123
|
+
await this.sparqlQueryExecutor.executeSparqlUpdate(query);
|
|
124
|
+
return entityOrEntities;
|
|
125
|
+
}
|
|
126
|
+
async destroyAll() {
|
|
127
|
+
const queryBuilder = new SparqlUpdateBuilder_1.SparqlUpdateBuilder();
|
|
128
|
+
const query = queryBuilder.buildDeleteAll();
|
|
129
|
+
await this.sparqlQueryExecutor.executeSparqlUpdate(query);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.BasicSparqlQueryAdapter = BasicSparqlQueryAdapter;
|
|
133
|
+
//# sourceMappingURL=BasicSparqlQueryAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasicSparqlQueryAdapter.js","sourceRoot":"","sources":["../../../src/storage/sparql/BasicSparqlQueryAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Variable } from '@rdfjs/types';
|
|
2
|
+
import type { Pattern, ConstructQuery, Triple } from 'sparqljs';
|
|
3
|
+
import type { FindOptionsOrder, FindOptionsRelations, FindOptionsSelect, FindOptionsWhere } from '../FindOptionsTypes';
|
|
4
|
+
import type { SparqlQueryBuilder } from './SparqlQueryBuilder';
|
|
5
|
+
import type { EntitySelectQueryData } from './SparqlQueryPatternBuilder';
|
|
6
|
+
import { SparqlQueryPatternBuilder } from './SparqlQueryPatternBuilder';
|
|
7
|
+
export interface BasicSparqlQueryBuilderOptions {
|
|
8
|
+
where?: FindOptionsWhere;
|
|
9
|
+
order?: FindOptionsOrder;
|
|
10
|
+
relations?: FindOptionsRelations;
|
|
11
|
+
}
|
|
12
|
+
export declare class BasicSparqlQueryBuilder implements SparqlQueryBuilder {
|
|
13
|
+
protected readonly sparqlQueryPatternBuilder: SparqlQueryPatternBuilder;
|
|
14
|
+
constructor();
|
|
15
|
+
buildEntitySelectPatternsFromOptions(subject: Variable, options?: BasicSparqlQueryBuilderOptions): EntitySelectQueryData;
|
|
16
|
+
buildConstructFromEntitySelectQuery(graphWhere: Pattern[], graphSelectionTriples: Triple[], select?: FindOptionsSelect): ConstructQuery;
|
|
17
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BasicSparqlQueryBuilder = void 0;
|
|
4
|
+
const SparqlUtil_1 = require("../../util/SparqlUtil");
|
|
5
|
+
const SparqlQueryPatternBuilder_1 = require("./SparqlQueryPatternBuilder");
|
|
6
|
+
class BasicSparqlQueryBuilder {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.sparqlQueryPatternBuilder = new SparqlQueryPatternBuilder_1.SparqlQueryPatternBuilder();
|
|
9
|
+
}
|
|
10
|
+
buildEntitySelectPatternsFromOptions(subject, options) {
|
|
11
|
+
return this.sparqlQueryPatternBuilder.buildEntitySelectPatternsFromOptions(subject, options?.where, options?.order, options?.relations);
|
|
12
|
+
}
|
|
13
|
+
buildConstructFromEntitySelectQuery(graphWhere, graphSelectionTriples, select) {
|
|
14
|
+
let triples;
|
|
15
|
+
let where = [];
|
|
16
|
+
if (select) {
|
|
17
|
+
// eslint-disable-next-line unicorn/expiring-todo-comments
|
|
18
|
+
// TODO: fix when select and relations are used.
|
|
19
|
+
triples = this.sparqlQueryPatternBuilder.createSelectPattern(select, SparqlUtil_1.entityVariable);
|
|
20
|
+
where = [
|
|
21
|
+
(0, SparqlUtil_1.createSparqlOptionalGraphSelection)(SparqlUtil_1.entityVariable, triples),
|
|
22
|
+
...graphWhere,
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
triples = [SparqlUtil_1.entityGraphTriple, ...graphSelectionTriples];
|
|
27
|
+
where = [
|
|
28
|
+
...graphWhere,
|
|
29
|
+
(0, SparqlUtil_1.createSparqlSelectGraph)(SparqlUtil_1.entityVariable, [(0, SparqlUtil_1.createSparqlBasicGraphPattern)([SparqlUtil_1.entityGraphTriple])]),
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
return (0, SparqlUtil_1.createSparqlConstructQuery)(triples, where);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.BasicSparqlQueryBuilder = BasicSparqlQueryBuilder;
|
|
36
|
+
//# sourceMappingURL=BasicSparqlQueryBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasicSparqlQueryBuilder.js","sourceRoot":"","sources":["../../../src/storage/sparql/BasicSparqlQueryBuilder.ts"],"names":[],"mappings":";;;AAMA,sDAO+B;AAS/B,2EAAwE;AAQxE,MAAa,uBAAuB;IAGlC;QACE,IAAI,CAAC,yBAAyB,GAAG,IAAI,qDAAyB,EAAE,CAAC;IACnE,CAAC;IAEM,oCAAoC,CACzC,OAAiB,EACjB,OAAwC;QAExC,OAAO,IAAI,CAAC,yBAAyB,CAAC,oCAAoC,CACxE,OAAO,EACP,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,SAAS,CACnB,CAAC;IACJ,CAAC;IAEM,mCAAmC,CACxC,UAAqB,EACrB,qBAA+B,EAC/B,MAA0B;QAE1B,IAAI,OAAiB,CAAC;QACtB,IAAI,KAAK,GAAc,EAAE,CAAC;QAC1B,IAAI,MAAM,EAAE;YACV,0DAA0D;YAC1D,gDAAgD;YAChD,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,MAAM,EAAE,2BAAc,CAAC,CAAC;YACrF,KAAK,GAAG;gBACN,IAAA,+CAAkC,EAAC,2BAAc,EAAE,OAAO,CAAC;gBAC3D,GAAG,UAAU;aACd,CAAC;SACH;aAAM;YACL,OAAO,GAAG,CAAE,8BAAiB,EAAE,GAAG,qBAAqB,CAAE,CAAC;YAC1D,KAAK,GAAG;gBACN,GAAG,UAAU;gBACb,IAAA,oCAAuB,EACrB,2BAAc,EACd,CAAE,IAAA,0CAA6B,EAAC,CAAE,8BAAiB,CAAE,CAAC,CAAE,CACzD;aACF,CAAC;SACH;QACD,OAAO,IAAA,uCAA0B,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;CACF;AA9CD,0DA8CC"}
|
|
@@ -1,45 +1,41 @@
|
|
|
1
|
-
import type { Literal, NamedNode } from '@rdfjs/types';
|
|
2
1
|
import type { GraphObject } from 'jsonld';
|
|
3
2
|
import type { Frame } from 'jsonld/jsonld-spec';
|
|
3
|
+
import type { SelectQuery } from 'sparqljs';
|
|
4
4
|
import type { Entity } from '../../util/Types';
|
|
5
5
|
import type { FindOneOptions, FindAllOptions, FindOptionsWhere } from '../FindOptionsTypes';
|
|
6
6
|
import type { QueryAdapter, RawQueryResult } from '../QueryAdapter';
|
|
7
7
|
import type { SparqlQueryAdapterOptions } from './SparqlQueryAdapterOptions';
|
|
8
|
-
|
|
8
|
+
import { SparqlQueryExecutor } from './SparqlQueryExecutor';
|
|
9
|
+
import type { SelectQueryData } from './SparqlQueryPatternBuilder';
|
|
9
10
|
/**
|
|
10
11
|
* A {@link QueryAdapter} that stores data in a database through a sparql endpoint.
|
|
11
12
|
*/
|
|
12
13
|
export declare class SparqlQueryAdapter implements QueryAdapter {
|
|
13
|
-
|
|
14
|
-
private readonly sparqlGenerator;
|
|
14
|
+
protected readonly sparqlQueryExecutor: SparqlQueryExecutor;
|
|
15
15
|
private readonly setTimestamps;
|
|
16
16
|
constructor(options: SparqlQueryAdapterOptions);
|
|
17
17
|
executeRawQuery<T extends RawQueryResult>(query: string): Promise<T[]>;
|
|
18
18
|
executeRawEntityQuery(query: string, frame?: Frame): Promise<GraphObject>;
|
|
19
19
|
find(options?: FindOneOptions): Promise<Entity | null>;
|
|
20
|
-
private constructSparqlSelect;
|
|
21
20
|
findBy(where: FindOptionsWhere): Promise<Entity | null>;
|
|
22
21
|
findAll(options?: FindAllOptions): Promise<Entity[]>;
|
|
23
22
|
private findAllAsJsonLd;
|
|
24
|
-
private
|
|
25
|
-
|
|
23
|
+
private buildFindAllQueryData;
|
|
24
|
+
protected buildFindAllWithOrder(queryData: SelectQueryData, entitySelectQuery: SelectQuery): Promise<{
|
|
25
|
+
queryData: SelectQueryData;
|
|
26
|
+
entityOrder?: string[];
|
|
27
|
+
}>;
|
|
28
|
+
protected buildFindAllWithoutOrder(queryData: SelectQueryData, entitySelectQuery?: SelectQuery): Promise<{
|
|
29
|
+
queryData: SelectQueryData;
|
|
30
|
+
entityOrder?: string[];
|
|
31
|
+
}>;
|
|
26
32
|
private executeEntitySelectQuery;
|
|
27
|
-
private getEntityVariableValuesFromVariables;
|
|
28
|
-
private groupByKey;
|
|
29
|
-
private sparqlSelectGroup;
|
|
30
33
|
findAllBy(where: FindOptionsWhere): Promise<Entity[]>;
|
|
31
|
-
exists(
|
|
32
|
-
|
|
33
|
-
count(where?: FindOptionsWhere): Promise<number>;
|
|
34
|
-
private sparqlCountSelect;
|
|
35
|
-
private sparqlSelectGraph;
|
|
34
|
+
exists(options: FindAllOptions): Promise<boolean>;
|
|
35
|
+
count(options: FindAllOptions): Promise<number>;
|
|
36
36
|
save(entity: Entity): Promise<Entity>;
|
|
37
37
|
save(entities: Entity[]): Promise<Entity[]>;
|
|
38
38
|
destroy(entity: Entity): Promise<Entity>;
|
|
39
39
|
destroy(entities: Entity[]): Promise<Entity[]>;
|
|
40
40
|
destroyAll(): Promise<void>;
|
|
41
|
-
private executeSparqlSelectAndGetData;
|
|
42
|
-
private executeSparqlUpdate;
|
|
43
|
-
private executeAskQueryAndGetResponse;
|
|
44
|
-
private executeSelectCountAndGetResponse;
|
|
45
41
|
}
|