@comake/skl-js-engine 0.1.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/LICENSE.md +4 -0
- package/README.md +46 -0
- package/dist/Skql.d.ts +68 -0
- package/dist/Skql.js +351 -0
- package/dist/Skql.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/mapping/Mapper.d.ts +14 -0
- package/dist/mapping/Mapper.js +64 -0
- package/dist/mapping/Mapper.js.map +1 -0
- package/dist/sklEngine.d.ts +68 -0
- package/dist/sklEngine.js +351 -0
- package/dist/sklEngine.js.map +1 -0
- package/dist/storage/AggregateOperator.d.ts +12 -0
- package/dist/storage/AggregateOperator.js +17 -0
- package/dist/storage/AggregateOperator.js.map +1 -0
- package/dist/storage/BaseQueryAdapterOptions.d.ts +19 -0
- package/dist/storage/BaseQueryAdapterOptions.js +3 -0
- package/dist/storage/BaseQueryAdapterOptions.js.map +1 -0
- package/dist/storage/FindOperator.d.ts +12 -0
- package/dist/storage/FindOperator.js +17 -0
- package/dist/storage/FindOperator.js.map +1 -0
- package/dist/storage/FindOptionsTypes.d.ts +45 -0
- package/dist/storage/FindOptionsTypes.js +3 -0
- package/dist/storage/FindOptionsTypes.js.map +1 -0
- package/dist/storage/MemoryQueryAdapter.d.ts +28 -0
- package/dist/storage/MemoryQueryAdapter.js +215 -0
- package/dist/storage/MemoryQueryAdapter.js.map +1 -0
- package/dist/storage/QueryAdapter.d.ts +74 -0
- package/dist/storage/QueryAdapter.js +3 -0
- package/dist/storage/QueryAdapter.js.map +1 -0
- package/dist/storage/SparqlQueryAdapter.d.ts +34 -0
- package/dist/storage/SparqlQueryAdapter.js +229 -0
- package/dist/storage/SparqlQueryAdapter.js.map +1 -0
- package/dist/storage/aggregate/Max.d.ts +2 -0
- package/dist/storage/aggregate/Max.js +13 -0
- package/dist/storage/aggregate/Max.js.map +1 -0
- package/dist/storage/memory/MemoryQueryAdapter.d.ts +36 -0
- package/dist/storage/memory/MemoryQueryAdapter.js +246 -0
- package/dist/storage/memory/MemoryQueryAdapter.js.map +1 -0
- package/dist/storage/memory/MemoryQueryAdapterOptions.d.ts +12 -0
- package/dist/storage/memory/MemoryQueryAdapterOptions.js +3 -0
- package/dist/storage/memory/MemoryQueryAdapterOptions.js.map +1 -0
- package/dist/storage/operator/Equal.d.ts +2 -0
- package/dist/storage/operator/Equal.js +13 -0
- package/dist/storage/operator/Equal.js.map +1 -0
- package/dist/storage/operator/GreaterThan.d.ts +2 -0
- package/dist/storage/operator/GreaterThan.js +13 -0
- package/dist/storage/operator/GreaterThan.js.map +1 -0
- package/dist/storage/operator/GreaterThanOrEqual.d.ts +2 -0
- package/dist/storage/operator/GreaterThanOrEqual.js +13 -0
- package/dist/storage/operator/GreaterThanOrEqual.js.map +1 -0
- package/dist/storage/operator/In.d.ts +2 -0
- package/dist/storage/operator/In.js +13 -0
- package/dist/storage/operator/In.js.map +1 -0
- package/dist/storage/operator/Inverse.d.ts +2 -0
- package/dist/storage/operator/Inverse.js +13 -0
- package/dist/storage/operator/Inverse.js.map +1 -0
- package/dist/storage/operator/LessThan.d.ts +2 -0
- package/dist/storage/operator/LessThan.js +13 -0
- package/dist/storage/operator/LessThan.js.map +1 -0
- package/dist/storage/operator/LessThanOrEqual.d.ts +2 -0
- package/dist/storage/operator/LessThanOrEqual.js +13 -0
- package/dist/storage/operator/LessThanOrEqual.js.map +1 -0
- package/dist/storage/operator/Not.d.ts +2 -0
- package/dist/storage/operator/Not.js +13 -0
- package/dist/storage/operator/Not.js.map +1 -0
- package/dist/storage/sparql/SparqlQueryAdapter.d.ts +40 -0
- package/dist/storage/sparql/SparqlQueryAdapter.js +235 -0
- package/dist/storage/sparql/SparqlQueryAdapter.js.map +1 -0
- package/dist/storage/sparql/SparqlQueryAdapterOptions.d.ts +15 -0
- package/dist/storage/sparql/SparqlQueryAdapterOptions.js +3 -0
- package/dist/storage/sparql/SparqlQueryAdapterOptions.js.map +1 -0
- package/dist/storage/sparql/SparqlQueryBuilder.d.ts +81 -0
- package/dist/storage/sparql/SparqlQueryBuilder.js +553 -0
- package/dist/storage/sparql/SparqlQueryBuilder.js.map +1 -0
- package/dist/storage/sparql/SparqlUpdateBuilder.d.ts +31 -0
- package/dist/storage/sparql/SparqlUpdateBuilder.js +190 -0
- package/dist/storage/sparql/SparqlUpdateBuilder.js.map +1 -0
- package/dist/storage/sparql/VariableGenerator.d.ts +4 -0
- package/dist/storage/sparql/VariableGenerator.js +14 -0
- package/dist/storage/sparql/VariableGenerator.js.map +1 -0
- package/dist/util/TripleUtil.d.ts +21 -0
- package/dist/util/TripleUtil.js +221 -0
- package/dist/util/TripleUtil.js.map +1 -0
- package/dist/util/Types.d.ts +10 -0
- package/dist/util/Types.js +3 -0
- package/dist/util/Types.js.map +1 -0
- package/dist/util/Util.d.ts +15 -0
- package/dist/util/Util.js +94 -0
- package/dist/util/Util.js.map +1 -0
- package/dist/util/VariableGenerator.d.ts +5 -0
- package/dist/util/VariableGenerator.js +29 -0
- package/dist/util/VariableGenerator.js.map +1 -0
- package/dist/util/Vocabularies.d.ts +12 -0
- package/dist/util/Vocabularies.js +118 -0
- package/dist/util/Vocabularies.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1,190 @@
|
|
|
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.SparqlUpdateBuilder = void 0;
|
|
7
|
+
const rmlmapper_js_1 = require("@comake/rmlmapper-js");
|
|
8
|
+
const data_model_1 = __importDefault(require("@rdfjs/data-model"));
|
|
9
|
+
const TripleUtil_1 = require("../../util/TripleUtil");
|
|
10
|
+
const Util_1 = require("../../util/Util");
|
|
11
|
+
const Vocabularies_1 = require("../../util/Vocabularies");
|
|
12
|
+
const VariableGenerator_1 = require("./VariableGenerator");
|
|
13
|
+
class SparqlUpdateBuilder {
|
|
14
|
+
constructor(args) {
|
|
15
|
+
this.variableGenerator = new VariableGenerator_1.VariableGenerator();
|
|
16
|
+
this.setTimestamps = args?.setTimestamps ?? false;
|
|
17
|
+
}
|
|
18
|
+
buildUpdate(entityOrEntities) {
|
|
19
|
+
const entities = (0, Util_1.ensureArray)(entityOrEntities);
|
|
20
|
+
const { insertions, deletions } = this.entitiesToGraphDeletionsAndInsertions(entities);
|
|
21
|
+
return this.buildUpdateWithInsertionsAndDeletions(deletions, insertions);
|
|
22
|
+
}
|
|
23
|
+
buildDelete(entityOrEntities) {
|
|
24
|
+
const entities = (0, Util_1.ensureArray)(entityOrEntities);
|
|
25
|
+
const deletions = this.entitiesToGraphDeletions(entities);
|
|
26
|
+
return this.buildUpdateWithInsertionsAndDeletions(deletions);
|
|
27
|
+
}
|
|
28
|
+
buildDeleteAll() {
|
|
29
|
+
const updates = [{
|
|
30
|
+
updateType: 'deletewhere',
|
|
31
|
+
delete: [{
|
|
32
|
+
type: 'bgp',
|
|
33
|
+
triples: [{ subject: TripleUtil_1.subjectNode, predicate: TripleUtil_1.predicateNode, object: TripleUtil_1.objectNode }],
|
|
34
|
+
}],
|
|
35
|
+
}];
|
|
36
|
+
return this.sparqlUpdate(updates);
|
|
37
|
+
}
|
|
38
|
+
entitiesToGraphDeletionsAndInsertions(entities) {
|
|
39
|
+
return entities.reduce((obj, entity) => {
|
|
40
|
+
const entityGraphName = data_model_1.default.namedNode(entity['@id']);
|
|
41
|
+
obj.deletions.push(this.entityToGraphDeletion(entityGraphName));
|
|
42
|
+
obj.insertions.push(this.entityToGraphInsertion(entityGraphName, entity));
|
|
43
|
+
return obj;
|
|
44
|
+
}, { insertions: [], deletions: [] });
|
|
45
|
+
}
|
|
46
|
+
entitiesToGraphDeletions(entities) {
|
|
47
|
+
return entities.reduce((arr, entity) => {
|
|
48
|
+
const entityGraphName = data_model_1.default.namedNode(entity['@id']);
|
|
49
|
+
arr.push(this.entityToGraphDeletion(entityGraphName));
|
|
50
|
+
return arr;
|
|
51
|
+
}, []);
|
|
52
|
+
}
|
|
53
|
+
entityToGraphInsertion(entityGraphName, entity) {
|
|
54
|
+
const triples = this.entityToTriples(entity, entityGraphName);
|
|
55
|
+
return {
|
|
56
|
+
type: 'graph',
|
|
57
|
+
name: entityGraphName,
|
|
58
|
+
triples,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
entityToGraphDeletion(entityGraphName) {
|
|
62
|
+
const subject = data_model_1.default.variable(this.variableGenerator.getNext());
|
|
63
|
+
const predicate = data_model_1.default.variable(this.variableGenerator.getNext());
|
|
64
|
+
const object = data_model_1.default.variable(this.variableGenerator.getNext());
|
|
65
|
+
return {
|
|
66
|
+
type: 'graph',
|
|
67
|
+
name: entityGraphName,
|
|
68
|
+
triples: [{ subject, predicate, object }],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
entityToTriples(entity, subject) {
|
|
72
|
+
const entityTriples = Object.entries(entity).reduce((triples, [key, value]) => {
|
|
73
|
+
const values = (0, Util_1.ensureArray)(value);
|
|
74
|
+
if (key !== '@id') {
|
|
75
|
+
if (key === '@type') {
|
|
76
|
+
return [
|
|
77
|
+
...triples,
|
|
78
|
+
...this.buildTriplesWithSubjectPredicateAndIriValue(subject, TripleUtil_1.rdfTypeNamedNode, values),
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
return [
|
|
82
|
+
...triples,
|
|
83
|
+
...this.buildTriplesForSubjectPredicateAndValues(subject, key, values),
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
return triples;
|
|
87
|
+
}, []);
|
|
88
|
+
if (this.setTimestamps && subject.termType === 'NamedNode') {
|
|
89
|
+
if (!entity[Vocabularies_1.DCTERMS.created]) {
|
|
90
|
+
entityTriples.push({ subject, predicate: TripleUtil_1.created, object: TripleUtil_1.now });
|
|
91
|
+
}
|
|
92
|
+
entityTriples.push({ subject, predicate: TripleUtil_1.modified, object: TripleUtil_1.now });
|
|
93
|
+
}
|
|
94
|
+
return entityTriples;
|
|
95
|
+
}
|
|
96
|
+
buildTriplesForSubjectPredicateAndValues(subject, predicate, values) {
|
|
97
|
+
const predicateTerm = data_model_1.default.namedNode(predicate);
|
|
98
|
+
return values.flatMap((value) => this.buildTriplesWithSubjectPredicateAndValue(subject, predicateTerm, value));
|
|
99
|
+
}
|
|
100
|
+
buildTriplesWithSubjectPredicateAndIriValue(subject, predicate, values) {
|
|
101
|
+
return values.map((valueItem) => ({
|
|
102
|
+
subject,
|
|
103
|
+
predicate,
|
|
104
|
+
object: data_model_1.default.namedNode(valueItem),
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
buildTriplesWithSubjectPredicateAndValue(subject, predicate, value) {
|
|
108
|
+
const isObject = typeof value === 'object';
|
|
109
|
+
if (isObject) {
|
|
110
|
+
if ('@value' in value) {
|
|
111
|
+
return [{ subject, predicate, object: this.jsonLdValueObjectToLiteral(value) }];
|
|
112
|
+
}
|
|
113
|
+
const isReferenceObject = '@id' in value;
|
|
114
|
+
const isBlankNodeReferenceObject = !isReferenceObject || value['@id'].startsWith('_:');
|
|
115
|
+
if (isBlankNodeReferenceObject) {
|
|
116
|
+
return this.buildTriplesForBlankNode(subject, predicate, value);
|
|
117
|
+
}
|
|
118
|
+
if (isReferenceObject) {
|
|
119
|
+
return [{ subject, predicate, object: data_model_1.default.namedNode(value['@id']) }];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return [{ subject, predicate, object: (0, TripleUtil_1.valueToLiteral)(value) }];
|
|
123
|
+
}
|
|
124
|
+
jsonLdValueObjectToLiteral(value) {
|
|
125
|
+
if (typeof value['@value'] === 'object') {
|
|
126
|
+
return data_model_1.default.literal(JSON.stringify(value['@value']), rmlmapper_js_1.RDF.JSON);
|
|
127
|
+
}
|
|
128
|
+
if (value['@language']) {
|
|
129
|
+
return data_model_1.default.literal(value['@value'], value['@language']);
|
|
130
|
+
}
|
|
131
|
+
if (value['@type']) {
|
|
132
|
+
return data_model_1.default.literal(value['@value'].toString(), value['@type']);
|
|
133
|
+
}
|
|
134
|
+
return (0, TripleUtil_1.valueToLiteral)(value['@value']);
|
|
135
|
+
}
|
|
136
|
+
buildTriplesForBlankNode(subject, predicate, value) {
|
|
137
|
+
const blankNode = data_model_1.default.blankNode(this.variableGenerator.getNext());
|
|
138
|
+
return [
|
|
139
|
+
{ subject, predicate, object: blankNode },
|
|
140
|
+
...this.entityToTriples(value, blankNode),
|
|
141
|
+
];
|
|
142
|
+
}
|
|
143
|
+
buildUpdateWithInsertionsAndDeletions(deletions, insertions = []) {
|
|
144
|
+
const updates = this.createUpdatesFromInsertionsAndDeletions(deletions, insertions);
|
|
145
|
+
return this.sparqlUpdate(updates);
|
|
146
|
+
}
|
|
147
|
+
createUpdatesFromInsertionsAndDeletions(deletions, insertions) {
|
|
148
|
+
const updates = [];
|
|
149
|
+
if (deletions.length > 0) {
|
|
150
|
+
updates.push({
|
|
151
|
+
updateType: 'deletewhere',
|
|
152
|
+
delete: deletions,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
if (insertions.length > 0) {
|
|
156
|
+
const insert = { updateType: 'insert', insert: insertions };
|
|
157
|
+
if (this.setTimestamps) {
|
|
158
|
+
insert.where = [this.selectNow()];
|
|
159
|
+
}
|
|
160
|
+
updates.push(insert);
|
|
161
|
+
}
|
|
162
|
+
return updates;
|
|
163
|
+
}
|
|
164
|
+
sparqlUpdate(updates) {
|
|
165
|
+
return {
|
|
166
|
+
type: 'update',
|
|
167
|
+
prefixes: {},
|
|
168
|
+
updates,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
selectNow() {
|
|
172
|
+
return {
|
|
173
|
+
type: 'query',
|
|
174
|
+
queryType: 'SELECT',
|
|
175
|
+
prefixes: {},
|
|
176
|
+
variables: [TripleUtil_1.now],
|
|
177
|
+
where: [{
|
|
178
|
+
type: 'bind',
|
|
179
|
+
variable: TripleUtil_1.now,
|
|
180
|
+
expression: {
|
|
181
|
+
type: 'operation',
|
|
182
|
+
operator: 'now',
|
|
183
|
+
args: [],
|
|
184
|
+
},
|
|
185
|
+
}],
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
exports.SparqlUpdateBuilder = SparqlUpdateBuilder;
|
|
190
|
+
//# sourceMappingURL=SparqlUpdateBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SparqlUpdateBuilder.js","sourceRoot":"","sources":["../../../src/storage/sparql/SparqlUpdateBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA2C;AAC3C,mEAA4C;AAW5C,sDAS+B;AAE/B,0CAA8C;AAC9C,0DAAkD;AAClD,2DAAwD;AAWxD,MAAa,mBAAmB;IAI9B,YAAmB,IAA8B;QAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,aAAa,IAAI,KAAK,CAAC;IACpD,CAAC;IAEM,WAAW,CAAC,gBAAmC;QACpD,MAAM,QAAQ,GAAG,IAAA,kBAAW,EAAC,gBAAgB,CAAC,CAAC;QAC/C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,qCAAqC,CAAC,QAAQ,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,qCAAqC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3E,CAAC;IAEM,WAAW,CAAC,gBAAmC;QACpD,MAAM,QAAQ,GAAG,IAAA,kBAAW,EAAC,gBAAgB,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,qCAAqC,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;IAEM,cAAc;QACnB,MAAM,OAAO,GAAG,CAAC;gBACf,UAAU,EAAE,aAAa;gBACzB,MAAM,EAAE,CAAC;wBACP,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,wBAAW,EAAE,SAAS,EAAE,0BAAa,EAAE,MAAM,EAAE,uBAAU,EAAE,CAAC;qBAClF,CAAC;aACH,CAA4B,CAAC;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEO,qCAAqC,CAC3C,QAAkB;QAElB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAwB,EAAE,MAAM,EAAuB,EAAE;YAC/E,MAAM,eAAe,GAAG,oBAAW,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC;YAChE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1E,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAC,CAAC,CAAC;IACvC,CAAC;IAEO,wBAAwB,CAC9B,QAAkB;QAElB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAiB,EAAE,MAAM,EAAgB,EAAE;YACjE,MAAM,eAAe,GAAG,oBAAW,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC;YACtD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAEO,sBAAsB,CAAC,eAA0B,EAAE,MAAc;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,eAAe;YACrB,OAAO;SACR,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,eAA0B;QACtD,MAAM,OAAO,GAAG,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,MAAkB,EAAE,OAA8B;QACxE,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAiB,EAAE,CAAE,GAAG,EAAE,KAAK,CAAE,EAAY,EAAE;YAClG,MAAM,MAAM,GAAG,IAAA,kBAAW,EAAC,KAAK,CAAC,CAAC;YAClC,IAAI,GAAG,KAAK,KAAK,EAAE;gBACjB,IAAI,GAAG,KAAK,OAAO,EAAE;oBACnB,OAAO;wBACL,GAAG,OAAO;wBACV,GAAG,IAAI,CAAC,2CAA2C,CACjD,OAAO,EACP,6BAAgB,EAChB,MAAkB,CACnB;qBACF,CAAC;iBACH;gBACD,OAAO;oBACL,GAAG,OAAO;oBACV,GAAG,IAAI,CAAC,wCAAwC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC;iBACvE,CAAC;aACH;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE;YAC1D,IAAI,CAAC,MAAM,CAAC,sBAAO,CAAC,OAAO,CAAC,EAAE;gBAC5B,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAO,EAAE,MAAM,EAAE,gBAAG,EAAE,CAAC,CAAC;aAClE;YACD,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAQ,EAAE,MAAM,EAAE,gBAAG,EAAE,CAAC,CAAC;SACnE;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,wCAAwC,CAC9C,OAA8B,EAC9B,SAAiB,EACjB,MAAa;QAEb,MAAM,aAAa,GAAG,oBAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,EAAY,EAAE,CAC7C,IAAI,CAAC,wCAAwC,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IAEO,2CAA2C,CACjD,OAA8B,EAC9B,SAAoB,EACpB,MAAgB;QAEhB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAU,EAAE,CAAC,CAAC;YACxC,OAAO;YACP,SAAS;YACT,MAAM,EAAE,oBAAW,CAAC,SAAS,CAAC,SAAS,CAAC;SAC9B,CAAA,CAAC,CAAC;IAChB,CAAC;IAEO,wCAAwC,CAC9C,OAA8B,EAC9B,SAAoB,EACpB,KAAU;QAEV,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC;QAC3C,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,IAAI,KAAK,EAAE;gBACrB,OAAO,CAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAY,CAAE,CAAC;aAC7F;YAED,MAAM,iBAAiB,GAAG,KAAK,IAAI,KAAK,CAAC;YACzC,MAAM,0BAA0B,GAAG,CAAC,iBAAiB,IAAK,KAAK,CAAC,KAAK,CAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnG,IAAI,0BAA0B,EAAE;gBAC9B,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAmB,CAAC,CAAC;aAC/E;YACD,IAAI,iBAAiB,EAAE;gBACrB,OAAO,CAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAW,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAY,CAAE,CAAC;aAC1F;SACF;QACD,OAAO,CAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAA,2BAAc,EAAC,KAAK,CAAC,EAAY,CAAE,CAAC;IAC7E,CAAC;IAEO,0BAA0B,CAAC,KAAkB;QACnD,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;YACvC,OAAO,oBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAG,CAAC,IAAI,CAAC,CAAC;SACvE;QACD,IAAK,KAAa,CAAC,WAAW,CAAC,EAAE;YAC/B,OAAO,oBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAW,EAAG,KAAa,CAAC,WAAW,CAAC,CAAC,CAAC;SACpF;QACD,IAAK,KAAa,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,oBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAG,KAAa,CAAC,OAAO,CAAC,CAAC,CAAC;SACjF;QACD,OAAO,IAAA,2BAAc,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,CAAC;IAEO,wBAAwB,CAAC,OAA8B,EAAE,SAAoB,EAAE,KAAiB;QACtG,MAAM,SAAS,GAAG,oBAAW,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO;YACL,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;YACzC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;SAC1C,CAAC;IACJ,CAAC;IAEO,qCAAqC,CAC3C,SAAuB,EACvB,aAA2B,EAAE;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,uCAAuC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEO,uCAAuC,CAC7C,SAAuB,EACvB,UAAwB;QAExB,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,aAAa;gBACzB,MAAM,EAAE,SAAS;aACO,CAAC,CAAC;SAC7B;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAA2B,CAAC;YACrF,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,MAAM,CAAC,KAAK,GAAG,CAAE,IAAI,CAAC,SAAS,EAAE,CAAE,CAAC;aACrC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtB;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,OAA0B;QAC7C,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,OAAO;SACR,CAAC;IACJ,CAAC;IAEO,SAAS;QACf,OAAO;YACL,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,CAAE,gBAAG,CAAE;YAClB,KAAK,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,gBAAG;oBACb,UAAU,EAAE;wBACV,IAAI,EAAE,WAAW;wBACjB,QAAQ,EAAE,KAAK;wBACf,IAAI,EAAE,EAAE;qBACT;iBACF,CAAC;SACH,CAAC;IACJ,CAAC;CACF;AAhOD,kDAgOC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VariableGenerator = void 0;
|
|
4
|
+
class VariableGenerator {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.currentVariable = 0;
|
|
7
|
+
}
|
|
8
|
+
getNext() {
|
|
9
|
+
this.currentVariable += 1;
|
|
10
|
+
return `c${this.currentVariable}`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.VariableGenerator = VariableGenerator;
|
|
14
|
+
//# sourceMappingURL=VariableGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariableGenerator.js","sourceRoot":"","sources":["../../../src/storage/sparql/VariableGenerator.ts"],"names":[],"mappings":";;;AAAA,MAAa,iBAAiB;IAA9B;QACU,oBAAe,GAAG,CAAC,CAAC;IAM9B,CAAC;IAJQ,OAAO;QACZ,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;IACpC,CAAC;CACF;AAPD,8CAOC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Quad, Literal } from '@rdfjs/types';
|
|
2
|
+
import type { GraphObject, NodeObject } from 'jsonld';
|
|
3
|
+
import type { Frame } from 'jsonld/jsonld-spec';
|
|
4
|
+
import type { PropertyPath } from 'sparqljs';
|
|
5
|
+
import type { FindOptionsRelations } from '../storage/FindOptionsTypes';
|
|
6
|
+
import type { OrArray } from './Types';
|
|
7
|
+
export declare const rdfTypeNamedNode: import("@rdfjs/types").NamedNode<"http://www.w3.org/1999/02/22-rdf-syntax-ns#type">;
|
|
8
|
+
export declare const rdfsSubClassOfNamedNode: import("@rdfjs/types").NamedNode<"http://www.w3.org/2000/01/rdf-schema#subClassOf">;
|
|
9
|
+
export declare const subjectNode: import("@rdfjs/types").Variable;
|
|
10
|
+
export declare const predicateNode: import("@rdfjs/types").Variable;
|
|
11
|
+
export declare const objectNode: import("@rdfjs/types").Variable;
|
|
12
|
+
export declare const entityVariable: import("@rdfjs/types").Variable;
|
|
13
|
+
export declare const countVariable: import("@rdfjs/types").Variable;
|
|
14
|
+
export declare const now: import("@rdfjs/types").Variable;
|
|
15
|
+
export declare const created: import("@rdfjs/types").NamedNode<"http://purl.org/dc/terms/created">;
|
|
16
|
+
export declare const modified: import("@rdfjs/types").NamedNode<"http://purl.org/dc/terms/modified">;
|
|
17
|
+
export declare const allTypesAndSuperTypesPath: PropertyPath;
|
|
18
|
+
export declare function toJSValueFromDataType(value: string, dataType: string): number | boolean | string;
|
|
19
|
+
export declare function triplesToJsonld(triples: Quad[], relations?: FindOptionsRelations, orderedNodeIds?: string[]): Promise<OrArray<NodeObject>>;
|
|
20
|
+
export declare function triplesToJsonldWithFrame(triples: Quad[], frame?: Frame, relations?: FindOptionsRelations): Promise<GraphObject>;
|
|
21
|
+
export declare function valueToLiteral(value: string | boolean | number | Date): Literal;
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.valueToLiteral = exports.triplesToJsonldWithFrame = exports.triplesToJsonld = exports.toJSValueFromDataType = exports.allTypesAndSuperTypesPath = exports.modified = exports.created = exports.now = exports.countVariable = exports.entityVariable = exports.objectNode = exports.predicateNode = exports.subjectNode = exports.rdfsSubClassOfNamedNode = exports.rdfTypeNamedNode = void 0;
|
|
30
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
31
|
+
const data_model_1 = __importDefault(require("@rdfjs/data-model"));
|
|
32
|
+
const jsonld = __importStar(require("jsonld"));
|
|
33
|
+
const Vocabularies_1 = require("./Vocabularies");
|
|
34
|
+
exports.rdfTypeNamedNode = data_model_1.default.namedNode(Vocabularies_1.RDF.type);
|
|
35
|
+
exports.rdfsSubClassOfNamedNode = data_model_1.default.namedNode(Vocabularies_1.RDFS.subClassOf);
|
|
36
|
+
exports.subjectNode = data_model_1.default.variable('subject');
|
|
37
|
+
exports.predicateNode = data_model_1.default.variable('predicate');
|
|
38
|
+
exports.objectNode = data_model_1.default.variable('object');
|
|
39
|
+
exports.entityVariable = data_model_1.default.variable('entity');
|
|
40
|
+
exports.countVariable = data_model_1.default.variable('count');
|
|
41
|
+
exports.now = data_model_1.default.variable('now');
|
|
42
|
+
exports.created = data_model_1.default.namedNode(Vocabularies_1.DCTERMS.created);
|
|
43
|
+
exports.modified = data_model_1.default.namedNode(Vocabularies_1.DCTERMS.modified);
|
|
44
|
+
const BLANK_NODE_PREFIX = '_:';
|
|
45
|
+
exports.allTypesAndSuperTypesPath = {
|
|
46
|
+
type: 'path',
|
|
47
|
+
pathType: '/',
|
|
48
|
+
items: [
|
|
49
|
+
exports.rdfTypeNamedNode,
|
|
50
|
+
{
|
|
51
|
+
type: 'path',
|
|
52
|
+
pathType: '*',
|
|
53
|
+
items: [exports.rdfsSubClassOfNamedNode],
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
57
|
+
function toJSValueFromDataType(value, dataType) {
|
|
58
|
+
switch (dataType) {
|
|
59
|
+
case Vocabularies_1.XSD.int:
|
|
60
|
+
case Vocabularies_1.XSD.positiveInteger:
|
|
61
|
+
case Vocabularies_1.XSD.negativeInteger:
|
|
62
|
+
case Vocabularies_1.XSD.integer: {
|
|
63
|
+
return Number.parseInt(value, 10);
|
|
64
|
+
}
|
|
65
|
+
case Vocabularies_1.XSD.boolean: {
|
|
66
|
+
if (value === 'true') {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
if (value === 'false') {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
case Vocabularies_1.XSD.double:
|
|
75
|
+
case Vocabularies_1.XSD.decimal:
|
|
76
|
+
case Vocabularies_1.XSD.float: {
|
|
77
|
+
return Number.parseFloat(value);
|
|
78
|
+
}
|
|
79
|
+
case Vocabularies_1.RDF.JSON:
|
|
80
|
+
return JSON.parse(value);
|
|
81
|
+
default: {
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.toJSValueFromDataType = toJSValueFromDataType;
|
|
87
|
+
function toJsonLdObject(object) {
|
|
88
|
+
if (object.termType === 'Literal') {
|
|
89
|
+
if (object.language && object.language.length > 0) {
|
|
90
|
+
return {
|
|
91
|
+
'@value': object.value,
|
|
92
|
+
'@language': object.language,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
'@value': toJSValueFromDataType(object.value, object.datatype.value),
|
|
97
|
+
'@type': object.datatype.value === Vocabularies_1.RDF.JSON ? '@json' : object.datatype.value,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (object.termType === 'BlankNode') {
|
|
101
|
+
return { '@id': `_:${object.value}` };
|
|
102
|
+
}
|
|
103
|
+
return { '@id': object.value };
|
|
104
|
+
}
|
|
105
|
+
function toJsonLdSubject(object) {
|
|
106
|
+
if (object.termType === 'BlankNode') {
|
|
107
|
+
return `_:${object.value}`;
|
|
108
|
+
}
|
|
109
|
+
return object.value;
|
|
110
|
+
}
|
|
111
|
+
function relationsToFrame(relations) {
|
|
112
|
+
return Object.entries(relations).reduce((obj, [field, value]) => ({
|
|
113
|
+
...obj,
|
|
114
|
+
[field]: typeof value === 'boolean' ? {} : relationsToFrame(value),
|
|
115
|
+
}), {});
|
|
116
|
+
}
|
|
117
|
+
function triplesToNodes(triples) {
|
|
118
|
+
const nodeIdOrder = [];
|
|
119
|
+
const nodesById = triples.reduce((obj, triple) => {
|
|
120
|
+
const subject = toJsonLdSubject(triple.subject);
|
|
121
|
+
const isTypePredicate = triple.predicate.value === Vocabularies_1.RDF.type;
|
|
122
|
+
const predicate = isTypePredicate ? '@type' : triple.predicate.value;
|
|
123
|
+
const object = isTypePredicate ? triple.object.value : toJsonLdObject(triple.object);
|
|
124
|
+
if (obj[subject]) {
|
|
125
|
+
if (obj[subject][predicate]) {
|
|
126
|
+
if (Array.isArray(obj[subject][predicate])) {
|
|
127
|
+
obj[subject][predicate].push(object);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
obj[subject][predicate] = [
|
|
131
|
+
obj[subject][predicate],
|
|
132
|
+
object,
|
|
133
|
+
];
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
obj[subject][predicate] = object;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
obj[subject] = {
|
|
142
|
+
'@id': subject,
|
|
143
|
+
[predicate]: object,
|
|
144
|
+
};
|
|
145
|
+
if (!subject.startsWith(BLANK_NODE_PREFIX)) {
|
|
146
|
+
nodeIdOrder.push(subject);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return obj;
|
|
150
|
+
}, {});
|
|
151
|
+
return { nodesById, nodeIdOrder };
|
|
152
|
+
}
|
|
153
|
+
async function frameWithRelationsOrNonBlankNodes(nodesById, relations, frame) {
|
|
154
|
+
let appliedFrame;
|
|
155
|
+
if (!frame) {
|
|
156
|
+
if (relations) {
|
|
157
|
+
appliedFrame = relationsToFrame(relations);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
const nonBlankNodes = Object.keys(nodesById)
|
|
161
|
+
.filter((nodeId) => !nodeId.startsWith(BLANK_NODE_PREFIX));
|
|
162
|
+
appliedFrame = { '@id': nonBlankNodes };
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
appliedFrame = frame;
|
|
167
|
+
}
|
|
168
|
+
return await jsonld.frame({ '@graph': Object.values(nodesById) }, appliedFrame);
|
|
169
|
+
}
|
|
170
|
+
function sortNodesByOrder(nodes, nodeIdOrder) {
|
|
171
|
+
return nodes
|
|
172
|
+
.sort((aNode, bNode) => nodeIdOrder.indexOf(aNode['@id']) - nodeIdOrder.indexOf(bNode['@id']));
|
|
173
|
+
}
|
|
174
|
+
function sortGraphOfNodeObject(graphObject, nodeIdOrder) {
|
|
175
|
+
return {
|
|
176
|
+
...graphObject,
|
|
177
|
+
'@graph': sortNodesByOrder(graphObject['@graph'], nodeIdOrder),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
async function triplesToJsonld(triples, relations, orderedNodeIds) {
|
|
181
|
+
const { nodeIdOrder, nodesById } = triplesToNodes(triples);
|
|
182
|
+
const framed = await frameWithRelationsOrNonBlankNodes(nodesById, relations);
|
|
183
|
+
if ('@graph' in framed) {
|
|
184
|
+
return sortNodesByOrder(framed['@graph'], orderedNodeIds ?? nodeIdOrder);
|
|
185
|
+
}
|
|
186
|
+
return framed;
|
|
187
|
+
}
|
|
188
|
+
exports.triplesToJsonld = triplesToJsonld;
|
|
189
|
+
async function triplesToJsonldWithFrame(triples, frame, relations) {
|
|
190
|
+
const { nodeIdOrder, nodesById } = triplesToNodes(triples);
|
|
191
|
+
const framed = await frameWithRelationsOrNonBlankNodes(nodesById, relations, frame);
|
|
192
|
+
if ('@graph' in framed) {
|
|
193
|
+
return sortGraphOfNodeObject(framed, nodeIdOrder);
|
|
194
|
+
}
|
|
195
|
+
const { '@context': context, ...framedWithoutContext } = framed;
|
|
196
|
+
const graphObject = {
|
|
197
|
+
'@graph': [framedWithoutContext],
|
|
198
|
+
};
|
|
199
|
+
if (context) {
|
|
200
|
+
graphObject['@context'] = context;
|
|
201
|
+
}
|
|
202
|
+
return graphObject;
|
|
203
|
+
}
|
|
204
|
+
exports.triplesToJsonldWithFrame = triplesToJsonldWithFrame;
|
|
205
|
+
function valueToLiteral(value) {
|
|
206
|
+
if (typeof value === 'number') {
|
|
207
|
+
if (Number.isInteger(value)) {
|
|
208
|
+
return data_model_1.default.literal(value.toString(), Vocabularies_1.XSD.integer);
|
|
209
|
+
}
|
|
210
|
+
return data_model_1.default.literal(value.toString(), Vocabularies_1.XSD.decimal);
|
|
211
|
+
}
|
|
212
|
+
if (typeof value === 'boolean') {
|
|
213
|
+
return data_model_1.default.literal(value.toString(), Vocabularies_1.XSD.boolean);
|
|
214
|
+
}
|
|
215
|
+
if (value instanceof Date) {
|
|
216
|
+
return data_model_1.default.literal(value.toISOString(), Vocabularies_1.XSD.dateTime);
|
|
217
|
+
}
|
|
218
|
+
return data_model_1.default.literal(value.toString());
|
|
219
|
+
}
|
|
220
|
+
exports.valueToLiteral = valueToLiteral;
|
|
221
|
+
//# sourceMappingURL=TripleUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TripleUtil.js","sourceRoot":"","sources":["../../src/util/TripleUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GraphObject, IdMap, IncludedBlock, IndexMap, LanguageMap, ListObject, NodeObject, SetObject, TypeMap, ValueObject } from 'jsonld';
|
|
2
|
+
export declare type PossibleArrayFieldValues = boolean | number | string | NodeObject | GraphObject | ValueObject | ListObject | SetObject;
|
|
3
|
+
export declare type EntityFieldSingularValue = boolean | number | string | NodeObject | GraphObject | ValueObject | ListObject | SetObject;
|
|
4
|
+
export declare type EntityFieldValue = OrArray<EntityFieldSingularValue> | LanguageMap | IndexMap | IncludedBlock | IdMap | TypeMap | NodeObject[keyof NodeObject];
|
|
5
|
+
export interface Entity {
|
|
6
|
+
'@id': string;
|
|
7
|
+
'@type': OrArray<string>;
|
|
8
|
+
[key: string]: EntityFieldValue;
|
|
9
|
+
}
|
|
10
|
+
export declare type OrArray<T> = T | T[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/util/Types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { NodeObject } from 'jsonld';
|
|
2
|
+
import { Store } from 'n3';
|
|
3
|
+
import type { EntityFieldValue } from './Types';
|
|
4
|
+
export declare type JSONPrimitive = string | number | boolean | null;
|
|
5
|
+
export declare type JSONObject = Record<string, JSONValue>;
|
|
6
|
+
export interface JSONArray extends Array<JSONValue> {
|
|
7
|
+
}
|
|
8
|
+
export declare type JSONValue = JSONPrimitive | {
|
|
9
|
+
[x: string]: JSONValue;
|
|
10
|
+
} | JSONValue[];
|
|
11
|
+
export declare function convertJsonLdToQuads(jsonldDoc: any): Promise<Store>;
|
|
12
|
+
export declare function toJSON(jsonLd: NodeObject, convertBeyondFirstLevel?: boolean): JSONObject;
|
|
13
|
+
export declare function ensureArray<T>(arrayable: T | T[]): T[];
|
|
14
|
+
export declare function getValueIfDefined<T>(fieldValue?: EntityFieldValue): T | undefined;
|
|
15
|
+
export declare function isUrl(value: any): boolean;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.isUrl = exports.getValueIfDefined = exports.ensureArray = exports.toJSON = exports.convertJsonLdToQuads = void 0;
|
|
27
|
+
const jsonld = __importStar(require("jsonld"));
|
|
28
|
+
const n3_1 = require("n3");
|
|
29
|
+
async function convertJsonLdToQuads(jsonldDoc) {
|
|
30
|
+
const nquads = await jsonld.toRDF(jsonldDoc, { format: 'application/n-quads' });
|
|
31
|
+
const turtleParser = new n3_1.Parser({ format: 'application/n-quads' });
|
|
32
|
+
const store = new n3_1.Store();
|
|
33
|
+
turtleParser.parse(nquads).forEach((quad) => {
|
|
34
|
+
store.addQuad(quad);
|
|
35
|
+
});
|
|
36
|
+
return store;
|
|
37
|
+
}
|
|
38
|
+
exports.convertJsonLdToQuads = convertJsonLdToQuads;
|
|
39
|
+
function toJSON(jsonLd, convertBeyondFirstLevel = true) {
|
|
40
|
+
['@context', '@id', '@type'].forEach((key) => {
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
42
|
+
delete jsonLd[key];
|
|
43
|
+
});
|
|
44
|
+
if (convertBeyondFirstLevel) {
|
|
45
|
+
Object.keys(jsonLd).forEach((key) => {
|
|
46
|
+
if (Array.isArray(jsonLd[key])) {
|
|
47
|
+
jsonLd[key].forEach((item, index) => {
|
|
48
|
+
if (typeof item === 'object') {
|
|
49
|
+
jsonLd[key][index] = toJSON(item);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else if (typeof jsonLd[key] === 'object') {
|
|
54
|
+
jsonLd[key] = toJSON(jsonLd[key]);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return jsonLd;
|
|
59
|
+
}
|
|
60
|
+
exports.toJSON = toJSON;
|
|
61
|
+
function ensureArray(arrayable) {
|
|
62
|
+
if (arrayable !== null && arrayable !== undefined) {
|
|
63
|
+
return Array.isArray(arrayable) ? arrayable : [arrayable];
|
|
64
|
+
}
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
exports.ensureArray = ensureArray;
|
|
68
|
+
function getValueIfDefined(fieldValue) {
|
|
69
|
+
if (fieldValue && Array.isArray(fieldValue)) {
|
|
70
|
+
return fieldValue.map((valueItem) => getValueIfDefined(valueItem));
|
|
71
|
+
}
|
|
72
|
+
if (fieldValue && typeof fieldValue === 'object') {
|
|
73
|
+
return fieldValue['@value'];
|
|
74
|
+
}
|
|
75
|
+
if (fieldValue !== undefined && fieldValue !== null) {
|
|
76
|
+
return fieldValue;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.getValueIfDefined = getValueIfDefined;
|
|
80
|
+
function isUrl(value) {
|
|
81
|
+
if (typeof value !== 'string') {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
// eslint-disable-next-line no-new
|
|
86
|
+
new URL(value);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.isUrl = isUrl;
|
|
94
|
+
//# sourceMappingURL=Util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Util.js","sourceRoot":"","sources":["../../src/util/Util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VariableGenerator = void 0;
|
|
4
|
+
const alphabet = [
|
|
5
|
+
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
|
|
6
|
+
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
|
7
|
+
];
|
|
8
|
+
class VariableGenerator {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.currentVariable = [];
|
|
11
|
+
}
|
|
12
|
+
getNext() {
|
|
13
|
+
const next = this.increaseByOne(this.currentVariable);
|
|
14
|
+
this.currentVariable = next;
|
|
15
|
+
return next.map((idx) => alphabet[idx]).join('');
|
|
16
|
+
}
|
|
17
|
+
increaseByOne(arr) {
|
|
18
|
+
if (arr.length === 0) {
|
|
19
|
+
return [0];
|
|
20
|
+
}
|
|
21
|
+
const first = arr[0];
|
|
22
|
+
if (first === alphabet.length - 1) {
|
|
23
|
+
return [0, ...this.increaseByOne(arr.slice(1))];
|
|
24
|
+
}
|
|
25
|
+
return [arr[0] + 1, ...arr.slice(1)];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.VariableGenerator = VariableGenerator;
|
|
29
|
+
//# sourceMappingURL=VariableGenerator.js.map
|