@oml/owl 0.13.0 → 0.14.1
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/out/owl/owl-abox.js +25 -34
- package/out/owl/owl-abox.js.map +1 -1
- package/out/owl/owl-interfaces.d.ts +1 -1
- package/out/owl/owl-service.js +9 -9
- package/out/owl/owl-service.js.map +1 -1
- package/out/owl/owl-shacl.d.ts +3 -3
- package/out/owl/owl-shacl.js +15 -15
- package/out/owl/owl-shacl.js.map +1 -1
- package/out/owl/owl-sparql.d.ts +6 -1
- package/out/owl/owl-sparql.js +135 -16
- package/out/owl/owl-sparql.js.map +1 -1
- package/out/owl/owl-store.d.ts +0 -3
- package/out/owl/owl-store.js +11 -35
- package/out/owl/owl-store.js.map +1 -1
- package/package.json +2 -2
- package/src/owl/owl-abox.ts +25 -37
- package/src/owl/owl-interfaces.ts +1 -1
- package/src/owl/owl-service.ts +9 -8
- package/src/owl/owl-shacl.ts +18 -19
- package/src/owl/owl-sparql.ts +156 -17
- package/src/owl/owl-store.ts +11 -37
package/out/owl/owl-sparql.js
CHANGED
|
@@ -4,11 +4,94 @@
|
|
|
4
4
|
// the Worker constructor is mocked in browser-server.ts to prevent nested worker spawning while
|
|
5
5
|
// allowing Comunica to initialize and execute queries successfully (without parallel execution).
|
|
6
6
|
import { QueryEngine } from '@comunica/query-sparql';
|
|
7
|
-
import { Store } from 'n3';
|
|
7
|
+
import { DataFactory, Store } from 'n3';
|
|
8
8
|
import { deriveSelectQueryFromShacl } from './owl-shacl.js';
|
|
9
|
+
export function detectSparqlKind(sparql) {
|
|
10
|
+
const cleaned = sparql
|
|
11
|
+
.replace(/#[^\r\n]*/g, ' ')
|
|
12
|
+
.trim()
|
|
13
|
+
.toUpperCase();
|
|
14
|
+
const match = cleaned.match(/\b(SELECT|ASK|CONSTRUCT|DESCRIBE)\b/);
|
|
15
|
+
const keyword = match?.[1];
|
|
16
|
+
if (keyword === 'SELECT') {
|
|
17
|
+
return 'select';
|
|
18
|
+
}
|
|
19
|
+
if (keyword === 'ASK') {
|
|
20
|
+
return 'ask';
|
|
21
|
+
}
|
|
22
|
+
if (keyword === 'CONSTRUCT') {
|
|
23
|
+
return 'construct';
|
|
24
|
+
}
|
|
25
|
+
if (keyword === 'DESCRIBE') {
|
|
26
|
+
return 'describe';
|
|
27
|
+
}
|
|
28
|
+
return 'unknown';
|
|
29
|
+
}
|
|
30
|
+
function extractWhereBodyAndTail(sparql) {
|
|
31
|
+
const whereMatch = /\bWHERE\b/i.exec(sparql);
|
|
32
|
+
if (!whereMatch || whereMatch.index < 0) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
let cursor = whereMatch.index + whereMatch[0].length;
|
|
36
|
+
while (cursor < sparql.length && /\s/.test(sparql[cursor])) {
|
|
37
|
+
cursor += 1;
|
|
38
|
+
}
|
|
39
|
+
if (sparql[cursor] !== '{') {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
const bodyStart = cursor + 1;
|
|
43
|
+
let depth = 1;
|
|
44
|
+
cursor += 1;
|
|
45
|
+
while (cursor < sparql.length && depth > 0) {
|
|
46
|
+
const ch = sparql[cursor];
|
|
47
|
+
if (ch === '{') {
|
|
48
|
+
depth += 1;
|
|
49
|
+
}
|
|
50
|
+
else if (ch === '}') {
|
|
51
|
+
depth -= 1;
|
|
52
|
+
}
|
|
53
|
+
cursor += 1;
|
|
54
|
+
}
|
|
55
|
+
if (depth !== 0) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
const bodyEnd = cursor - 1;
|
|
59
|
+
const body = sparql.slice(bodyStart, bodyEnd).trim();
|
|
60
|
+
const tail = sparql.slice(cursor).trim();
|
|
61
|
+
return { body, tail };
|
|
62
|
+
}
|
|
63
|
+
function rewriteDescribeToConstruct(sparql) {
|
|
64
|
+
const normalized = sparql.trim().replace(/\s+/g, ' ');
|
|
65
|
+
const describeMatch = /^DESCRIBE\s+(.+?)\s+(WHERE\b.*)$/is.exec(normalized);
|
|
66
|
+
if (!describeMatch) {
|
|
67
|
+
return sparql;
|
|
68
|
+
}
|
|
69
|
+
const describeVarsRaw = describeMatch[1].trim();
|
|
70
|
+
const whereAndTail = describeMatch[2];
|
|
71
|
+
const parsedWhere = extractWhereBodyAndTail(whereAndTail);
|
|
72
|
+
if (!parsedWhere) {
|
|
73
|
+
return sparql;
|
|
74
|
+
}
|
|
75
|
+
const variables = describeVarsRaw === '*'
|
|
76
|
+
? ['?s']
|
|
77
|
+
: describeVarsRaw
|
|
78
|
+
.split(/\s+/)
|
|
79
|
+
.filter((token) => token.startsWith('?'));
|
|
80
|
+
if (variables.length === 0) {
|
|
81
|
+
return sparql;
|
|
82
|
+
}
|
|
83
|
+
const constructTriples = variables
|
|
84
|
+
.map((variable, index) => `${variable} ?__p${index} ?__o${index} .`)
|
|
85
|
+
.join(' ');
|
|
86
|
+
const whereTriples = variables
|
|
87
|
+
.map((variable, index) => `OPTIONAL { ${variable} ?__p${index} ?__o${index} . }`)
|
|
88
|
+
.join(' ');
|
|
89
|
+
const tail = parsedWhere.tail ? ` ${parsedWhere.tail}` : '';
|
|
90
|
+
return `CONSTRUCT { ${constructTriples} } WHERE { ${parsedWhere.body} ${whereTriples} }${tail}`;
|
|
91
|
+
}
|
|
9
92
|
export const deriveSelectQueryFromShape = deriveSelectQueryFromShacl;
|
|
10
93
|
export class SparqlService {
|
|
11
|
-
constructor(reasoningStore, importGraph, aboxEntailmentCache, reasoningService) {
|
|
94
|
+
constructor(reasoningStore, importGraph, aboxEntailmentCache, reasoningService, resolveOntologyIriForModelUri) {
|
|
12
95
|
this.reasoningStore = reasoningStore;
|
|
13
96
|
this.importGraph = importGraph;
|
|
14
97
|
this.aboxEntailmentCache = aboxEntailmentCache;
|
|
@@ -16,6 +99,10 @@ export class SparqlService {
|
|
|
16
99
|
this.engine = new QueryEngine();
|
|
17
100
|
this.filteredStoreCache = new Map();
|
|
18
101
|
this.dirtyFilteredStores = new Set();
|
|
102
|
+
this.ontologyIriResolver = resolveOntologyIriForModelUri ?? ((modelUri) => modelUri);
|
|
103
|
+
}
|
|
104
|
+
setOntologyIriResolver(resolver) {
|
|
105
|
+
this.ontologyIriResolver = resolver;
|
|
19
106
|
}
|
|
20
107
|
/**
|
|
21
108
|
* Executes a SPARQL query over the model's reasoned context.
|
|
@@ -61,7 +148,8 @@ export class SparqlService {
|
|
|
61
148
|
const warnings = this.composeWarnings(modelUri, queryContext.missingModels);
|
|
62
149
|
const filteredStore = this.getOrCreateFilteredStore(modelUri, queryContext);
|
|
63
150
|
const baseIRI = this.resolveBaseIri(modelUri);
|
|
64
|
-
const
|
|
151
|
+
const rewritten = detectSparqlKind(sparql) === 'describe' ? rewriteDescribeToConstruct(sparql) : sparql;
|
|
152
|
+
const quadsStream = await this.engine.queryQuads(rewritten, {
|
|
65
153
|
sources: [filteredStore],
|
|
66
154
|
unionDefaultGraph: true,
|
|
67
155
|
baseIRI,
|
|
@@ -113,7 +201,18 @@ export class SparqlService {
|
|
|
113
201
|
}
|
|
114
202
|
}
|
|
115
203
|
getAvailableGraphs(modelUri) {
|
|
116
|
-
|
|
204
|
+
const seen = new Set();
|
|
205
|
+
const graphs = [];
|
|
206
|
+
for (const mapping of this.getQueryContext(modelUri).mappings) {
|
|
207
|
+
for (const graph of [mapping.targetOwnGraph, mapping.targetEntailmentsGraph]) {
|
|
208
|
+
if (seen.has(graph.value)) {
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
seen.add(graph.value);
|
|
212
|
+
graphs.push(graph);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return graphs;
|
|
117
216
|
}
|
|
118
217
|
invalidateFilteredStore(modelUri) {
|
|
119
218
|
this.filteredStoreCache.delete(modelUri);
|
|
@@ -181,7 +280,7 @@ export class SparqlService {
|
|
|
181
280
|
getQueryContext(modelUri) {
|
|
182
281
|
const allUris = [modelUri, ...this.importGraph.dependenciesOf(modelUri)];
|
|
183
282
|
const seen = new Set();
|
|
184
|
-
const
|
|
283
|
+
const mappings = [];
|
|
185
284
|
const missingModels = [];
|
|
186
285
|
for (const uri of allUris) {
|
|
187
286
|
let own;
|
|
@@ -193,15 +292,29 @@ export class SparqlService {
|
|
|
193
292
|
missingModels.push(uri);
|
|
194
293
|
continue;
|
|
195
294
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
continue;
|
|
199
|
-
}
|
|
200
|
-
seen.add(graph.value);
|
|
201
|
-
graphs.push(graph);
|
|
295
|
+
if (seen.has(uri)) {
|
|
296
|
+
continue;
|
|
202
297
|
}
|
|
298
|
+
seen.add(uri);
|
|
299
|
+
const resolved = this.ontologyIriResolver(uri);
|
|
300
|
+
if (!resolved || resolved === uri) {
|
|
301
|
+
throw new Error(`Missing ontology IRI mapping for model '${uri}'.`);
|
|
302
|
+
}
|
|
303
|
+
const ontologyIri = this.toOntologyGraphIri(resolved);
|
|
304
|
+
mappings.push({
|
|
305
|
+
ownGraph: own,
|
|
306
|
+
entailmentsGraph: entailments,
|
|
307
|
+
targetOwnGraph: DataFactory.namedNode(ontologyIri),
|
|
308
|
+
targetEntailmentsGraph: DataFactory.namedNode(`${ontologyIri}__entailments`),
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
return { mappings, missingModels };
|
|
312
|
+
}
|
|
313
|
+
toOntologyGraphIri(iri) {
|
|
314
|
+
if (iri.endsWith('#')) {
|
|
315
|
+
return iri.slice(0, -1);
|
|
203
316
|
}
|
|
204
|
-
return
|
|
317
|
+
return iri;
|
|
205
318
|
}
|
|
206
319
|
toRdfTerm(term) {
|
|
207
320
|
if (term.termType === 'NamedNode') {
|
|
@@ -229,12 +342,18 @@ export class SparqlService {
|
|
|
229
342
|
.flatMap((uri) => this.aboxEntailmentCache.getValidationWarnings(uri));
|
|
230
343
|
return [...new Set([...this.toMissingModelsWarnings(missingModels), ...closureWarnings])];
|
|
231
344
|
}
|
|
232
|
-
createFilteredStore(
|
|
345
|
+
createFilteredStore(mappings) {
|
|
233
346
|
const filteredStore = new Store();
|
|
234
347
|
const mainStore = this.reasoningStore.getStore();
|
|
235
348
|
const seenTriples = new Set();
|
|
236
|
-
for (const
|
|
237
|
-
const
|
|
349
|
+
for (const mapping of mappings) {
|
|
350
|
+
const quads = [
|
|
351
|
+
...mainStore.getQuads(null, null, null, mapping.ownGraph)
|
|
352
|
+
.map((quad) => DataFactory.quad(quad.subject, quad.predicate, quad.object, mapping.targetOwnGraph)),
|
|
353
|
+
...mainStore.getQuads(null, null, null, mapping.entailmentsGraph)
|
|
354
|
+
.map((quad) => DataFactory.quad(quad.subject, quad.predicate, quad.object, mapping.targetEntailmentsGraph)),
|
|
355
|
+
];
|
|
356
|
+
const uniqueQuads = quads.filter((quad) => {
|
|
238
357
|
const key = `${quad.subject.id}|${quad.predicate.id}|${quad.object.id}`;
|
|
239
358
|
if (seenTriples.has(key)) {
|
|
240
359
|
return false;
|
|
@@ -251,7 +370,7 @@ export class SparqlService {
|
|
|
251
370
|
if (cached && !this.dirtyFilteredStores.has(modelUri)) {
|
|
252
371
|
return cached;
|
|
253
372
|
}
|
|
254
|
-
const store = this.createFilteredStore(queryContext.
|
|
373
|
+
const store = this.createFilteredStore(queryContext.mappings);
|
|
255
374
|
this.filteredStoreCache.set(modelUri, store);
|
|
256
375
|
this.dirtyFilteredStores.delete(modelUri);
|
|
257
376
|
return store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owl-sparql.js","sourceRoot":"","sources":["../../src/owl/owl-sparql.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"owl-sparql.js","sourceRoot":"","sources":["../../src/owl/owl-sparql.ts"],"names":[],"mappings":"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"}
|
package/out/owl/owl-store.d.ts
CHANGED
|
@@ -21,10 +21,7 @@ export declare class ReasoningStore {
|
|
|
21
21
|
graphs(modelUri: string): ModelGraphs;
|
|
22
22
|
getStore(): Store;
|
|
23
23
|
private resolveGraphs;
|
|
24
|
-
private graphsFromNamespace;
|
|
25
24
|
private graphsFromModelUri;
|
|
26
|
-
private namespaceFromQuads;
|
|
27
|
-
private ontologyIriFromNamespace;
|
|
28
25
|
private requireGraphs;
|
|
29
26
|
private withGraph;
|
|
30
27
|
private removeGraph;
|
package/out/owl/owl-store.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Copyright (c) 2026 Modelware. All rights reserved.
|
|
2
2
|
import { DataFactory, Store } from 'n3';
|
|
3
|
-
const OML_NAMESPACE = 'http://opencaesar.io/oml#namespace';
|
|
4
3
|
const { namedNode, quad } = DataFactory;
|
|
5
4
|
export class ReasoningStore {
|
|
6
5
|
constructor() {
|
|
@@ -9,9 +8,9 @@ export class ReasoningStore {
|
|
|
9
8
|
}
|
|
10
9
|
// Load a model's quads into its named graph.
|
|
11
10
|
// Retracts any existing quads for that model first.
|
|
12
|
-
// Graph IRI is derived from the
|
|
11
|
+
// Graph IRI is derived from the model URI to keep model snapshots isolated.
|
|
13
12
|
loadModel(modelUri, quads) {
|
|
14
|
-
const graphs = this.resolveGraphs(modelUri
|
|
13
|
+
const graphs = this.resolveGraphs(modelUri);
|
|
15
14
|
this.retractModel(modelUri);
|
|
16
15
|
this.modelGraphs.set(modelUri, graphs);
|
|
17
16
|
this.store.addQuads(quads.map((q) => this.withGraph(q, graphs.own)));
|
|
@@ -25,7 +24,7 @@ export class ReasoningStore {
|
|
|
25
24
|
this.store.addQuads(quads.map((q) => this.withGraph(q, graphs.entailments)));
|
|
26
25
|
}
|
|
27
26
|
applyModelDelta(modelUri, quads, retracted, asserted) {
|
|
28
|
-
const graphs = this.resolveGraphs(modelUri
|
|
27
|
+
const graphs = this.resolveGraphs(modelUri);
|
|
29
28
|
this.modelGraphs.set(modelUri, graphs);
|
|
30
29
|
if (retracted.length > 0) {
|
|
31
30
|
this.store.removeQuads(retracted.map((q) => this.withGraph(q, graphs.own)));
|
|
@@ -48,7 +47,7 @@ export class ReasoningStore {
|
|
|
48
47
|
// Returns the semantic difference — what was added and what was removed.
|
|
49
48
|
// If the diff is empty, nothing downstream needs to run.
|
|
50
49
|
diffModel(modelUri, newQuads) {
|
|
51
|
-
const graphs = this.resolveGraphs(modelUri
|
|
50
|
+
const graphs = this.resolveGraphs(modelUri);
|
|
52
51
|
const existing = this.store.getQuads(null, null, null, graphs.own);
|
|
53
52
|
const next = newQuads.map((q) => this.withGraph(q, graphs.own));
|
|
54
53
|
const existingByKey = new Map(existing.map((q) => [this.quadKey(q), q]));
|
|
@@ -84,30 +83,14 @@ export class ReasoningStore {
|
|
|
84
83
|
getStore() {
|
|
85
84
|
return this.store;
|
|
86
85
|
}
|
|
87
|
-
resolveGraphs(modelUri
|
|
88
|
-
const
|
|
89
|
-
if (
|
|
90
|
-
|
|
91
|
-
this.modelGraphs.set(modelUri, graphs);
|
|
92
|
-
return graphs;
|
|
86
|
+
resolveGraphs(modelUri) {
|
|
87
|
+
const existing = this.modelGraphs.get(modelUri);
|
|
88
|
+
if (existing) {
|
|
89
|
+
return existing;
|
|
93
90
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return existing;
|
|
98
|
-
}
|
|
99
|
-
// Keep reasoning resilient during transient states (e.g. non-mappable documents):
|
|
100
|
-
// if namespace is missing, fall back to a stable graph derived from the model URI.
|
|
101
|
-
const fallback = this.graphsFromModelUri(modelUri);
|
|
102
|
-
this.modelGraphs.set(modelUri, fallback);
|
|
103
|
-
return fallback;
|
|
104
|
-
}
|
|
105
|
-
graphsFromNamespace(namespace) {
|
|
106
|
-
const ontologyIri = this.ontologyIriFromNamespace(namespace);
|
|
107
|
-
return {
|
|
108
|
-
own: namedNode(ontologyIri),
|
|
109
|
-
entailments: namedNode(`${ontologyIri}__entailments`),
|
|
110
|
-
};
|
|
91
|
+
const graphs = this.graphsFromModelUri(modelUri);
|
|
92
|
+
this.modelGraphs.set(modelUri, graphs);
|
|
93
|
+
return graphs;
|
|
111
94
|
}
|
|
112
95
|
graphsFromModelUri(modelUri) {
|
|
113
96
|
return {
|
|
@@ -115,13 +98,6 @@ export class ReasoningStore {
|
|
|
115
98
|
entailments: namedNode(`${modelUri}__entailments`)
|
|
116
99
|
};
|
|
117
100
|
}
|
|
118
|
-
namespaceFromQuads(quads) {
|
|
119
|
-
const namespaceQuad = quads.find((q) => q.predicate.value === OML_NAMESPACE && q.object.termType === 'NamedNode');
|
|
120
|
-
return namespaceQuad?.object.value;
|
|
121
|
-
}
|
|
122
|
-
ontologyIriFromNamespace(namespace) {
|
|
123
|
-
return namespace.replace(/[\/#]+$/, '');
|
|
124
|
-
}
|
|
125
101
|
requireGraphs(modelUri) {
|
|
126
102
|
const graphs = this.modelGraphs.get(modelUri);
|
|
127
103
|
if (!graphs) {
|
package/out/owl/owl-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owl-store.js","sourceRoot":"","sources":["../../src/owl/owl-store.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAGxC,MAAM,
|
|
1
|
+
{"version":3,"file":"owl-store.js","sourceRoot":"","sources":["../../src/owl/owl-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oml/owl",
|
|
3
3
|
"description": "The semantic web specific package",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.14.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=20.10.0",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@comunica/query-sparql": "^5.1.3",
|
|
37
|
-
"@oml/language": "0.
|
|
37
|
+
"@oml/language": "0.14.1",
|
|
38
38
|
"langium": "^4.2.1",
|
|
39
39
|
"n3": "^2.0.1",
|
|
40
40
|
"shacl-engine": "^1.1.0",
|
package/src/owl/owl-abox.ts
CHANGED
|
@@ -880,51 +880,39 @@ export class ABoxChainer {
|
|
|
880
880
|
}
|
|
881
881
|
}
|
|
882
882
|
|
|
883
|
-
private collectValidationWarnings(
|
|
883
|
+
private collectValidationWarnings(_index: WorkingIndex, _tbox: TBoxIndex): string[] {
|
|
884
884
|
const warnings: string[] = [];
|
|
885
885
|
|
|
886
|
-
for (const
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
if (!ranges.includes(fact.object.datatype.value)) {
|
|
899
|
-
warnings.push(
|
|
900
|
-
`Datatype range violation on ${fact.predicate.value}: expected ${ranges.join(', ')}, got ${fact.object.datatype.value}.`,
|
|
901
|
-
);
|
|
886
|
+
for (const propertyIri of _tbox.functionalProperties) {
|
|
887
|
+
const bySubject = new Map<string, Set<string>>();
|
|
888
|
+
const facts = _index.edgeFactsByProperty.get(propertyIri) ?? [];
|
|
889
|
+
for (const fact of facts) {
|
|
890
|
+
const objects = bySubject.get(fact.subject.id) ?? new Set<string>();
|
|
891
|
+
objects.add(fact.object.id);
|
|
892
|
+
bySubject.set(fact.subject.id, objects);
|
|
893
|
+
}
|
|
894
|
+
for (const [subjectId, objects] of bySubject.entries()) {
|
|
895
|
+
if (objects.size > 1) {
|
|
896
|
+
warnings.push(`Functional property violation: ${propertyIri} has multiple values for subject ${subjectId}`);
|
|
897
|
+
}
|
|
902
898
|
}
|
|
903
899
|
}
|
|
904
900
|
|
|
905
|
-
for (const
|
|
906
|
-
const
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
warnings.push(`Functional property violation on ${property}: ${facts[0]?.subject.value ?? subjectId} has ${objectIds.length} distinct values.`);
|
|
901
|
+
for (const propertyIri of _tbox.inverseFunctionalProperties) {
|
|
902
|
+
const byObject = new Map<string, Set<string>>();
|
|
903
|
+
const facts = _index.edgeFactsByProperty.get(propertyIri) ?? [];
|
|
904
|
+
for (const fact of facts) {
|
|
905
|
+
const subjects = byObject.get(fact.object.id) ?? new Set<string>();
|
|
906
|
+
subjects.add(fact.subject.id);
|
|
907
|
+
byObject.set(fact.object.id, subjects);
|
|
913
908
|
}
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
const property = split >= 0 ? propertyObject.slice(0, split) : propertyObject;
|
|
919
|
-
const objectId = split >= 0 ? propertyObject.slice(split + 1) : '';
|
|
920
|
-
if (!tbox.inverseFunctionalProperties.has(property) || subjectIds.size <= 1) {
|
|
921
|
-
continue;
|
|
909
|
+
for (const [objectId, subjects] of byObject.entries()) {
|
|
910
|
+
if (subjects.size > 1) {
|
|
911
|
+
warnings.push(`Inverse-functional property violation: ${propertyIri} has multiple subjects for object ${objectId}`);
|
|
912
|
+
}
|
|
922
913
|
}
|
|
923
|
-
const object = index.termByKey.get(objectId);
|
|
924
|
-
const objectLabel = object?.value ?? objectId;
|
|
925
|
-
warnings.push(`Inverse-functional property violation on ${property}: ${objectLabel} has ${subjectIds.size} distinct sources.`);
|
|
926
914
|
}
|
|
927
915
|
|
|
928
|
-
return
|
|
916
|
+
return warnings;
|
|
929
917
|
}
|
|
930
918
|
}
|
|
@@ -133,7 +133,7 @@ export interface OwlShaclValidationResult {
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
export interface OwlShaclService {
|
|
136
|
-
validateShacl(modelUri: string
|
|
136
|
+
validateShacl(modelUri: string, shaclSource: string): Promise<OwlShaclValidationResult>;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
export interface OwlReasoningDependencies {
|
package/src/owl/owl-service.ts
CHANGED
|
@@ -53,6 +53,9 @@ export class ReasoningService {
|
|
|
53
53
|
this.aboxChainer = resolved.aboxChainer;
|
|
54
54
|
this.aboxEntailmentCache = resolved.aboxEntailmentCache;
|
|
55
55
|
this.sparqlService = resolved.createSparqlService(this);
|
|
56
|
+
if (this.sparqlService instanceof SparqlService) {
|
|
57
|
+
this.sparqlService.setOntologyIriResolver((modelUri) => this.resolveOntologyIriForModelUri(modelUri));
|
|
58
|
+
}
|
|
56
59
|
this.ontologyModelIndex = getOntologyModelIndex(services.shared);
|
|
57
60
|
|
|
58
61
|
services.shared.workspace.DocumentBuilder.onDocumentPhase(DocumentState.Validated, (document) => {
|
|
@@ -677,15 +680,13 @@ function isWorkspaceModelUri(modelUri: string): boolean {
|
|
|
677
680
|
}
|
|
678
681
|
|
|
679
682
|
export function resolveCanonicalWorkspaceModelUri(modelUri: string): string {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
}
|
|
685
|
-
return parsed.with({ query: '', fragment: '' }).toString();
|
|
686
|
-
} catch {
|
|
687
|
-
return modelUri;
|
|
683
|
+
const windowsFileUri = /^file:\/\/\/([A-Za-z]):\/(.*)$/u.exec(modelUri);
|
|
684
|
+
if (windowsFileUri) {
|
|
685
|
+
const drive = windowsFileUri[1].toLowerCase();
|
|
686
|
+
const rest = windowsFileUri[2];
|
|
687
|
+
return `file:///${drive}%3A/${rest}`;
|
|
688
688
|
}
|
|
689
|
+
return modelUri;
|
|
689
690
|
}
|
|
690
691
|
|
|
691
692
|
const BUILT_IN_ONTOLOGIES = new Set([
|
package/src/owl/owl-shacl.ts
CHANGED
|
@@ -14,8 +14,8 @@ import type {
|
|
|
14
14
|
export const ShaclValidateRequest = 'oml/validate';
|
|
15
15
|
|
|
16
16
|
export interface ShaclValidateParams {
|
|
17
|
-
modelUri
|
|
18
|
-
|
|
17
|
+
modelUri: string;
|
|
18
|
+
shacl: string;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export type ShaclValidationIssue = OwlShaclValidationIssue;
|
|
@@ -76,15 +76,7 @@ export class ShaclService implements OwlShaclService {
|
|
|
76
76
|
private readonly resolveContextIri: (modelUri: string) => string,
|
|
77
77
|
) {}
|
|
78
78
|
|
|
79
|
-
async validateShacl(modelUri: string
|
|
80
|
-
if (!modelUri) {
|
|
81
|
-
return {
|
|
82
|
-
conforms: false,
|
|
83
|
-
issues: [],
|
|
84
|
-
error: 'No contextUri model is available for this markdown document.',
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
|
|
79
|
+
async validateShacl(modelUri: string, shaclSource: string): Promise<ShaclValidationResult> {
|
|
88
80
|
const trimmedSource = stripShaclFrontMatter(shaclSource).trim();
|
|
89
81
|
if (!trimmedSource) {
|
|
90
82
|
return {
|
|
@@ -114,8 +106,8 @@ export class ShaclService implements OwlShaclService {
|
|
|
114
106
|
}
|
|
115
107
|
|
|
116
108
|
await this.prepareContext(modelUri);
|
|
117
|
-
const
|
|
118
|
-
const constructResult = await this.sparqlService.construct(modelUri, buildValidationConstructQuery(
|
|
109
|
+
const contextOntologyIri = this.resolveContextIri(modelUri);
|
|
110
|
+
const constructResult = await this.sparqlService.construct(modelUri, buildValidationConstructQuery(contextOntologyIri));
|
|
119
111
|
if (!constructResult.success) {
|
|
120
112
|
return {
|
|
121
113
|
conforms: false,
|
|
@@ -181,8 +173,15 @@ export function registerShaclValidationRequests(connection: ConnectionLike, oml:
|
|
|
181
173
|
error: 'Reasoning service validation is unavailable.',
|
|
182
174
|
};
|
|
183
175
|
}
|
|
184
|
-
const modelUri = typeof params?.modelUri === 'string' ? params.modelUri :
|
|
185
|
-
const shaclSource = typeof params?.
|
|
176
|
+
const modelUri = typeof params?.modelUri === 'string' ? params.modelUri.trim() : '';
|
|
177
|
+
const shaclSource = typeof params?.shacl === 'string' ? params.shacl : '';
|
|
178
|
+
if (!modelUri) {
|
|
179
|
+
return {
|
|
180
|
+
conforms: false,
|
|
181
|
+
issues: [],
|
|
182
|
+
error: 'Missing modelUri.',
|
|
183
|
+
};
|
|
184
|
+
}
|
|
186
185
|
const shaclService = createDefaultShaclService(
|
|
187
186
|
reasoningService.getSparqlService(),
|
|
188
187
|
(uri) => reasoningService.ensureQueryContext(uri),
|
|
@@ -273,7 +272,7 @@ export function deriveSelectQueryFromShacl(shaclSource: string, graphIri: string
|
|
|
273
272
|
};
|
|
274
273
|
}
|
|
275
274
|
|
|
276
|
-
function buildValidationConstructQuery(
|
|
275
|
+
function buildValidationConstructQuery(contextOntologyIri: string): string {
|
|
277
276
|
return [
|
|
278
277
|
'CONSTRUCT {',
|
|
279
278
|
' ?s ?p ?o .',
|
|
@@ -281,11 +280,11 @@ function buildValidationConstructQuery(contextIri: string): string {
|
|
|
281
280
|
' ?o a ?oType .',
|
|
282
281
|
'}',
|
|
283
282
|
'WHERE {',
|
|
284
|
-
` GRAPH <${
|
|
285
|
-
` OPTIONAL { GRAPH ?g1 { ?s a ?sType } FILTER(?g1 != <${
|
|
283
|
+
` GRAPH <${contextOntologyIri}> { ?s ?p ?o }`,
|
|
284
|
+
` OPTIONAL { GRAPH ?g1 { ?s a ?sType } FILTER(?g1 != <${contextOntologyIri}>) }`,
|
|
286
285
|
' OPTIONAL {',
|
|
287
286
|
' FILTER(isIRI(?o) || isBlank(?o))',
|
|
288
|
-
` GRAPH ?g2 { ?o a ?oType } FILTER(?g2 != <${
|
|
287
|
+
` GRAPH ?g2 { ?o a ?oType } FILTER(?g2 != <${contextOntologyIri}>)`,
|
|
289
288
|
' }',
|
|
290
289
|
'}',
|
|
291
290
|
].join('\n');
|