@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.
@@ -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 quadsStream = await this.engine.queryQuads(sparql, {
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
- return this.getQueryContext(modelUri).graphs;
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 graphs = [];
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
- for (const graph of [own, entailments]) {
197
- if (seen.has(graph.value)) {
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 { graphs, missingModels };
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(graphs) {
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 graph of graphs) {
237
- const uniqueQuads = mainStore.getQuads(null, null, null, graph).filter((quad) => {
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.graphs);
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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"}
@@ -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;
@@ -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 ontology namespace embedded in the quads.
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, quads);
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, quads, true);
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, newQuads, true);
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, quads, allowExisting = false) {
88
- const namespace = this.namespaceFromQuads(quads);
89
- if (namespace) {
90
- const graphs = this.graphsFromNamespace(namespace);
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
- if (allowExisting) {
95
- const existing = this.modelGraphs.get(modelUri);
96
- if (existing)
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"owl-store.js","sourceRoot":"","sources":["../../src/owl/owl-store.ts"],"names":[],"mappings":"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"}
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.13.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.13.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",
@@ -880,51 +880,39 @@ export class ABoxChainer {
880
880
  }
881
881
  }
882
882
 
883
- private collectValidationWarnings(index: WorkingIndex, tbox: TBoxIndex): string[] {
883
+ private collectValidationWarnings(_index: WorkingIndex, _tbox: TBoxIndex): string[] {
884
884
  const warnings: string[] = [];
885
885
 
886
- for (const fact of index.facts.values()) {
887
- if (fact.predicate.value === RDF_TYPE.value) {
888
- continue;
889
- }
890
- const ranges = tbox.datatypeRange.get(fact.predicate.value) ?? [];
891
- if (ranges.length === 0) {
892
- continue;
893
- }
894
- if (fact.object.termType !== 'Literal') {
895
- warnings.push(`Datatype range violation on ${fact.predicate.value}: expected literal object.`);
896
- continue;
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 [subjectProperty, facts] of index.edgeFactsBySubjectProperty.entries()) {
906
- const [subjectId, property] = subjectProperty.split('|', 2);
907
- if (subjectId.length === 0 || !tbox.functionalProperties.has(property)) {
908
- continue;
909
- }
910
- const objectIds = [...new Set(facts.map((fact) => fact.object.id))];
911
- if (objectIds.length > 1) {
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
- for (const [propertyObject, subjectIds] of index.subjectsByPropertyObject.entries()) {
917
- const split = propertyObject.indexOf('|');
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 [...new Set(warnings)];
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 | undefined, shaclSource: string): Promise<OwlShaclValidationResult>;
136
+ validateShacl(modelUri: string, shaclSource: string): Promise<OwlShaclValidationResult>;
137
137
  }
138
138
 
139
139
  export interface OwlReasoningDependencies {
@@ -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
- try {
681
- const parsed = URI.parse(modelUri);
682
- if (!parsed.path.toLowerCase().endsWith('.oml')) {
683
- return modelUri;
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([
@@ -14,8 +14,8 @@ import type {
14
14
  export const ShaclValidateRequest = 'oml/validate';
15
15
 
16
16
  export interface ShaclValidateParams {
17
- modelUri?: string;
18
- shaclSource: string;
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 | undefined, shaclSource: string): Promise<ShaclValidationResult> {
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 contextIri = this.resolveContextIri(modelUri);
118
- const constructResult = await this.sparqlService.construct(modelUri, buildValidationConstructQuery(contextIri));
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 : undefined;
185
- const shaclSource = typeof params?.shaclSource === 'string' ? params.shaclSource : '';
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(contextIri: string): string {
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 <${contextIri}> { ?s ?p ?o }`,
285
- ` OPTIONAL { GRAPH ?g1 { ?s a ?sType } FILTER(?g1 != <${contextIri}>) }`,
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 != <${contextIri}>)`,
287
+ ` GRAPH ?g2 { ?o a ?oType } FILTER(?g2 != <${contextOntologyIri}>)`,
289
288
  ' }',
290
289
  '}',
291
290
  ].join('\n');