@oml/owl 0.19.3 → 0.20.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.
Files changed (46) hide show
  1. package/out/index.d.ts +3 -0
  2. package/out/index.js +3 -0
  3. package/out/index.js.map +1 -1
  4. package/out/owl/owl-abox.d.ts +16 -5
  5. package/out/owl/owl-abox.js +365 -188
  6. package/out/owl/owl-abox.js.map +1 -1
  7. package/out/owl/owl-imports.js +4 -2
  8. package/out/owl/owl-imports.js.map +1 -1
  9. package/out/owl/owl-interfaces.d.ts +26 -1
  10. package/out/owl/owl-mapper.d.ts +2 -0
  11. package/out/owl/owl-mapper.js +77 -38
  12. package/out/owl/owl-mapper.js.map +1 -1
  13. package/out/owl/owl-service.d.ts +4 -0
  14. package/out/owl/owl-service.js +139 -44
  15. package/out/owl/owl-service.js.map +1 -1
  16. package/out/owl/owl-shacl.d.ts +8 -9
  17. package/out/owl/owl-shacl.js +43 -117
  18. package/out/owl/owl-shacl.js.map +1 -1
  19. package/out/owl/owl-sparql-engine.d.ts +6 -0
  20. package/out/owl/owl-sparql-engine.js +11 -0
  21. package/out/owl/owl-sparql-engine.js.map +1 -0
  22. package/out/owl/owl-sparql-oxigraph.d.ts +34 -0
  23. package/out/owl/owl-sparql-oxigraph.js +436 -0
  24. package/out/owl/owl-sparql-oxigraph.js.map +1 -0
  25. package/out/owl/owl-sparql.d.ts +0 -44
  26. package/out/owl/owl-sparql.js +0 -320
  27. package/out/owl/owl-sparql.js.map +1 -1
  28. package/out/owl/owl-store-lean.d.ts +29 -0
  29. package/out/owl/owl-store-lean.js +445 -0
  30. package/out/owl/owl-store-lean.js.map +1 -0
  31. package/out/owl/owl-store.d.ts +11 -1
  32. package/out/owl/owl-store.js +80 -6
  33. package/out/owl/owl-store.js.map +1 -1
  34. package/package.json +3 -3
  35. package/src/index.ts +3 -0
  36. package/src/owl/owl-abox.ts +401 -200
  37. package/src/owl/owl-imports.ts +4 -2
  38. package/src/owl/owl-interfaces.ts +28 -1
  39. package/src/owl/owl-mapper.ts +79 -41
  40. package/src/owl/owl-service.ts +149 -49
  41. package/src/owl/owl-shacl.ts +55 -132
  42. package/src/owl/owl-sparql-engine.ts +34 -0
  43. package/src/owl/owl-sparql-oxigraph.ts +527 -0
  44. package/src/owl/owl-sparql.ts +3 -366
  45. package/src/owl/owl-store-lean.ts +438 -0
  46. package/src/owl/owl-store.ts +86 -7
@@ -155,10 +155,6 @@ export function deriveSelectQueryFromShacl(shaclSource, graphIri) {
155
155
  return undefined;
156
156
  }
157
157
  const allRules = nodeShapes.flatMap((s) => s.rules);
158
- const ruleByPredicateIri = new Map();
159
- for (const rule of allRules) {
160
- ruleByPredicateIri.set(rule.predicateIri, rule);
161
- }
162
158
  const allTargetClasses = nodeShapes.flatMap((shape) => shape.targetClasses);
163
159
  const allTargetNodes = nodeShapes.flatMap((shape) => shape.targetNodes);
164
160
  const aggregatedColumns = [];
@@ -200,7 +196,7 @@ export function deriveSelectQueryFromShacl(shaclSource, graphIri) {
200
196
  }
201
197
  return a.insertionIndex - b.insertionIndex;
202
198
  });
203
- const usedNames = new Set(['focus', '__rowType', '__specificType']);
199
+ const usedNames = new Set(['this', '__rowType', '__specificType']);
204
200
  const allVariables = aggregatedColumns.map((col) => {
205
201
  const base = normalizeSparqlVariableName(col.name || col.pathVariableHint || 'value');
206
202
  const unique = uniqueVariableName(base, usedNames);
@@ -210,76 +206,68 @@ export function deriveSelectQueryFromShacl(shaclSource, graphIri) {
210
206
  return { path: col.path, readOnly: col.readOnly, variable: unique, sourceVariable, name: col.name, ownerClasses: col.ownerClasses, isComposite: col.isComposite };
211
207
  });
212
208
  const graphPattern = (pattern) => `GRAPH <${escapeIriForSparql(graphIri)}> { ${pattern} }`;
209
+ const writableClassesForRefed = nodeShapes.filter((s) => !s.isReadOnly).flatMap((s) => s.targetClasses);
210
+ const hasRefedColumn = writableClassesForRefed.length > 0 && nodeShapes.some((s) => s.isReadOnly);
213
211
  const selectVars = [
214
- '?focus',
212
+ '?this',
215
213
  '(GROUP_CONCAT(DISTINCT STR(?__specificType); SEPARATOR=", ") AS ?__rowType)',
214
+ ...(hasRefedColumn ? ['(MAX(IF(BOUND(?__refedType), "true", "")) AS ?__isRefed)'] : []),
216
215
  ...allVariables.map((entry) => `(GROUP_CONCAT(DISTINCT STR(?${entry.sourceVariable}); SEPARATOR=", ") AS ?${entry.variable})`),
217
216
  ].join(' ');
218
217
  const whereLines = [];
219
218
  const graphLines = [];
220
219
  if (allTargetClasses.length > 0) {
221
- const classValuesList = allTargetClasses.map((term) => `<${term.value}>`);
222
- const classValuesSpaced = classValuesList.join(' ');
223
- const classValuesComma = classValuesList.join(', ');
224
- whereLines.push(` VALUES ?__targetClass { ${classValuesSpaced} }`);
225
- graphLines.push(` ${graphPattern('?focus a ?__targetClass .')}`);
226
- graphLines.push(` OPTIONAL { ${graphPattern(`?focus a ?__specificType . FILTER(?__specificType IN (${classValuesComma}))`)} }`);
220
+ const readOnlyClasses = nodeShapes.filter((s) => s.isReadOnly).flatMap((s) => s.targetClasses);
221
+ const writableClasses = nodeShapes.filter((s) => !s.isReadOnly).flatMap((s) => s.targetClasses);
222
+ const allClassesComma = allTargetClasses.map((t) => `<${t.value}>`).join(', ');
223
+ if (readOnlyClasses.length > 0 && writableClasses.length > 0) {
224
+ // Mixed: readOnly shapes query across all graphs, writable shapes restricted to editable graph
225
+ const roValues = readOnlyClasses.map((t) => `<${t.value}>`).join(' ');
226
+ const wValues = writableClasses.map((t) => `<${t.value}>`).join(' ');
227
+ whereLines.push(` { VALUES ?__c { ${roValues} } . ?this a ?__c . }`, ` UNION`, ` { VALUES ?__c { ${wValues} } . ${graphPattern('?this a ?__c .')} }`);
228
+ }
229
+ else if (readOnlyClasses.length > 0) {
230
+ whereLines.push(` VALUES ?__targetClass { ${readOnlyClasses.map((t) => `<${t.value}>`).join(' ')} }`);
231
+ whereLines.push(` ?this a ?__targetClass .`);
232
+ }
233
+ else {
234
+ whereLines.push(` VALUES ?__targetClass { ${writableClasses.map((t) => `<${t.value}>`).join(' ')} }`);
235
+ graphLines.push(` ${graphPattern('?this a ?__targetClass .')}`);
236
+ }
237
+ // specificType is always cross-graph (display only, not write-scoped)
238
+ graphLines.push(` OPTIONAL { ?this a ?__specificType . FILTER(?__specificType IN (${allClassesComma})) }`);
239
+ if (hasRefedColumn) {
240
+ const writableComma = writableClassesForRefed.map((t) => `<${t.value}>`).join(', ');
241
+ graphLines.push(` OPTIONAL { ${graphPattern(`?this a ?__refedType . FILTER(?__refedType IN (${writableComma}))`)} }`);
242
+ }
227
243
  }
228
244
  if (allTargetNodes.length > 0) {
229
245
  const nodeValues = allTargetNodes.map((term) => termToSparql(term)).join(' ');
230
- whereLines.push(` VALUES ?focus { ${nodeValues} }`);
246
+ whereLines.push(` VALUES ?this { ${nodeValues} }`);
231
247
  }
232
- const supplementalQueries = [];
233
- const consumedRulePredicates = new Set();
234
248
  for (const entry of allVariables) {
235
249
  if (entry.readOnly) {
236
- const simpleIri = /^<([^>]+)>$/.exec(entry.path.trim())?.[1];
237
- const rule = simpleIri ? ruleByPredicateIri.get(simpleIri) : undefined;
238
- if (rule) {
239
- consumedRulePredicates.add(rule.predicateIri);
240
- graphLines.push([
241
- ` OPTIONAL {`,
242
- ` SELECT ?focus (?${rule.boundVariable} AS ?${entry.sourceVariable})`,
243
- ` WHERE {`,
244
- ` ${rule.whereBody}`,
245
- ` }`,
246
- ` }`,
247
- ].join('\n'));
248
- supplementalQueries.push({
249
- columnLabel: entry.name ?? entry.variable,
250
- boundVariable: rule.boundVariable,
251
- sparql: [
252
- rule.prefixDeclarations,
253
- `SELECT ?focus ?${rule.boundVariable}`,
254
- 'WHERE {',
255
- ` ${rule.whereBody}`,
256
- '}',
257
- ].filter(Boolean).join('\n'),
258
- });
259
- }
260
- else {
261
- graphLines.push(` OPTIONAL { ?focus ${entry.path} ?${entry.sourceVariable} . }`);
262
- }
250
+ graphLines.push(` OPTIONAL { ?this ${entry.path} ?${entry.sourceVariable} . }`);
263
251
  }
264
252
  else {
265
253
  const isUniversal = allTargetClasses.length === 0 ||
266
254
  allTargetClasses.every((tc) => entry.ownerClasses.some((oc) => oc.value === tc.value));
267
255
  if (isUniversal) {
268
- graphLines.push(` OPTIONAL { ${graphPattern(`?focus ${entry.path} ?${entry.sourceVariable} .`)} }`);
256
+ graphLines.push(` OPTIONAL { ${graphPattern(`?this ${entry.path} ?${entry.sourceVariable} .`)} }`);
269
257
  }
270
258
  else if (entry.ownerClasses.length === 1) {
271
- graphLines.push(` OPTIONAL { ${graphPattern(`?focus a <${entry.ownerClasses[0].value}> . ?focus ${entry.path} ?${entry.sourceVariable} .`)} }`);
259
+ graphLines.push(` OPTIONAL { ${graphPattern(`?this a <${entry.ownerClasses[0].value}> . ?this ${entry.path} ?${entry.sourceVariable} .`)} }`);
272
260
  }
273
261
  else {
274
262
  const guardVar = `__g_${entry.variable}`;
275
263
  const classesComma = entry.ownerClasses.map((t) => `<${t.value}>`).join(', ');
276
- graphLines.push(` OPTIONAL { ${graphPattern(`?focus a ?${guardVar} . FILTER(?${guardVar} IN (${classesComma})) . ?focus ${entry.path} ?${entry.sourceVariable} .`)} }`);
264
+ graphLines.push(` OPTIONAL { ${graphPattern(`?this a ?${guardVar} . FILTER(?${guardVar} IN (${classesComma})) . ?this ${entry.path} ?${entry.sourceVariable} .`)} }`);
277
265
  }
278
266
  }
279
267
  }
280
268
  whereLines.push(...graphLines);
281
- const columnVariables = ['focus', ...allVariables.map((entry) => entry.variable)];
282
- const columnLabels = new Map([['focus', 'focus'], ['__rowType', '__rowType']]);
269
+ const columnVariables = ['this', ...allVariables.map((entry) => entry.variable)];
270
+ const columnLabels = new Map([['this', 'this'], ['__rowType', '__rowType']]);
283
271
  for (const entry of allVariables) {
284
272
  columnLabels.set(entry.variable, entry.name || entry.variable);
285
273
  }
@@ -293,27 +281,24 @@ export function deriveSelectQueryFromShacl(shaclSource, graphIri) {
293
281
  const containmentPredicateIri = (directMatch ?? inverseMatch)?.[1];
294
282
  const containmentIsInverse = inverseMatch ? true : undefined;
295
283
  const containmentIsReadOnly = compositeVar?.readOnly ? true : undefined;
296
- const rulePrefixLines = [...new Set(allRules.flatMap((r) => r.prefixDeclarations ? r.prefixDeclarations.split('\n') : []))].filter(Boolean);
297
284
  return {
298
285
  sparql: [
299
- ...rulePrefixLines,
300
286
  `SELECT ${selectVars}`,
301
287
  'WHERE {',
302
288
  ...whereLines,
303
289
  '}',
304
- 'GROUP BY ?focus',
290
+ 'GROUP BY ?this',
305
291
  ].join('\n'),
306
292
  columnVariables,
307
293
  columnLabels,
308
294
  rowTypeVariable: '__rowType',
295
+ isRefedVariable: hasRefedColumn ? '__isRefed' : undefined,
309
296
  containmentLabels,
310
297
  containmentPredicateIri,
311
298
  containmentIsInverse,
312
299
  containmentIsReadOnly,
313
- supplementalQueries: supplementalQueries.length > 0 ? supplementalQueries : undefined,
314
300
  materializationRules: (() => {
315
301
  const mats = allRules
316
- .filter((r) => !consumedRulePredicates.has(r.predicateIri))
317
302
  .map((r, idx) => ({ order: r.order ?? idx, constructSparql: r.constructSparql }));
318
303
  return mats.length > 0
319
304
  ? mats.sort((a, b) => a.order - b.order)
@@ -352,6 +337,7 @@ function parseAllNodeShapes(shapeQuads) {
352
337
  if (targetClasses.length === 0 && targetNodes.length === 0) {
353
338
  continue;
354
339
  }
340
+ const shapeIsReadOnly = isReadOnlyShape(shapesStore, shapeTerm);
355
341
  const columns = getObjects(shapesStore, shapeTerm, SH_PROPERTY)
356
342
  .filter((term) => term.termType === 'NamedNode' || term.termType === 'BlankNode')
357
343
  .filter((term) => !isDeactivatedShape(shapesStore, term))
@@ -376,7 +362,7 @@ function parseAllNodeShapes(shapeQuads) {
376
362
  return {
377
363
  path: parsedPath.sparql,
378
364
  pathVariableHint: parsedPath.variableHint,
379
- readOnly: isReadOnlyShape(shapesStore, term),
365
+ readOnly: shapeIsReadOnly || isReadOnlyShape(shapesStore, term),
380
366
  name: nameTerm && nameTerm.termType === 'Literal' ? nameTerm.value : undefined,
381
367
  isComposite: isCompositeShape(shapesStore, term),
382
368
  order,
@@ -384,76 +370,16 @@ function parseAllNodeShapes(shapeQuads) {
384
370
  })
385
371
  .filter((column) => Boolean(column));
386
372
  const rules = parseShaclRules(shapesStore, shapeTerm);
387
- shapes.push({ targetClasses, targetNodes, columns, rules });
373
+ shapes.push({ targetClasses, targetNodes, columns, rules, isReadOnly: shapeIsReadOnly });
388
374
  }
389
375
  return shapes;
390
376
  }
391
377
  function parseSparqlConstructRule(constructQuery) {
392
- // Build prefix map from PREFIX declarations
393
- const prefixMap = new Map();
394
- const prefixRegex = /PREFIX\s+(\w*):\s*<([^>]+)>/gi;
395
- let prefixMatch;
396
- while ((prefixMatch = prefixRegex.exec(constructQuery)) !== null) {
397
- prefixMap.set(prefixMatch[1], prefixMatch[2]);
398
- }
399
- // Match CONSTRUCT { $this <predicate> ?variable }
400
- const constructHeadRegex = /CONSTRUCT\s*\{[^}]*\$this\s+(\S+)\s+\?(\w+)/i;
401
- const headMatch = constructHeadRegex.exec(constructQuery);
402
- if (!headMatch) {
403
- return undefined;
404
- }
405
- const rawPredicate = headMatch[1];
406
- const boundVariable = headMatch[2];
407
- // Resolve predicate IRI
408
- let predicateIri;
409
- const angleMatch = /^<([^>]+)>$/.exec(rawPredicate);
410
- if (angleMatch) {
411
- predicateIri = angleMatch[1];
412
- }
413
- else {
414
- const prefixedMatch = /^(\w*):(.+)$/.exec(rawPredicate);
415
- if (!prefixedMatch) {
416
- return undefined;
417
- }
418
- const ns = prefixMap.get(prefixedMatch[1]);
419
- if (ns === undefined) {
420
- return undefined;
421
- }
422
- predicateIri = ns + prefixedMatch[2];
423
- }
424
- // Find WHERE { ... } using brace-depth counter
425
- const whereKeywordMatch = /WHERE\s*\{/i.exec(constructQuery);
426
- if (!whereKeywordMatch) {
427
- return undefined;
428
- }
429
- const whereOpenBrace = whereKeywordMatch.index + whereKeywordMatch[0].length - 1;
430
- let depth = 0;
431
- let start = -1;
432
- let end = -1;
433
- for (let i = whereOpenBrace; i < constructQuery.length; i++) {
434
- if (constructQuery[i] === '{') {
435
- if (depth === 0) {
436
- start = i;
437
- }
438
- depth++;
439
- }
440
- else if (constructQuery[i] === '}') {
441
- depth--;
442
- if (depth === 0) {
443
- end = i;
444
- break;
445
- }
446
- }
447
- }
448
- if (start === -1 || end === -1) {
378
+ // Only accept rules whose CONSTRUCT head follows the $this <predicate> ?variable pattern.
379
+ if (!/CONSTRUCT\s*\{[^}]*\$this\s+\S+\s+\?\w+/i.test(constructQuery)) {
449
380
  return undefined;
450
381
  }
451
- const whereBody = constructQuery.slice(start + 1, end).replace(/\$this/g, '?focus').trim();
452
- // Reconstruct PREFIX declarations as SPARQL lines to inject into the outer query
453
- const prefixDeclarations = [...prefixMap.entries()]
454
- .map(([prefix, ns]) => `PREFIX ${prefix}: <${ns}>`)
455
- .join('\n');
456
- return { predicateIri, boundVariable, whereBody, prefixDeclarations, constructSparql: constructQuery };
382
+ return { constructSparql: constructQuery };
457
383
  }
458
384
  function parseShaclRules(store, shapeTerm) {
459
385
  const rules = [];
@@ -1 +1 @@
1
- {"version":3,"file":"owl-shacl.js","sourceRoot":"","sources":["../../src/owl/owl-shacl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"owl-shacl.js","sourceRoot":"","sources":["../../src/owl/owl-shacl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { OwlABoxEntailmentState, OwlImportGraph, OwlInferenceRunner, OwlSparqlEngine, OwlStore } from './owl-interfaces.js';
2
+ export type SparqlEngineKind = 'oxigraph';
3
+ export declare const DEFAULT_SPARQL_ENGINE: SparqlEngineKind;
4
+ export declare function resolveSparqlEngineKind(): SparqlEngineKind;
5
+ /** Construct the SPARQL engine. The only place that knows about the concrete engine. */
6
+ export declare function createSparqlEngine(_kind: SparqlEngineKind, reasoningStore: OwlStore, importGraph: OwlImportGraph, aboxEntailmentCache: OwlABoxEntailmentState, reasoningService: OwlInferenceRunner): OwlSparqlEngine;
@@ -0,0 +1,11 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ import { OxigraphSparqlService } from './owl-sparql-oxigraph.js';
3
+ export const DEFAULT_SPARQL_ENGINE = 'oxigraph';
4
+ export function resolveSparqlEngineKind() {
5
+ return 'oxigraph';
6
+ }
7
+ /** Construct the SPARQL engine. The only place that knows about the concrete engine. */
8
+ export function createSparqlEngine(_kind, reasoningStore, importGraph, aboxEntailmentCache, reasoningService) {
9
+ return new OxigraphSparqlService(reasoningStore, importGraph, aboxEntailmentCache, reasoningService);
10
+ }
11
+ //# sourceMappingURL=owl-sparql-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owl-sparql-engine.js","sourceRoot":"","sources":["../../src/owl/owl-sparql-engine.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAcrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,MAAM,CAAC,MAAM,qBAAqB,GAAqB,UAAU,CAAC;AAElE,MAAM,UAAU,uBAAuB;IACnC,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAC9B,KAAuB,EACvB,cAAwB,EACxB,WAA2B,EAC3B,mBAA2C,EAC3C,gBAAoC;IAEpC,OAAO,IAAI,qBAAqB,CAAC,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AACzG,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type * as RDF from '@rdfjs/types';
2
+ import type { OwlABoxEntailmentState, OwlAskResult, OwlConstructResult, OwlImportGraph, OwlInferenceRunner, OwlQueryResult, OwlSparqlEngine, OwlStore } from './owl-interfaces.js';
3
+ export declare class OxigraphSparqlService implements OwlSparqlEngine {
4
+ private readonly reasoningStore;
5
+ private readonly importGraph;
6
+ private readonly aboxEntailmentCache;
7
+ private readonly reasoningService;
8
+ private oxModule?;
9
+ private oxInit?;
10
+ private readonly contextStores;
11
+ private ontologyIriResolver;
12
+ constructor(reasoningStore: OwlStore, importGraph: OwlImportGraph, aboxEntailmentCache: OwlABoxEntailmentState, reasoningService: OwlInferenceRunner, resolveOntologyIriForModelUri?: (modelUri: string) => string);
13
+ setOntologyIriResolver(resolver: (modelUri: string) => string): void;
14
+ invalidateFilteredStore(_modelUri: string): void;
15
+ removeFilteredStore(modelUri: string): void;
16
+ private targetGraphIris;
17
+ query(modelUri: string, sparql: string): Promise<OwlQueryResult>;
18
+ construct(modelUri: string, sparql: string): Promise<OwlConstructResult>;
19
+ ask(modelUri: string, sparql: string): Promise<OwlAskResult>;
20
+ withMaterializedQuads<T>(modelUri: string, quads: RDF.Quad[], action: () => Promise<T>): Promise<T>;
21
+ private ensureModule;
22
+ private prepare;
23
+ private execute;
24
+ private getOrBuildContext;
25
+ private syncStore;
26
+ private patchModelInStore;
27
+ private clearModelInStore;
28
+ private resolveBaseIri;
29
+ private resolveOntologyIri;
30
+ private toOntologyGraphIri;
31
+ private ensureFreshEntailments;
32
+ private composeWarnings;
33
+ private safeMissingWarnings;
34
+ }