@oml/cli 0.10.0 → 0.12.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.
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { createOwlServices } from '@oml/owl';
|
|
3
3
|
import { MarkdownHandlerRegistry, MarkdownPreviewRuntime } from '@oml/markdown';
|
|
4
4
|
import { MarkdownExecutor } from '@oml/markdown';
|
|
5
|
+
import { getOntologyModelIndex } from '@oml/language';
|
|
5
6
|
import { NodeFileSystem } from 'langium/node';
|
|
6
7
|
import { URI } from 'langium';
|
|
7
8
|
import * as fs from 'node:fs/promises';
|
|
@@ -41,11 +42,31 @@ export class DirectBackend {
|
|
|
41
42
|
const services = await this.ensureServices(workspaceRoot);
|
|
42
43
|
await this.ensurePreparedDataset(workspaceRoot, services);
|
|
43
44
|
const reasoningService = services.reasoning.ReasoningService;
|
|
45
|
+
const ontologyIndex = getOntologyModelIndex(services.shared);
|
|
46
|
+
const knownNamespaceCache = new Map();
|
|
47
|
+
const isKnownOntologyIriNamespace = (ontologyIri) => {
|
|
48
|
+
const normalized = ontologyIri.trim().replace(/[\/#]+$/, '');
|
|
49
|
+
if (!normalized) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
const cached = knownNamespaceCache.get(normalized);
|
|
53
|
+
if (cached !== undefined) {
|
|
54
|
+
return cached;
|
|
55
|
+
}
|
|
56
|
+
if (ontologyIndex.resolveModelUri(normalized)) {
|
|
57
|
+
knownNamespaceCache.set(normalized, true);
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
const exists = ontologyIndex.getDuplicateWorkspaceModelUris(normalized).length > 0;
|
|
61
|
+
knownNamespaceCache.set(normalized, exists);
|
|
62
|
+
return exists;
|
|
63
|
+
};
|
|
44
64
|
const executor = new MarkdownExecutor({
|
|
45
65
|
ensureContext: (modelUri) => reasoningService.ensureQueryContext(modelUri),
|
|
46
66
|
resolveContextIri: (modelUri) => reasoningService.getContextIri(modelUri),
|
|
47
67
|
query: (modelUri, sparql) => reasoningService.getSparqlService().query(modelUri, sparql),
|
|
48
68
|
construct: (modelUri, sparql) => reasoningService.getSparqlService().construct(modelUri, sparql),
|
|
69
|
+
isKnownOntologyIriNamespace,
|
|
49
70
|
});
|
|
50
71
|
return executor.executeBlocks(params);
|
|
51
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-backend.js","sourceRoot":"","sources":["../../src/backend/direct-backend.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"direct-backend.js","sourceRoot":"","sources":["../../src/backend/direct-backend.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oml/cli",
|
|
3
3
|
"description": "The cli specific package",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.12.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=20.10.0",
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"build:clean": "npm run clean && npm run build"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@oml/language": "0.
|
|
25
|
-
"@oml/markdown": "0.
|
|
26
|
-
"@oml/owl": "0.
|
|
24
|
+
"@oml/language": "0.12.0",
|
|
25
|
+
"@oml/markdown": "0.12.0",
|
|
26
|
+
"@oml/owl": "0.12.0",
|
|
27
27
|
"@oml/platform": "^0.4.0",
|
|
28
28
|
"@oml/reasoner": "^0.3.0",
|
|
29
29
|
"chalk": "~5.3.0",
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { createOwlServices } from '@oml/owl';
|
|
4
4
|
import { MarkdownHandlerRegistry, MarkdownPreviewRuntime } from '@oml/markdown';
|
|
5
5
|
import { MarkdownExecutor, type MdExecuteBlocksParams, type MdExecuteBlocksResult } from '@oml/markdown';
|
|
6
|
+
import { getOntologyModelIndex } from '@oml/language';
|
|
6
7
|
import { NodeFileSystem } from 'langium/node';
|
|
7
8
|
import { URI } from 'langium';
|
|
8
9
|
import * as fs from 'node:fs/promises';
|
|
@@ -55,11 +56,31 @@ export class DirectBackend implements CliBackend {
|
|
|
55
56
|
const services = await this.ensureServices(workspaceRoot);
|
|
56
57
|
await this.ensurePreparedDataset(workspaceRoot, services);
|
|
57
58
|
const reasoningService = services.reasoning.ReasoningService as any;
|
|
59
|
+
const ontologyIndex = getOntologyModelIndex(services.shared as any);
|
|
60
|
+
const knownNamespaceCache = new Map<string, boolean>();
|
|
61
|
+
const isKnownOntologyIriNamespace = (ontologyIri: string): boolean => {
|
|
62
|
+
const normalized = ontologyIri.trim().replace(/[\/#]+$/, '');
|
|
63
|
+
if (!normalized) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
const cached = knownNamespaceCache.get(normalized);
|
|
67
|
+
if (cached !== undefined) {
|
|
68
|
+
return cached;
|
|
69
|
+
}
|
|
70
|
+
if (ontologyIndex.resolveModelUri(normalized)) {
|
|
71
|
+
knownNamespaceCache.set(normalized, true);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
const exists = ontologyIndex.getDuplicateWorkspaceModelUris(normalized).length > 0;
|
|
75
|
+
knownNamespaceCache.set(normalized, exists);
|
|
76
|
+
return exists;
|
|
77
|
+
};
|
|
58
78
|
const executor = new MarkdownExecutor({
|
|
59
79
|
ensureContext: (modelUri) => reasoningService.ensureQueryContext(modelUri),
|
|
60
80
|
resolveContextIri: (modelUri) => reasoningService.getContextIri(modelUri),
|
|
61
81
|
query: (modelUri, sparql) => reasoningService.getSparqlService().query(modelUri, sparql),
|
|
62
82
|
construct: (modelUri, sparql) => reasoningService.getSparqlService().construct(modelUri, sparql),
|
|
83
|
+
isKnownOntologyIriNamespace,
|
|
63
84
|
});
|
|
64
85
|
return executor.executeBlocks(params);
|
|
65
86
|
}
|