@comake/skl-js-engine 0.15.2 → 0.15.3
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.
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import type { Update, GraphQuads, ClearDropOperation } from 'sparqljs';
|
|
1
|
+
import type { Update, GraphQuads, Triple, ClearDropOperation } from 'sparqljs';
|
|
2
2
|
import type { Entity } from '../../util/Types';
|
|
3
3
|
export interface EntityUpdateQueries {
|
|
4
4
|
clear: ClearDropOperation[];
|
|
5
5
|
insertions: GraphQuads[];
|
|
6
|
+
timestampInsertions: GraphQuads[];
|
|
7
|
+
}
|
|
8
|
+
export interface EntityUpdateTriples {
|
|
9
|
+
entityTriples: Triple[];
|
|
10
|
+
timestampTriples: Triple[];
|
|
6
11
|
}
|
|
7
12
|
export interface SparqlUpdateBuilderArgs {
|
|
8
13
|
setTimestamps?: boolean;
|
|
@@ -23,23 +23,21 @@ class SparqlUpdateBuilder {
|
|
|
23
23
|
}
|
|
24
24
|
buildUpdate(entityOrEntities) {
|
|
25
25
|
const entities = (0, Util_1.ensureArray)(entityOrEntities);
|
|
26
|
-
const { clear, insertions } = this.entitiesToGraphDeletionsAndInsertions(entities);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
const { clear, insertions, timestampInsertions } = this.entitiesToGraphDeletionsAndInsertions(entities);
|
|
27
|
+
const insertUpdate = {
|
|
28
|
+
updateType: 'insert',
|
|
29
|
+
insert: insertions,
|
|
30
|
+
};
|
|
31
|
+
const updates = [...clear, insertUpdate];
|
|
32
|
+
if (timestampInsertions.length > 0) {
|
|
33
|
+
updates.push({
|
|
30
34
|
updateType: 'insertdelete',
|
|
31
35
|
delete: [],
|
|
32
|
-
insert:
|
|
36
|
+
insert: timestampInsertions,
|
|
33
37
|
where: [SparqlUtil_1.bindNow],
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
insertUpdate = {
|
|
38
|
-
updateType: 'insert',
|
|
39
|
-
insert: insertions,
|
|
40
|
-
};
|
|
38
|
+
});
|
|
41
39
|
}
|
|
42
|
-
return (0, SparqlUtil_1.createSparqlUpdate)(
|
|
40
|
+
return (0, SparqlUtil_1.createSparqlUpdate)(updates);
|
|
43
41
|
}
|
|
44
42
|
buildDelete(entityOrEntities) {
|
|
45
43
|
const entities = (0, Util_1.ensureArray)(entityOrEntities);
|
|
@@ -50,47 +48,57 @@ class SparqlUpdateBuilder {
|
|
|
50
48
|
return (0, SparqlUtil_1.createSparqlUpdate)([SparqlUtil_1.dropAll]);
|
|
51
49
|
}
|
|
52
50
|
idsAndAttributesToGraphDeletionsAndInsertions(ids, attributes) {
|
|
53
|
-
return ids.
|
|
51
|
+
return ids.flatMap((id) => {
|
|
54
52
|
const subject = data_model_1.default.namedNode(id);
|
|
55
53
|
const deletionTriples = this.partialEntityToDeletionTriples(attributes, subject);
|
|
56
54
|
const insertionTriples = this.partialEntityToTriples(subject, attributes);
|
|
57
|
-
const
|
|
58
|
-
|
|
55
|
+
const updates = [
|
|
56
|
+
{
|
|
57
|
+
updateType: 'insertdelete',
|
|
58
|
+
delete: [(0, SparqlUtil_1.createSparqlGraphQuads)(subject, deletionTriples)],
|
|
59
|
+
insert: [(0, SparqlUtil_1.createSparqlGraphQuads)(subject, insertionTriples)],
|
|
60
|
+
where: deletionTriples.map((triple) => (0, SparqlUtil_1.createSparqlOptional)([
|
|
61
|
+
(0, SparqlUtil_1.createSparqlBasicGraphPattern)([triple]),
|
|
62
|
+
])),
|
|
63
|
+
using: {
|
|
64
|
+
default: [subject],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
];
|
|
59
68
|
if (this.setTimestamps) {
|
|
60
69
|
const modifiedVariable = data_model_1.default.variable(this.variableGenerator.getNext());
|
|
61
70
|
const modifiedDeletionTriple = { subject, predicate: SparqlUtil_1.modified, object: modifiedVariable };
|
|
62
71
|
const modifiedInsertionTriple = { subject, predicate: SparqlUtil_1.modified, object: SparqlUtil_1.now };
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
72
|
+
updates.push({
|
|
73
|
+
updateType: 'insertdelete',
|
|
74
|
+
delete: [(0, SparqlUtil_1.createSparqlGraphQuads)(subject, [modifiedDeletionTriple])],
|
|
75
|
+
insert: [(0, SparqlUtil_1.createSparqlGraphQuads)(subject, [modifiedInsertionTriple])],
|
|
76
|
+
where: [
|
|
77
|
+
(0, SparqlUtil_1.createSparqlOptional)([
|
|
78
|
+
(0, SparqlUtil_1.createSparqlBasicGraphPattern)([modifiedDeletionTriple]),
|
|
79
|
+
]),
|
|
80
|
+
SparqlUtil_1.bindNow,
|
|
81
|
+
],
|
|
82
|
+
using: {
|
|
83
|
+
default: [subject],
|
|
84
|
+
},
|
|
85
|
+
});
|
|
67
86
|
}
|
|
68
|
-
|
|
69
|
-
updateType: 'insertdelete',
|
|
70
|
-
delete: [(0, SparqlUtil_1.createSparqlGraphQuads)(subject, deletionTriples)],
|
|
71
|
-
insert: [(0, SparqlUtil_1.createSparqlGraphQuads)(subject, insertionTriples)],
|
|
72
|
-
where: [
|
|
73
|
-
...whereTriples.map((triple) => (0, SparqlUtil_1.createSparqlOptional)([
|
|
74
|
-
(0, SparqlUtil_1.createSparqlBasicGraphPattern)([triple]),
|
|
75
|
-
])),
|
|
76
|
-
...whereAdditions,
|
|
77
|
-
],
|
|
78
|
-
using: {
|
|
79
|
-
default: [subject],
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
return update;
|
|
87
|
+
return updates;
|
|
83
88
|
});
|
|
84
89
|
}
|
|
85
90
|
entitiesToGraphDeletionsAndInsertions(entities) {
|
|
86
91
|
return entities
|
|
87
92
|
.reduce((obj, entity) => {
|
|
88
93
|
const entityGraphName = data_model_1.default.namedNode(entity['@id']);
|
|
89
|
-
const
|
|
94
|
+
const { entityTriples, timestampTriples } = this.entityToTriples(entity, entityGraphName);
|
|
90
95
|
obj.clear.push((0, SparqlUtil_1.createSparqlClearUpdate)(entityGraphName));
|
|
91
|
-
obj.insertions.push((0, SparqlUtil_1.createSparqlGraphQuads)(entityGraphName,
|
|
96
|
+
obj.insertions.push((0, SparqlUtil_1.createSparqlGraphQuads)(entityGraphName, entityTriples));
|
|
97
|
+
if (timestampTriples.length > 0) {
|
|
98
|
+
obj.timestampInsertions.push((0, SparqlUtil_1.createSparqlGraphQuads)(entityGraphName, timestampTriples));
|
|
99
|
+
}
|
|
92
100
|
return obj;
|
|
93
|
-
}, { clear: [], insertions: [] });
|
|
101
|
+
}, { clear: [], insertions: [], timestampInsertions: [] });
|
|
94
102
|
}
|
|
95
103
|
entitiesToGraphDropUpdates(entities) {
|
|
96
104
|
return entities.map((entity) => {
|
|
@@ -130,35 +138,28 @@ class SparqlUpdateBuilder {
|
|
|
130
138
|
const entityTriples = Object.entries(entity).reduce((triples, [key, value]) => {
|
|
131
139
|
const values = (0, Util_1.ensureArray)(value);
|
|
132
140
|
if (key !== '@id') {
|
|
133
|
-
let predicateTriples;
|
|
134
141
|
if (key === '@type') {
|
|
135
|
-
predicateTriples = this.buildTriplesWithSubjectPredicateAndIriValue(subject, SparqlUtil_1.rdfTypeNamedNode, values);
|
|
142
|
+
const predicateTriples = this.buildTriplesWithSubjectPredicateAndIriValue(subject, SparqlUtil_1.rdfTypeNamedNode, values);
|
|
143
|
+
return [...triples, ...predicateTriples];
|
|
136
144
|
}
|
|
137
|
-
|
|
138
|
-
predicateTriples = this.buildTriplesForSubjectPredicateAndValues(subject, key, values);
|
|
145
|
+
if (!(this.setTimestamps && key === Vocabularies_1.DCTERMS.modified)) {
|
|
146
|
+
const predicateTriples = this.buildTriplesForSubjectPredicateAndValues(subject, key, values);
|
|
147
|
+
return [...triples, ...predicateTriples];
|
|
139
148
|
}
|
|
140
|
-
return [...triples, ...predicateTriples];
|
|
141
149
|
}
|
|
142
150
|
return triples;
|
|
143
151
|
}, []);
|
|
152
|
+
const timestampTriples = [];
|
|
144
153
|
if (this.setTimestamps && subject.termType === 'NamedNode') {
|
|
145
|
-
if (!
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
if (entity[Vocabularies_1.DCTERMS.modified]) {
|
|
149
|
-
for (const triple of entityTriples) {
|
|
150
|
-
if (triple.subject.equals(subject) &&
|
|
151
|
-
'termType' in triple.predicate &&
|
|
152
|
-
triple.predicate.equals(SparqlUtil_1.modified)) {
|
|
153
|
-
triple.object = SparqlUtil_1.now;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
entityTriples.push({ subject, predicate: SparqlUtil_1.modified, object: SparqlUtil_1.now });
|
|
154
|
+
if (!(Vocabularies_1.DCTERMS.created in entity)) {
|
|
155
|
+
timestampTriples.push({ subject, predicate: SparqlUtil_1.created, object: SparqlUtil_1.now });
|
|
159
156
|
}
|
|
157
|
+
timestampTriples.push({ subject, predicate: SparqlUtil_1.modified, object: SparqlUtil_1.now });
|
|
160
158
|
}
|
|
161
|
-
return
|
|
159
|
+
return {
|
|
160
|
+
entityTriples,
|
|
161
|
+
timestampTriples,
|
|
162
|
+
};
|
|
162
163
|
}
|
|
163
164
|
buildTriplesForSubjectPredicateAndValues(subject, predicate, values) {
|
|
164
165
|
const predicateTerm = data_model_1.default.namedNode(predicate);
|
|
@@ -223,9 +224,10 @@ class SparqlUpdateBuilder {
|
|
|
223
224
|
}
|
|
224
225
|
buildTriplesForBlankNode(subject, predicate, value) {
|
|
225
226
|
const blankNode = data_model_1.default.blankNode(this.variableGenerator.getNext());
|
|
227
|
+
const { entityTriples } = this.entityToTriples(value, blankNode);
|
|
226
228
|
return [
|
|
227
229
|
{ subject, predicate, object: blankNode },
|
|
228
|
-
...
|
|
230
|
+
...entityTriples,
|
|
229
231
|
];
|
|
230
232
|
}
|
|
231
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparqlUpdateBuilder.js","sourceRoot":"","sources":["../../../src/storage/sparql/SparqlUpdateBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA2C;AAC3C,mEAA4C;AAY5C,sDAgB+B;AAC/B,sDAE+B;AAE/B,0CAA8C;AAC9C,0DAAkD;AAClD,2DAAwD;
|
|
1
|
+
{"version":3,"file":"SparqlUpdateBuilder.js","sourceRoot":"","sources":["../../../src/storage/sparql/SparqlUpdateBuilder.ts"],"names":[],"mappings":"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"}
|