@oml/cli 0.7.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/README.md +75 -0
- package/bin/cli.js +6 -0
- package/out/auth.d.ts +25 -0
- package/out/auth.js +253 -0
- package/out/auth.js.map +1 -0
- package/out/backend/backend-types.d.ts +19 -0
- package/out/backend/backend-types.js +3 -0
- package/out/backend/backend-types.js.map +1 -0
- package/out/backend/create-backend.d.ts +2 -0
- package/out/backend/create-backend.js +6 -0
- package/out/backend/create-backend.js.map +1 -0
- package/out/backend/direct-backend.d.ts +17 -0
- package/out/backend/direct-backend.js +97 -0
- package/out/backend/direct-backend.js.map +1 -0
- package/out/backend/reasoned-output.d.ts +38 -0
- package/out/backend/reasoned-output.js +568 -0
- package/out/backend/reasoned-output.js.map +1 -0
- package/out/cli.d.ts +1 -0
- package/out/cli.js +132 -0
- package/out/cli.js.map +1 -0
- package/out/commands/closure.d.ts +33 -0
- package/out/commands/closure.js +537 -0
- package/out/commands/closure.js.map +1 -0
- package/out/commands/compile.d.ts +11 -0
- package/out/commands/compile.js +63 -0
- package/out/commands/compile.js.map +1 -0
- package/out/commands/lint.d.ts +5 -0
- package/out/commands/lint.js +31 -0
- package/out/commands/lint.js.map +1 -0
- package/out/commands/reason.d.ts +13 -0
- package/out/commands/reason.js +62 -0
- package/out/commands/reason.js.map +1 -0
- package/out/commands/render.d.ts +15 -0
- package/out/commands/render.js +753 -0
- package/out/commands/render.js.map +1 -0
- package/out/commands/validate.d.ts +5 -0
- package/out/commands/validate.js +186 -0
- package/out/commands/validate.js.map +1 -0
- package/out/main.d.ts +1 -0
- package/out/main.js +4 -0
- package/out/main.js.map +1 -0
- package/out/update.d.ts +1 -0
- package/out/update.js +79 -0
- package/out/update.js.map +1 -0
- package/out/util.d.ts +10 -0
- package/out/util.js +63 -0
- package/out/util.js.map +1 -0
- package/package.json +36 -0
- package/src/auth.ts +315 -0
- package/src/backend/backend-types.ts +25 -0
- package/src/backend/create-backend.ts +8 -0
- package/src/backend/direct-backend.ts +114 -0
- package/src/backend/reasoned-output.ts +697 -0
- package/src/cli.ts +147 -0
- package/src/commands/closure.ts +624 -0
- package/src/commands/compile.ts +88 -0
- package/src/commands/lint.ts +35 -0
- package/src/commands/reason.ts +79 -0
- package/src/commands/render.ts +1021 -0
- package/src/commands/validate.ts +226 -0
- package/src/main.ts +5 -0
- package/src/update.ts +103 -0
- package/src/util.ts +83 -0
|
@@ -0,0 +1,568 @@
|
|
|
1
|
+
// Copyright (c) 2026 Modelware. All rights reserved.
|
|
2
|
+
import { isOntology, isVocabularyBundle, } from '@oml/language';
|
|
3
|
+
import { createOwlOntologyQuads, OWL_ONTOLOGY_IRI, Oml2OwlMapper, owlOntologyPrefixes, } from '@oml/owl';
|
|
4
|
+
import { checkConsistency } from '@oml/reasoner';
|
|
5
|
+
import { URI } from 'langium';
|
|
6
|
+
import { Parser, Writer } from 'n3';
|
|
7
|
+
import * as fs from 'node:fs/promises';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { VocabularyBundleClosureBuilder } from '../commands/closure.js';
|
|
10
|
+
const SUPPORTED_RDF_FORMATS = new Map([
|
|
11
|
+
['ttl', undefined],
|
|
12
|
+
['trig', 'application/trig'],
|
|
13
|
+
['nt', 'N-Triples'],
|
|
14
|
+
['nq', 'N-Quads'],
|
|
15
|
+
['n3', 'application/n3']
|
|
16
|
+
]);
|
|
17
|
+
const OWL_IMPORTS_IRI = 'http://www.w3.org/2002/07/owl#imports';
|
|
18
|
+
const RDF_TYPE_IRI = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type';
|
|
19
|
+
const SKIPPED_BUILT_IN_ONTOLOGIES = new Set([
|
|
20
|
+
'http://www.w3.org/2001/XMLSchema',
|
|
21
|
+
'http://www.w3.org/1999/02/22-rdf-syntax-ns',
|
|
22
|
+
'http://www.w3.org/2000/01/rdf-schema',
|
|
23
|
+
'http://www.w3.org/2002/07/owl',
|
|
24
|
+
'http://www.w3.org/2003/11/swrl',
|
|
25
|
+
'http://www.w3.org/2003/11/swrlb',
|
|
26
|
+
]);
|
|
27
|
+
export class OntologyInconsistencyError extends Error {
|
|
28
|
+
constructor(ontologyIri, result) {
|
|
29
|
+
super(formatConsistencyError(ontologyIri, result));
|
|
30
|
+
this.name = 'OntologyInconsistencyError';
|
|
31
|
+
this.ontologyIri = ontologyIri;
|
|
32
|
+
this.result = result;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export async function buildWorkspaceDocuments(services, workspaceRoot, validate = true) {
|
|
36
|
+
const documents = services.shared.workspace.LangiumDocuments;
|
|
37
|
+
const builder = services.shared.workspace.DocumentBuilder;
|
|
38
|
+
const omlUris = new Set();
|
|
39
|
+
for (const filePath of await findOmlFiles(workspaceRoot)) {
|
|
40
|
+
omlUris.add(URI.file(filePath).toString());
|
|
41
|
+
}
|
|
42
|
+
const docs = await Promise.all([...omlUris].sort().map((uri) => documents.getOrCreateDocument(URI.parse(uri))));
|
|
43
|
+
await builder.build(docs, { validation: validate });
|
|
44
|
+
return docs;
|
|
45
|
+
}
|
|
46
|
+
async function findOmlFiles(root) {
|
|
47
|
+
const entries = await fs.readdir(root, { withFileTypes: true });
|
|
48
|
+
const results = [];
|
|
49
|
+
for (const entry of entries) {
|
|
50
|
+
const fullPath = path.join(root, entry.name);
|
|
51
|
+
if (entry.isDirectory()) {
|
|
52
|
+
if (entry.name === 'node_modules' || entry.name.startsWith('.')) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
results.push(...await findOmlFiles(fullPath));
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (entry.isFile() && entry.name.toLowerCase().endsWith('.oml')) {
|
|
59
|
+
results.push(fullPath);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return results;
|
|
63
|
+
}
|
|
64
|
+
export async function writeCompiledWorkspace(services, workspaceRoot, outputRoot, format, pretty) {
|
|
65
|
+
const documents = await buildWorkspaceDocuments(services, workspaceRoot, true);
|
|
66
|
+
const entries = collectWorkspaceOntologyEntries(documents, outputRoot, format);
|
|
67
|
+
const ontologyByNamespace = new Map();
|
|
68
|
+
for (const entry of entries) {
|
|
69
|
+
ontologyByNamespace.set(entry.ontologyIri, entry.ontology);
|
|
70
|
+
}
|
|
71
|
+
const mapper = new Oml2OwlMapper();
|
|
72
|
+
const closureBuilder = new VocabularyBundleClosureBuilder(ontologyByNamespace);
|
|
73
|
+
const omlOntologyOutputFile = path.join(outputRoot, resolveOutputPathFromOntologyIriString(OWL_ONTOLOGY_IRI, format));
|
|
74
|
+
await fs.mkdir(path.dirname(omlOntologyOutputFile), { recursive: true });
|
|
75
|
+
await fs.writeFile(omlOntologyOutputFile, await serializeQuadsWithPrefixes(createOwlOntologyQuads(), owlOntologyPrefixes(), format, pretty), 'utf-8');
|
|
76
|
+
for (const entry of entries) {
|
|
77
|
+
const mappedQuads = entry.ontology ? mapper.toQuads(entry.ontology) : [];
|
|
78
|
+
const closureQuads = isVocabularyBundle(entry.ontology)
|
|
79
|
+
? closureBuilder.buildClosureQuads(entry.ontology)
|
|
80
|
+
: [];
|
|
81
|
+
const quads = filterBuiltInImportQuads([...mappedQuads, ...closureQuads]);
|
|
82
|
+
await fs.mkdir(path.dirname(entry.compiledPath), { recursive: true });
|
|
83
|
+
await fs.writeFile(entry.compiledPath, await serializeQuads(quads, entry.ontology, format, pretty), 'utf-8');
|
|
84
|
+
}
|
|
85
|
+
return entries;
|
|
86
|
+
}
|
|
87
|
+
export function collectWorkspaceOntologyEntries(documents, outputRoot, format) {
|
|
88
|
+
const ontologies = documents
|
|
89
|
+
.map((document) => ({
|
|
90
|
+
modelUri: document.uri.toString(),
|
|
91
|
+
root: document.parseResult.value,
|
|
92
|
+
}))
|
|
93
|
+
.filter((entry) => isOntology(entry.root));
|
|
94
|
+
return ontologies
|
|
95
|
+
.map(({ modelUri, root }) => {
|
|
96
|
+
const ontologyIri = normalizeNamespace(root.namespace)?.replace(/[\/#]+$/, '');
|
|
97
|
+
if (!ontologyIri || SKIPPED_BUILT_IN_ONTOLOGIES.has(ontologyIri)) {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
const compiledPath = path.join(outputRoot, resolveOutputPathFromOntologyIriString(ontologyIri, format));
|
|
101
|
+
return {
|
|
102
|
+
modelUri,
|
|
103
|
+
ontology: root,
|
|
104
|
+
ontologyIri,
|
|
105
|
+
imports: extractImportedModelUris(root),
|
|
106
|
+
compiledPath,
|
|
107
|
+
entailmentPath: compiledPath.replace(new RegExp(`\\.${format}$`, 'i'), `__entailments.${format}`),
|
|
108
|
+
};
|
|
109
|
+
})
|
|
110
|
+
.filter((entry) => Boolean(entry));
|
|
111
|
+
}
|
|
112
|
+
export async function reasonWorkspaceOntologies(entries, options) {
|
|
113
|
+
const orderedEntries = topologicallyOrder(entries);
|
|
114
|
+
let entailmentsWritten = 0;
|
|
115
|
+
for (const entry of orderedEntries) {
|
|
116
|
+
const result = await checkConsistency({
|
|
117
|
+
input: entry.compiledPath,
|
|
118
|
+
inputRoot: options.outputRoot,
|
|
119
|
+
explanations: options.explanations,
|
|
120
|
+
uniqueNamesAssumption: options.uniqueNamesAssumption,
|
|
121
|
+
checkOnly: options.checkOnly,
|
|
122
|
+
profile: options.profile,
|
|
123
|
+
timeout: 120000,
|
|
124
|
+
});
|
|
125
|
+
if (!result.consistent) {
|
|
126
|
+
throw new OntologyInconsistencyError(entry.ontologyIri, result);
|
|
127
|
+
}
|
|
128
|
+
if (!options.checkOnly) {
|
|
129
|
+
// await normalizeEntailmentOutput(entry, entailmentKeysByModelUri, options.format, options.pretty);
|
|
130
|
+
entailmentsWritten += 1;
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
ontologiesReasoned: orderedEntries.length,
|
|
136
|
+
entailmentsWritten: options.checkOnly ? 0 : entailmentsWritten,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
export async function loadPreparedDatasetFromOutput(workspaceRoot, outputRoot, format) {
|
|
140
|
+
const aliasBySuffix = await buildOmlAliasIndex(workspaceRoot);
|
|
141
|
+
const assertedFiles = await findRdfFiles(outputRoot, format);
|
|
142
|
+
const rawModels = [];
|
|
143
|
+
const modelUriByOntologyIri = new Map();
|
|
144
|
+
for (const assertedFile of assertedFiles) {
|
|
145
|
+
if (assertedFile.endsWith(`__entailments.${format}`)) {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const assertedQuads = await readRequiredRdfQuads(assertedFile);
|
|
149
|
+
const ontologyIri = ontologyIriFromQuads(assertedQuads);
|
|
150
|
+
if (!ontologyIri) {
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
const canonicalModelUri = ontologyIri;
|
|
154
|
+
modelUriByOntologyIri.set(ontologyIri, canonicalModelUri);
|
|
155
|
+
const relativeStem = relativeOntologyStem(outputRoot, assertedFile, format);
|
|
156
|
+
const aliases = [canonicalModelUri, ...resolveAliasesForStem(relativeStem, aliasBySuffix)];
|
|
157
|
+
const entailedQuads = await readOptionalRdfQuads(assertedFile.replace(new RegExp(`\\.${format}$`, 'i'), `__entailments.${format}`));
|
|
158
|
+
rawModels.push({
|
|
159
|
+
modelUri: canonicalModelUri,
|
|
160
|
+
aliases,
|
|
161
|
+
importedOntologyIris: importedOntologyIris(assertedQuads),
|
|
162
|
+
assertedQuads,
|
|
163
|
+
entailedQuads,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return rawModels.map((model) => ({
|
|
167
|
+
modelUri: model.modelUri,
|
|
168
|
+
aliases: model.aliases,
|
|
169
|
+
imports: model.importedOntologyIris
|
|
170
|
+
.map((ontologyIri) => modelUriByOntologyIri.get(ontologyIri) ?? ontologyIri)
|
|
171
|
+
.filter((uri) => uri !== model.modelUri),
|
|
172
|
+
assertedQuads: model.assertedQuads,
|
|
173
|
+
entailedQuads: model.entailedQuads,
|
|
174
|
+
validationWarnings: [],
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
export function normalizeFormatExtension(value) {
|
|
178
|
+
const normalized = (value ?? 'ttl').trim().toLowerCase().replace(/^\./, '');
|
|
179
|
+
if (!SUPPORTED_RDF_FORMATS.has(normalized)) {
|
|
180
|
+
throw new Error(`Unsupported RDF format '${value ?? ''}'. Supported formats: ttl, trig, nt, nq, n3.`);
|
|
181
|
+
}
|
|
182
|
+
return normalized;
|
|
183
|
+
}
|
|
184
|
+
function extractImportedModelUris(ontology) {
|
|
185
|
+
const imports = (ontology.ownedImports ?? [])
|
|
186
|
+
.map((ownedImport) => ownedImport.imported?.ref?.$document?.uri?.toString())
|
|
187
|
+
.filter((modelUri) => Boolean(modelUri));
|
|
188
|
+
return [...new Set(imports)].sort();
|
|
189
|
+
}
|
|
190
|
+
function topologicallyOrder(entries) {
|
|
191
|
+
const entryByModelUri = new Map(entries.map((entry) => [entry.modelUri, entry]));
|
|
192
|
+
const ordered = [];
|
|
193
|
+
const visiting = new Set();
|
|
194
|
+
const visited = new Set();
|
|
195
|
+
const visit = (modelUri) => {
|
|
196
|
+
if (visited.has(modelUri) || visiting.has(modelUri)) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
const entry = entryByModelUri.get(modelUri);
|
|
200
|
+
if (!entry) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
visiting.add(modelUri);
|
|
204
|
+
for (const importedModelUri of entry.imports) {
|
|
205
|
+
visit(importedModelUri);
|
|
206
|
+
}
|
|
207
|
+
visiting.delete(modelUri);
|
|
208
|
+
visited.add(modelUri);
|
|
209
|
+
ordered.push(entry);
|
|
210
|
+
};
|
|
211
|
+
for (const entry of [...entries].sort((left, right) => left.ontologyIri.localeCompare(right.ontologyIri))) {
|
|
212
|
+
visit(entry.modelUri);
|
|
213
|
+
}
|
|
214
|
+
return ordered;
|
|
215
|
+
}
|
|
216
|
+
function formatConsistencyError(ontologyIri, result) {
|
|
217
|
+
return JSON.stringify({
|
|
218
|
+
ontologyIri,
|
|
219
|
+
...result,
|
|
220
|
+
}, null, 2);
|
|
221
|
+
}
|
|
222
|
+
async function readRequiredRdfQuads(filePath) {
|
|
223
|
+
const source = await fs.readFile(filePath, 'utf-8');
|
|
224
|
+
const parser = new Parser({ format: formatFromExtension(path.extname(filePath)) });
|
|
225
|
+
return parser.parse(source);
|
|
226
|
+
}
|
|
227
|
+
// async function normalizeEntailmentOutput(
|
|
228
|
+
// entry: WorkspaceOntologyEntry,
|
|
229
|
+
// entailmentKeysByModelUri: Map<string, Set<string>>,
|
|
230
|
+
// format: string,
|
|
231
|
+
// pretty: boolean
|
|
232
|
+
// ): Promise<void> {
|
|
233
|
+
// const entailedQuads = await readOptionalRdfQuads(entry.entailmentPath);
|
|
234
|
+
// const inheritedKeys = new Set<string>();
|
|
235
|
+
// for (const importedModelUri of entry.imports) {
|
|
236
|
+
// const inherited = entailmentKeysByModelUri.get(importedModelUri);
|
|
237
|
+
// if (!inherited) {
|
|
238
|
+
// continue;
|
|
239
|
+
// }
|
|
240
|
+
// for (const key of inherited) {
|
|
241
|
+
// inheritedKeys.add(key);
|
|
242
|
+
// }
|
|
243
|
+
// }
|
|
244
|
+
// const emittedKeys = new Set<string>();
|
|
245
|
+
// const normalizedEntailments = entailedQuads.filter((quad) => {
|
|
246
|
+
// const key = quadIdentityKey(quad);
|
|
247
|
+
// if (inheritedKeys.has(key) || emittedKeys.has(key)) {
|
|
248
|
+
// return false;
|
|
249
|
+
// }
|
|
250
|
+
// emittedKeys.add(key);
|
|
251
|
+
// return true;
|
|
252
|
+
// });
|
|
253
|
+
// await fs.writeFile(entry.entailmentPath, await serializeQuads(normalizedEntailments, entry.ontology, format, pretty), 'utf-8');
|
|
254
|
+
// entailmentKeysByModelUri.set(entry.modelUri, emittedKeys);
|
|
255
|
+
// }
|
|
256
|
+
async function buildOmlAliasIndex(workspaceRoot) {
|
|
257
|
+
const index = new Map();
|
|
258
|
+
for (const filePath of await findOmlFiles(workspaceRoot)) {
|
|
259
|
+
const suffix = omlSuffixKey(filePath);
|
|
260
|
+
if (!suffix) {
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
const uri = URI.file(filePath).toString();
|
|
264
|
+
const existing = index.get(suffix) ?? [];
|
|
265
|
+
existing.push(uri);
|
|
266
|
+
index.set(suffix, existing);
|
|
267
|
+
}
|
|
268
|
+
return index;
|
|
269
|
+
}
|
|
270
|
+
async function findRdfFiles(root, format) {
|
|
271
|
+
const entries = await fs.readdir(root, { withFileTypes: true });
|
|
272
|
+
const results = [];
|
|
273
|
+
for (const entry of entries) {
|
|
274
|
+
const fullPath = path.join(root, entry.name);
|
|
275
|
+
if (entry.isDirectory()) {
|
|
276
|
+
results.push(...await findRdfFiles(fullPath, format));
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
if (entry.isFile() && entry.name.toLowerCase().endsWith(`.${format.toLowerCase()}`)) {
|
|
280
|
+
results.push(fullPath);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return results.sort();
|
|
284
|
+
}
|
|
285
|
+
function resolveAliasesForStem(relativeStem, aliasBySuffix) {
|
|
286
|
+
return [...new Set(aliasBySuffix.get(relativeStem.replace(/\\/g, '/')) ?? [])];
|
|
287
|
+
}
|
|
288
|
+
// function quadIdentityKey(quad: Quad): string {
|
|
289
|
+
// return `${quad.subject.id}|${quad.predicate.id}|${quad.object.id}`;
|
|
290
|
+
// }
|
|
291
|
+
function relativeOntologyStem(outputRoot, assertedFile, format) {
|
|
292
|
+
const relative = path.relative(outputRoot, assertedFile).split(path.sep).join('/');
|
|
293
|
+
return relative.replace(new RegExp(`\\.${format}$`, 'i'), '');
|
|
294
|
+
}
|
|
295
|
+
function omlSuffixKey(filePath) {
|
|
296
|
+
const normalized = filePath.split(path.sep).join('/');
|
|
297
|
+
const marker = '/oml/';
|
|
298
|
+
const index = normalized.lastIndexOf(marker);
|
|
299
|
+
if (index < 0) {
|
|
300
|
+
return undefined;
|
|
301
|
+
}
|
|
302
|
+
return normalized.slice(index + marker.length).replace(/\.oml$/i, '');
|
|
303
|
+
}
|
|
304
|
+
function ontologyIriFromQuads(quads) {
|
|
305
|
+
const namespace = quads.find((q) => q.predicate.value === 'http://opencaesar.io/oml#namespace' && q.object.termType === 'NamedNode')?.object.value;
|
|
306
|
+
return namespace?.replace(/[\/#]+$/, '');
|
|
307
|
+
}
|
|
308
|
+
async function readOptionalRdfQuads(filePath) {
|
|
309
|
+
try {
|
|
310
|
+
return await readRequiredRdfQuads(filePath);
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
const code = error.code;
|
|
314
|
+
if (code === 'ENOENT') {
|
|
315
|
+
return [];
|
|
316
|
+
}
|
|
317
|
+
throw error;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
async function serializeQuads(quads, ontology, format, pretty) {
|
|
321
|
+
return serializeQuadsWithPrefixes(quads, collectPrefixes(quads, ontology), format, pretty);
|
|
322
|
+
}
|
|
323
|
+
async function serializeQuadsWithPrefixes(quads, prefixes, format = 'ttl', pretty = false) {
|
|
324
|
+
const writer = new Writer({
|
|
325
|
+
format: SUPPORTED_RDF_FORMATS.get(format),
|
|
326
|
+
prefixes
|
|
327
|
+
});
|
|
328
|
+
writer.addQuads(orderQuadsForSerialization(quads));
|
|
329
|
+
const serialized = await new Promise((resolve, reject) => {
|
|
330
|
+
writer.end((error, result) => {
|
|
331
|
+
if (error) {
|
|
332
|
+
reject(error);
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
resolve(result);
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
return pretty ? prettyPrintRdf(serialized, format) : serialized;
|
|
339
|
+
}
|
|
340
|
+
function collectPrefixes(quads, ontology) {
|
|
341
|
+
const prefixes = {};
|
|
342
|
+
const ownPrefix = ontology.prefix;
|
|
343
|
+
const ownNamespace = normalizeNamespace(ontology.namespace);
|
|
344
|
+
if (ownPrefix && ownNamespace) {
|
|
345
|
+
prefixes[ownPrefix] = ownNamespace;
|
|
346
|
+
}
|
|
347
|
+
for (const { prefix, namespace } of Object.values(BUILT_IN_PREFIXES)) {
|
|
348
|
+
if (!(prefix in prefixes)) {
|
|
349
|
+
prefixes[prefix] = namespace;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
const importedPrefixByIri = new Map();
|
|
353
|
+
for (const ownedImport of ontology.ownedImports ?? []) {
|
|
354
|
+
const imported = ownedImport.imported?.ref;
|
|
355
|
+
const prefix = ownedImport.prefix ?? imported?.prefix;
|
|
356
|
+
const namespace = normalizeNamespace(imported?.namespace);
|
|
357
|
+
if (prefix && namespace) {
|
|
358
|
+
importedPrefixByIri.set(namespace.replace(/[\/#]+$/, ''), prefix);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
for (const importedOntologyIri of importedOntologyIris(quads)) {
|
|
362
|
+
const prefix = importedPrefixByIri.get(importedOntologyIri) ?? BUILT_IN_PREFIXES[importedOntologyIri]?.prefix;
|
|
363
|
+
const namespace = BUILT_IN_PREFIXES[importedOntologyIri]?.namespace;
|
|
364
|
+
if (prefix && namespace && !(prefix in prefixes)) {
|
|
365
|
+
prefixes[prefix] = namespace;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
addPrefixesUsedByQuads(prefixes, quads);
|
|
369
|
+
return prefixes;
|
|
370
|
+
}
|
|
371
|
+
function addPrefixesUsedByQuads(prefixes, quads) {
|
|
372
|
+
const usedNamespaces = new Set();
|
|
373
|
+
for (const quad of quads) {
|
|
374
|
+
collectTermNamespace(quad.subject, usedNamespaces);
|
|
375
|
+
collectTermNamespace(quad.predicate, usedNamespaces);
|
|
376
|
+
collectTermNamespace(quad.object, usedNamespaces);
|
|
377
|
+
collectTermNamespace(quad.graph, usedNamespaces);
|
|
378
|
+
}
|
|
379
|
+
const taken = new Set(Object.keys(prefixes));
|
|
380
|
+
for (const namespace of [...usedNamespaces].sort()) {
|
|
381
|
+
if (Object.values(prefixes).includes(namespace)) {
|
|
382
|
+
continue;
|
|
383
|
+
}
|
|
384
|
+
const prefix = allocatePrefix(namespace, taken);
|
|
385
|
+
prefixes[prefix] = namespace;
|
|
386
|
+
taken.add(prefix);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
function collectTermNamespace(term, namespaces) {
|
|
390
|
+
if (term.termType === 'NamedNode') {
|
|
391
|
+
const namespace = namespaceOfIri(term.value);
|
|
392
|
+
if (namespace) {
|
|
393
|
+
namespaces.add(namespace);
|
|
394
|
+
}
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
if (term.termType === 'Literal') {
|
|
398
|
+
const namespace = namespaceOfIri(term.datatype.value);
|
|
399
|
+
if (namespace) {
|
|
400
|
+
namespaces.add(namespace);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
function namespaceOfIri(iri) {
|
|
405
|
+
const hashIndex = iri.lastIndexOf('#');
|
|
406
|
+
if (hashIndex >= 0) {
|
|
407
|
+
return iri.slice(0, hashIndex + 1);
|
|
408
|
+
}
|
|
409
|
+
const slashIndex = iri.lastIndexOf('/');
|
|
410
|
+
if (slashIndex >= 0) {
|
|
411
|
+
return iri.slice(0, slashIndex + 1);
|
|
412
|
+
}
|
|
413
|
+
return undefined;
|
|
414
|
+
}
|
|
415
|
+
function allocatePrefix(namespace, taken) {
|
|
416
|
+
const base = suggestPrefix(namespace);
|
|
417
|
+
if (!taken.has(base)) {
|
|
418
|
+
return base;
|
|
419
|
+
}
|
|
420
|
+
let counter = 1;
|
|
421
|
+
while (taken.has(`${base}${counter}`)) {
|
|
422
|
+
counter += 1;
|
|
423
|
+
}
|
|
424
|
+
return `${base}${counter}`;
|
|
425
|
+
}
|
|
426
|
+
function suggestPrefix(namespace) {
|
|
427
|
+
try {
|
|
428
|
+
const url = new URL(namespace);
|
|
429
|
+
const candidates = [
|
|
430
|
+
...url.pathname.split('/').filter(Boolean).reverse(),
|
|
431
|
+
...url.hostname.split('.').filter(Boolean).reverse(),
|
|
432
|
+
];
|
|
433
|
+
for (const candidate of candidates) {
|
|
434
|
+
const normalized = candidate
|
|
435
|
+
.replace(/[^A-Za-z0-9_-]/g, '')
|
|
436
|
+
.replace(/^[^A-Za-z_]+/, '')
|
|
437
|
+
.toLowerCase();
|
|
438
|
+
if (normalized) {
|
|
439
|
+
return normalized;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
catch {
|
|
444
|
+
// Fall through to the generic prefix.
|
|
445
|
+
}
|
|
446
|
+
return 'ns';
|
|
447
|
+
}
|
|
448
|
+
function importedOntologyIris(quads) {
|
|
449
|
+
const imported = new Set();
|
|
450
|
+
for (const quad of quads) {
|
|
451
|
+
if (quad.predicate.value !== OWL_IMPORTS_IRI || quad.object.termType !== 'NamedNode') {
|
|
452
|
+
continue;
|
|
453
|
+
}
|
|
454
|
+
imported.add(quad.object.value.replace(/[\/#]+$/, ''));
|
|
455
|
+
}
|
|
456
|
+
return [...imported];
|
|
457
|
+
}
|
|
458
|
+
function filterBuiltInImportQuads(quads) {
|
|
459
|
+
return quads.filter((quad) => {
|
|
460
|
+
if (quad.predicate.value !== OWL_IMPORTS_IRI || quad.object.termType !== 'NamedNode') {
|
|
461
|
+
return true;
|
|
462
|
+
}
|
|
463
|
+
return !SKIPPED_BUILT_IN_ONTOLOGIES.has(quad.object.value.replace(/[\/#]+$/, ''));
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
export function resolveOutputPathFromOntologyIriString(ontologyIri, format) {
|
|
467
|
+
const iri = new URL(ontologyIri);
|
|
468
|
+
const rawPath = iri.pathname.replace(/\/+$/, '');
|
|
469
|
+
const pathSegments = rawPath.split('/').filter(Boolean);
|
|
470
|
+
const fileStem = pathSegments.at(-1) || 'index';
|
|
471
|
+
const directorySegments = iri.host
|
|
472
|
+
? [iri.host, ...pathSegments.slice(0, -1)]
|
|
473
|
+
: pathSegments.slice(0, -1);
|
|
474
|
+
return path.join(...directorySegments, `${fileStem}.${format}`);
|
|
475
|
+
}
|
|
476
|
+
export function normalizeNamespace(value) {
|
|
477
|
+
return value?.replace(/^<|>$/g, '');
|
|
478
|
+
}
|
|
479
|
+
function formatFromExtension(extension) {
|
|
480
|
+
switch (extension.toLowerCase()) {
|
|
481
|
+
case '.trig':
|
|
482
|
+
return 'application/trig';
|
|
483
|
+
case '.nt':
|
|
484
|
+
return 'N-Triples';
|
|
485
|
+
case '.nq':
|
|
486
|
+
return 'N-Quads';
|
|
487
|
+
case '.n3':
|
|
488
|
+
return 'application/n3';
|
|
489
|
+
default:
|
|
490
|
+
return undefined;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
function orderQuadsForSerialization(quads) {
|
|
494
|
+
return [...quads].sort((left, right) => {
|
|
495
|
+
const graph = compareTerm(left.graph, right.graph);
|
|
496
|
+
if (graph !== 0) {
|
|
497
|
+
return graph;
|
|
498
|
+
}
|
|
499
|
+
const subject = compareTerm(left.subject, right.subject);
|
|
500
|
+
if (subject !== 0) {
|
|
501
|
+
return subject;
|
|
502
|
+
}
|
|
503
|
+
const predicate = comparePredicate(left.predicate.value, right.predicate.value);
|
|
504
|
+
if (predicate !== 0) {
|
|
505
|
+
return predicate;
|
|
506
|
+
}
|
|
507
|
+
return compareTerm(left.object, right.object);
|
|
508
|
+
});
|
|
509
|
+
}
|
|
510
|
+
function comparePredicate(left, right) {
|
|
511
|
+
if (left === right) {
|
|
512
|
+
return 0;
|
|
513
|
+
}
|
|
514
|
+
if (left === RDF_TYPE_IRI) {
|
|
515
|
+
return -1;
|
|
516
|
+
}
|
|
517
|
+
if (right === RDF_TYPE_IRI) {
|
|
518
|
+
return 1;
|
|
519
|
+
}
|
|
520
|
+
return left.localeCompare(right);
|
|
521
|
+
}
|
|
522
|
+
function compareTerm(left, right) {
|
|
523
|
+
if (left.termType !== right.termType) {
|
|
524
|
+
return left.termType.localeCompare(right.termType);
|
|
525
|
+
}
|
|
526
|
+
if (left.termType === 'Literal' && right.termType === 'Literal') {
|
|
527
|
+
const value = left.value.localeCompare(right.value);
|
|
528
|
+
if (value !== 0) {
|
|
529
|
+
return value;
|
|
530
|
+
}
|
|
531
|
+
const language = left.language.localeCompare(right.language);
|
|
532
|
+
if (language !== 0) {
|
|
533
|
+
return language;
|
|
534
|
+
}
|
|
535
|
+
return left.datatype.value.localeCompare(right.datatype.value);
|
|
536
|
+
}
|
|
537
|
+
return left.value.localeCompare(right.value);
|
|
538
|
+
}
|
|
539
|
+
function prettyPrintRdf(serialized, format) {
|
|
540
|
+
if (format !== 'ttl' && format !== 'trig' && format !== 'n3') {
|
|
541
|
+
return serialized;
|
|
542
|
+
}
|
|
543
|
+
return serialized.replace(/\.\n(?=(?:<|_:[^\s]+|[A-Za-z][A-Za-z0-9_-]*:))/g, '.\n\n');
|
|
544
|
+
}
|
|
545
|
+
const BUILT_IN_PREFIXES = {
|
|
546
|
+
[OWL_ONTOLOGY_IRI]: { prefix: 'oml', namespace: owlOntologyPrefixes().oml },
|
|
547
|
+
'http://www.w3.org/1999/02/22-rdf-syntax-ns': {
|
|
548
|
+
prefix: 'rdf',
|
|
549
|
+
namespace: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
|
|
550
|
+
},
|
|
551
|
+
'http://www.w3.org/2000/01/rdf-schema': {
|
|
552
|
+
prefix: 'rdfs',
|
|
553
|
+
namespace: 'http://www.w3.org/2000/01/rdf-schema#',
|
|
554
|
+
},
|
|
555
|
+
'http://www.w3.org/2002/07/owl': {
|
|
556
|
+
prefix: 'owl',
|
|
557
|
+
namespace: 'http://www.w3.org/2002/07/owl#',
|
|
558
|
+
},
|
|
559
|
+
'http://www.w3.org/2001/XMLSchema': {
|
|
560
|
+
prefix: 'xsd',
|
|
561
|
+
namespace: 'http://www.w3.org/2001/XMLSchema#',
|
|
562
|
+
},
|
|
563
|
+
'http://www.w3.org/2003/11/swrl': {
|
|
564
|
+
prefix: 'swrl',
|
|
565
|
+
namespace: 'http://www.w3.org/2003/11/swrl#',
|
|
566
|
+
},
|
|
567
|
+
};
|
|
568
|
+
//# sourceMappingURL=reasoned-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reasoned-output.js","sourceRoot":"","sources":["../../src/backend/reasoned-output.ts"],"names":[],"mappings":"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"}
|
package/out/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function runCli(argv?: string[]): Promise<void>;
|