@oml/cli 0.14.14 → 0.14.16

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/cli.js CHANGED
@@ -175,7 +175,8 @@ export async function runCli(argv = process.argv) {
175
175
  .option('-f, --format <ext>', 'RDF format extension: ttl, trig, nt, nq, or n3', 'ttl')
176
176
  .option('--clean', 'remove output folder before reason (only when --owl is provided)')
177
177
  .option('--pretty', 'pretty-print Turtle/TriG output with blank lines between top-level blocks (only when --owl is provided)')
178
- .option('-e, --explanation [value]', 'enable or disable inconsistency explanations', parseBooleanOption, true)
178
+ .option('-u, --unique-names-assumption [value]', 'enable or disable the unique names assumption', parseBooleanOption, true)
179
+ .option('-e, --explanation [value]', 'enable or disable inconsistency explanations', parseBooleanOption, false)
179
180
  .description('run workspace consistency checks (or persist entailments with --owl)')
180
181
  .action(async (opts) => {
181
182
  const done = trackCommand('oml-reason');
package/out/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import chalk from 'chalk';
3
3
  import * as path from 'node:path';
4
4
  import { failCli } from '../cli-error.js';
5
5
  import { formatDuration } from '../util.js';
6
+ import { printLintDiagnostics } from './lint.js';
6
7
  import { restPost } from './server/rest.js';
7
8
  function normalizeRdfFormat(value) {
8
9
  const normalized = String(value ?? 'ttl').trim().toLowerCase();
@@ -21,6 +22,13 @@ export const exportAction = async (opts) => {
21
22
  pretty: opts.pretty === true,
22
23
  }, opts.authToken);
23
24
  if (!result.success) {
25
+ printLintDiagnostics({
26
+ success: false,
27
+ filesChecked: Number(result.filesChecked ?? 0),
28
+ errors: Number(result.errors ?? 0),
29
+ warnings: Number(result.warnings ?? 0),
30
+ problems: result.problems,
31
+ });
24
32
  failCli(chalk.red(result.error?.trim() || 'export failed.'));
25
33
  }
26
34
  if (result.filesWritten <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAmB5C,SAAS,kBAAkB,CAAC,KAAyB;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC7F,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAmB,EAAiB,EAAE;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,QAAQ,CACzB,YAAY,EACZ;QACI,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM;QACN,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;KACJ,EAC5B,IAAI,CAAC,SAAS,CACjB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACtE,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CACnB,WAAW,MAAM,CAAC,YAAY,4BAA4B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAC7K,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAoB,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuB5C,SAAS,kBAAkB,CAAC,KAAyB;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC7F,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAmB,EAAiB,EAAE;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,QAAQ,CACzB,YAAY,EACZ;QACI,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM;QACN,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;KACJ,EAC5B,IAAI,CAAC,SAAS,CACjB,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,oBAAoB,CAAC;YACjB,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;YAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC5B,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACtE,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CACnB,WAAW,MAAM,CAAC,YAAY,4BAA4B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAC7K,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -5,10 +5,11 @@ import * as fs from 'node:fs/promises';
5
5
  import * as os from 'node:os';
6
6
  import * as path from 'node:path';
7
7
  import { fileURLToPath } from 'node:url';
8
- import { Parser, Writer } from 'n3';
9
8
  import { failCli } from '../cli-error.js';
10
9
  import { formatDuration } from '../util.js';
10
+ import { printLintDiagnostics } from './lint.js';
11
11
  import { restPost } from './server/rest.js';
12
+ const OWL_IMPORTS_IRI = '<http://www.w3.org/2002/07/owl#imports>';
12
13
  function normalizeRdfFormat(value) {
13
14
  const normalized = String(value ?? 'ttl').trim().toLowerCase();
14
15
  if (normalized === 'trig' || normalized === 'nt' || normalized === 'nq' || normalized === 'n3') {
@@ -16,42 +17,6 @@ function normalizeRdfFormat(value) {
16
17
  }
17
18
  return 'ttl';
18
19
  }
19
- function rdfWriterFormat(format) {
20
- if (format === 'ttl') {
21
- return 'text/turtle';
22
- }
23
- if (format === 'trig') {
24
- return 'application/trig';
25
- }
26
- if (format === 'nt') {
27
- return 'N-Triples';
28
- }
29
- if (format === 'nq') {
30
- return 'N-Quads';
31
- }
32
- return 'application/n3';
33
- }
34
- function rdfParserFormat(format) {
35
- return rdfWriterFormat(format);
36
- }
37
- async function parseRdf(serialized, format) {
38
- const parser = new Parser({ format: rdfParserFormat(format) });
39
- return parser.parse(serialized);
40
- }
41
- async function serializeRdf(quads, format, pretty) {
42
- const writer = new Writer({ format: rdfWriterFormat(format) });
43
- writer.addQuads(quads);
44
- const serialized = await new Promise((resolve, reject) => {
45
- writer.end((error, result) => {
46
- if (error) {
47
- reject(error);
48
- return;
49
- }
50
- resolve(result);
51
- });
52
- });
53
- return pretty ? prettyPrintRdf(serialized, format) : serialized;
54
- }
55
20
  function prettyPrintRdf(serialized, format) {
56
21
  if (format !== 'ttl' && format !== 'trig') {
57
22
  return serialized;
@@ -61,7 +26,7 @@ function prettyPrintRdf(serialized, format) {
61
26
  for (let i = 0; i < lines.length; i += 1) {
62
27
  const line = lines[i];
63
28
  out.push(line);
64
- if (line.trim() === '.') {
29
+ if (line.trim().endsWith('.')) {
65
30
  const next = lines[i + 1];
66
31
  if (next !== undefined && next.trim().length > 0) {
67
32
  out.push('');
@@ -70,62 +35,102 @@ function prettyPrintRdf(serialized, format) {
70
35
  }
71
36
  return out.join('\n');
72
37
  }
73
- async function convertSerializedRdf(serialized, sourceFormat, targetFormat, pretty) {
74
- if (sourceFormat === targetFormat && !pretty) {
75
- return serialized;
38
+ function extractImports(serialized) {
39
+ const imports = new Set();
40
+ const statementPattern = /(?:<http:\/\/www\.w3\.org\/2002\/07\/owl#imports>|owl:imports)\s+([^;.]*)[;.]/gms;
41
+ let statementMatch;
42
+ while ((statementMatch = statementPattern.exec(serialized)) !== null) {
43
+ const tail = statementMatch[1] ?? '';
44
+ const iriPattern = /<([^>]+)>/g;
45
+ let iriMatch;
46
+ while ((iriMatch = iriPattern.exec(tail)) !== null) {
47
+ const iri = iriMatch[1]?.trim();
48
+ if (iri) {
49
+ imports.add(iri);
50
+ }
51
+ }
76
52
  }
77
- if (sourceFormat === targetFormat) {
78
- return prettyPrintRdf(serialized, targetFormat);
53
+ // Handle compact single-line N-Triples cases defensively.
54
+ if (imports.size === 0 && serialized.includes(OWL_IMPORTS_IRI)) {
55
+ const linePattern = /<http:\/\/www\.w3\.org\/2002\/07\/owl#imports>\s+<([^>]+)>/g;
56
+ let lineMatch;
57
+ while ((lineMatch = linePattern.exec(serialized)) !== null) {
58
+ const iri = lineMatch[1]?.trim();
59
+ if (iri) {
60
+ imports.add(iri);
61
+ }
62
+ }
79
63
  }
80
- const quads = await parseRdf(serialized, sourceFormat);
81
- return await serializeRdf(quads, targetFormat, pretty);
64
+ return Array.from(imports);
82
65
  }
83
- function replaceRdfExtension(filePath, format) {
84
- const parsed = path.parse(filePath);
85
- return path.join(parsed.dir, `${parsed.name}.${format}`);
86
- }
87
- function entailmentsArtifactPath(assertedPath, format) {
88
- const parsed = path.parse(assertedPath);
89
- return path.join(parsed.dir, `${parsed.name}__entailments.${format}`);
90
- }
91
- function resolveEntailmentsSourcePath(uri) {
92
- if (typeof uri !== 'string' || uri.trim().length === 0) {
93
- return undefined;
66
+ function sortFilesLeafToRoot(files) {
67
+ const filesByOntologyIri = new Map();
68
+ for (const file of files) {
69
+ filesByOntologyIri.set(file.ontologyIri, file);
70
+ }
71
+ const importsByOntologyIri = new Map();
72
+ for (const file of files) {
73
+ importsByOntologyIri.set(file.ontologyIri, extractImports(file.content));
74
+ }
75
+ const sorted = [];
76
+ const state = new Map();
77
+ const sortedRoots = [...filesByOntologyIri.keys()].sort((a, b) => a.localeCompare(b));
78
+ const visit = (ontologyIri) => {
79
+ const current = state.get(ontologyIri) ?? 0;
80
+ if (current === 2) {
81
+ return;
82
+ }
83
+ if (current === 1) {
84
+ return;
85
+ }
86
+ state.set(ontologyIri, 1);
87
+ for (const importedIri of importsByOntologyIri.get(ontologyIri) ?? []) {
88
+ if (filesByOntologyIri.has(importedIri)) {
89
+ visit(importedIri);
90
+ }
91
+ }
92
+ state.set(ontologyIri, 2);
93
+ const file = filesByOntologyIri.get(ontologyIri);
94
+ if (file) {
95
+ sorted.push(file);
96
+ }
97
+ };
98
+ for (const ontologyIri of sortedRoots) {
99
+ visit(ontologyIri);
94
100
  }
101
+ return sorted;
102
+ }
103
+ function resolveEntailmentsPath(uri) {
95
104
  const trimmed = uri.trim();
96
105
  if (trimmed.startsWith('file://')) {
97
- try {
98
- return fileURLToPath(trimmed);
99
- }
100
- catch {
101
- return undefined;
102
- }
106
+ return fileURLToPath(trimmed);
103
107
  }
104
108
  return trimmed;
105
109
  }
106
- function inferRdfFormatFromPath(filePath) {
107
- const extension = path.extname(filePath).toLowerCase();
108
- if (extension === '.trig') {
109
- return 'trig';
110
- }
111
- if (extension === '.nt') {
112
- return 'nt';
113
- }
114
- if (extension === '.nq') {
115
- return 'nq';
116
- }
117
- if (extension === '.n3') {
118
- return 'n3';
110
+ function modelUriToRelativePath(modelUri) {
111
+ const trimmed = modelUri.trim();
112
+ if (trimmed.startsWith('file://')) {
113
+ const absolute = fileURLToPath(trimmed);
114
+ const relative = path.relative(process.cwd(), absolute);
115
+ return relative.length > 0 ? relative : path.basename(absolute);
119
116
  }
120
- return 'ttl';
117
+ return trimmed;
121
118
  }
122
119
  export const reasonAction = async (opts) => {
123
120
  const startedAt = Date.now();
124
121
  const outputFormat = normalizeRdfFormat(opts.format);
125
122
  const pretty = opts.pretty === true;
126
- const assertions = await restPost('/v0/assertions', {}, opts.authToken);
123
+ const assertions = await restPost('/v0/assertions', { format: outputFormat, pretty }, opts.authToken);
127
124
  if (!assertions.success) {
128
- failCli(chalk.red(assertions.error?.trim() || 'reason failed.'));
125
+ printLintDiagnostics({
126
+ success: false,
127
+ filesChecked: Number(assertions.filesChecked ?? 0),
128
+ errors: Number(assertions.errors ?? 0),
129
+ warnings: Number(assertions.warnings ?? 0),
130
+ problems: assertions.problems,
131
+ });
132
+ const summary = assertions.error?.trim() || 'reason failed.';
133
+ failCli(chalk.red(summary));
129
134
  }
130
135
  if (assertions.files.length === 0) {
131
136
  console.log(chalk.yellow(`No .oml files found under ${path.resolve('.')}.`));
@@ -134,85 +139,84 @@ export const reasonAction = async (opts) => {
134
139
  const outputDir = typeof opts.owl === 'string' && opts.owl.trim().length > 0
135
140
  ? path.resolve(opts.owl.trim())
136
141
  : undefined;
137
- const tempRoot = outputDir ?? await fs.mkdtemp(path.join(os.tmpdir(), 'oml-reason-cli-'));
142
+ const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'oml-reason-cli-'));
138
143
  if (outputDir) {
139
144
  if (opts.clean === true) {
140
145
  await fs.rm(outputDir, { recursive: true, force: true });
141
146
  }
142
- await fs.mkdir(outputDir, { recursive: true });
143
147
  }
144
- const inconsistent = [];
145
- const failed = [];
146
- let entailmentsPersisted = 0;
148
+ const orderedFiles = sortFilesLeafToRoot(assertions.files);
149
+ let firstInconsistent;
150
+ let firstFailure;
151
+ let entailmentsProduced = 0;
147
152
  try {
148
- for (const file of assertions.files) {
153
+ for (const file of orderedFiles) {
149
154
  const target = path.join(tempRoot, file.path);
150
155
  await fs.mkdir(path.dirname(target), { recursive: true });
151
- await fs.writeFile(target, file.content, 'utf-8');
156
+ await fs.writeFile(target, prettyPrintRdf(file.content, outputFormat), 'utf-8');
152
157
  }
153
- for (const file of assertions.files) {
158
+ for (const file of orderedFiles) {
154
159
  const target = path.join(tempRoot, file.path);
155
160
  try {
156
161
  const result = await checkConsistency({
157
162
  input: target,
158
163
  inputRoot: tempRoot,
159
- explanations: opts.explanation !== false,
160
- uniqueNamesAssumption: opts.uniqueNamesAssumption === true,
164
+ explanations: opts.explanation === true,
165
+ uniqueNamesAssumption: opts.uniqueNamesAssumption !== false,
161
166
  checkOnly: outputDir === undefined,
162
167
  profile: opts.profile === true,
163
168
  timeout: typeof opts.timeout === 'number' && Number.isFinite(opts.timeout) && opts.timeout > 0
164
169
  ? Math.floor(opts.timeout)
165
170
  : 120000,
166
171
  });
172
+ if (!result.consistent) {
173
+ firstInconsistent = {
174
+ file,
175
+ result: result,
176
+ };
177
+ break;
178
+ }
167
179
  if (outputDir) {
168
- const assertedArtifactPath = replaceRdfExtension(path.join(outputDir, file.path), outputFormat);
169
- await fs.mkdir(path.dirname(assertedArtifactPath), { recursive: true });
170
- const assertedContent = await convertSerializedRdf(file.content, 'nt', outputFormat, pretty);
171
- await fs.writeFile(assertedArtifactPath, assertedContent, 'utf-8');
172
- const entailmentsSourcePath = resolveEntailmentsSourcePath(result.entailmentsUri);
173
- if (!entailmentsSourcePath) {
174
- throw new Error('Reasoner did not return an entailments URI.');
180
+ if (typeof result.entailmentsUri !== 'string' || result.entailmentsUri.trim().length === 0) {
181
+ throw new Error('Reasoner returned a consistent result but did not provide entailments URI.');
175
182
  }
176
- const entailmentsSerialized = await fs.readFile(entailmentsSourcePath, 'utf-8');
177
- const entailmentsArtifact = entailmentsArtifactPath(assertedArtifactPath, outputFormat);
178
- await fs.mkdir(path.dirname(entailmentsArtifact), { recursive: true });
179
- const entailmentsContent = await convertSerializedRdf(entailmentsSerialized, inferRdfFormatFromPath(entailmentsSourcePath), outputFormat, pretty);
180
- await fs.writeFile(entailmentsArtifact, entailmentsContent, 'utf-8');
181
- entailmentsPersisted += 1;
182
- }
183
- if (!result.consistent) {
184
- inconsistent.push({
185
- modelUri: file.modelUri,
186
- validationWarnings: Array.isArray(result.reports) ? result.reports : [],
187
- });
183
+ if (pretty) {
184
+ const entailmentsPath = resolveEntailmentsPath(result.entailmentsUri);
185
+ const entailmentsContent = await fs.readFile(entailmentsPath, 'utf-8');
186
+ await fs.writeFile(entailmentsPath, prettyPrintRdf(entailmentsContent, outputFormat), 'utf-8');
187
+ }
188
+ entailmentsProduced += 1;
188
189
  }
189
190
  }
190
191
  catch (error) {
191
- failed.push({
192
+ firstFailure = {
192
193
  modelUri: file.modelUri,
193
194
  error: error instanceof Error ? error.message : String(error),
194
- });
195
+ };
196
+ break;
195
197
  }
196
198
  }
197
199
  }
198
200
  finally {
199
- if (!outputDir) {
200
- await fs.rm(tempRoot, { recursive: true, force: true });
201
+ if (outputDir && !firstFailure && !firstInconsistent) {
202
+ await fs.mkdir(outputDir, { recursive: true });
203
+ await fs.cp(tempRoot, outputDir, { recursive: true, force: true });
201
204
  }
205
+ await fs.rm(tempRoot, { recursive: true, force: true });
202
206
  }
203
- if (failed.length > 0 || inconsistent.length > 0) {
204
- for (const item of failed) {
205
- const modelUri = String(item.modelUri ?? '').trim();
206
- console.log(chalk.red(`reason failed: ${modelUri || '<workspace>'}: ${item.error}`));
207
- }
208
- for (const item of inconsistent) {
209
- const warnings = item.validationWarnings.length > 0 ? ` warnings=${item.validationWarnings.join('; ')}` : '';
210
- console.log(chalk.red(`reason inconsistency detected: ${item.modelUri}.${warnings}`));
207
+ if (firstFailure) {
208
+ const modelUri = String(firstFailure.modelUri ?? '').trim() || '<workspace>';
209
+ failCli(chalk.red(`reason failed: ${modelUri}: ${firstFailure.error}`));
210
+ }
211
+ if (firstInconsistent) {
212
+ const where = modelUriToRelativePath(firstInconsistent.file.modelUri);
213
+ if (opts.explanation === true) {
214
+ failCli(chalk.red(`Inconsistency found in: ${where}\n${JSON.stringify(firstInconsistent.result, null, 2)}`));
211
215
  }
212
- failCli(chalk.red('reason failed.'));
216
+ failCli(chalk.red(`Inconsistency found in: ${where}`));
213
217
  }
214
218
  if (outputDir) {
215
- console.log(chalk.green(`reason: ${assertions.files.length} ontology file(s) reasoned in ${path.relative(process.cwd(), outputDir) || outputDir} (${entailmentsPersisted} entailment artifact file(s) written) [${formatDuration(Date.now() - startedAt)}]`));
219
+ console.log(chalk.green(`reason: ${assertions.files.length} ontology file(s) reasoned in ${path.relative(process.cwd(), outputDir) || outputDir} (${entailmentsProduced} entailment artifact file(s) written) [${formatDuration(Date.now() - startedAt)}]`));
216
220
  return;
217
221
  }
218
222
  console.log(chalk.green(`reason: ${assertions.files.length} ontology file(s) checked [${formatDuration(Date.now() - startedAt)}]`));
@@ -1 +1 @@
1
- {"version":3,"file":"reason.js","sourceRoot":"","sources":["../../src/commands/reason.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reason.js","sourceRoot":"","sources":["../../src/commands/reason.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import chalk from 'chalk';
3
3
  import * as path from 'node:path';
4
4
  import { failCli } from '../cli-error.js';
5
5
  import { formatDuration } from '../util.js';
6
+ import { printLintDiagnostics } from './lint.js';
6
7
  import { restPost } from './server/rest.js';
7
8
  export const renderAction = async (opts) => {
8
9
  const renderStartedAt = Date.now();
@@ -10,6 +11,13 @@ export const renderAction = async (opts) => {
10
11
  ...opts,
11
12
  }, opts.authToken);
12
13
  if (!result.success) {
14
+ printLintDiagnostics({
15
+ success: false,
16
+ filesChecked: Number(result.filesChecked ?? 0),
17
+ errors: Number(result.errors ?? 0),
18
+ warnings: Number(result.warnings ?? 0),
19
+ problems: result.problems,
20
+ });
13
21
  failCli(chalk.red(result.error?.trim() || 'render failed.'));
14
22
  }
15
23
  if (result.filesRendered === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAU5C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAmB,EAAiB,EAAE;IACrE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAK1B,YAAY,EAAE;QACb,GAAG,IAAI;KAC4B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACtD,OAAO;IACX,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,aAAa,iCAAiC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,IAAI,SAAS,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACvM,CAAC,CAAC"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAoB,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAU5C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAmB,EAAiB,EAAE;IACrE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAS1B,YAAY,EAAE;QACb,GAAG,IAAI;KAC4B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,oBAAoB,CAAC;YACjB,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;YAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC5B,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACtD,OAAO;IACX,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,aAAa,iCAAiC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,IAAI,SAAS,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACvM,CAAC,CAAC"}
@@ -2,26 +2,70 @@
2
2
  import chalk from 'chalk';
3
3
  import { failCli } from '../cli-error.js';
4
4
  import { formatDuration } from '../util.js';
5
+ import { printLintDiagnostics } from './lint.js';
5
6
  import { restPost } from './server/rest.js';
6
7
  export const validateAction = async (opts) => {
7
8
  const startedAt = Date.now();
8
9
  const result = await restPost('/v0/validate', {}, opts.authToken);
9
- if (!result.success) {
10
- failCli(chalk.red(result.error?.trim() || 'validate failed.'));
11
- }
12
10
  if (result.filesChecked === 0) {
13
11
  console.log(chalk.yellow('No markdown/table-editor targets found in server workspace.'));
14
12
  return;
15
13
  }
14
+ printLintDiagnostics({
15
+ success: false,
16
+ filesChecked: result.filesChecked,
17
+ errors: result.errors,
18
+ warnings: result.warnings,
19
+ elapsedMs: result.elapsedMs,
20
+ problems: result.problems,
21
+ });
22
+ const validationProblems = Array.isArray(result.validationProblems) ? result.validationProblems : [];
23
+ if (validationProblems.length > 0) {
24
+ const groups = new Map();
25
+ for (const problem of validationProblems) {
26
+ const key = String(problem.modelUri ?? '').trim() || '<unknown>';
27
+ const existing = groups.get(key) ?? [];
28
+ existing.push({
29
+ element: String(problem.element ?? '-'),
30
+ property: String(problem.property ?? '-'),
31
+ message: String(problem.message ?? ''),
32
+ });
33
+ groups.set(key, existing);
34
+ }
35
+ for (const [modelUri, issues] of groups.entries()) {
36
+ console.log(chalk.red(`Model: ${modelUri}`));
37
+ for (const issue of issues) {
38
+ console.log(chalk.red(` element: ${issue.element}`));
39
+ console.log(chalk.red(` property: ${issue.property}`));
40
+ console.log(chalk.red(` message: ${issue.message}`));
41
+ }
42
+ }
43
+ }
44
+ else {
45
+ const details = Array.isArray(result.details) ? result.details : [];
46
+ for (const detail of details) {
47
+ if (String(detail).trim().length > 0) {
48
+ console.log(chalk.red(String(detail)));
49
+ }
50
+ }
51
+ }
16
52
  const validateElapsedMs = typeof result.elapsedMs === 'number' && Number.isFinite(result.elapsedMs) && result.elapsedMs >= 0
17
53
  ? result.elapsedMs
18
54
  : Date.now() - startedAt;
19
55
  if (result.errors > 0) {
56
+ const failingItems = Number(result.failingItems ?? 0);
57
+ if (failingItems > 0) {
58
+ failCli(chalk.red(`validate: ${result.filesChecked} table-editor block(s) scanned [${formatDuration(validateElapsedMs)}]; ${failingItems} failing block(s), ${result.errors} error(s), ${result.warnings} warning(s)`));
59
+ }
20
60
  failCli(chalk.red(`validate: ${result.filesChecked} item(s) checked with ${result.errors} error(s) and ${result.warnings} warning(s). [${formatDuration(validateElapsedMs)}]`));
21
61
  }
22
62
  if (result.warnings > 0) {
63
+ const failingItems = Number(result.failingItems ?? 0);
64
+ if (failingItems > 0) {
65
+ failCli(chalk.yellow(`validate: ${result.filesChecked} table-editor block(s) scanned [${formatDuration(validateElapsedMs)}]; ${failingItems} failing block(s), ${result.errors} error(s), ${result.warnings} warning(s)`));
66
+ }
23
67
  failCli(chalk.yellow(`validate: ${result.filesChecked} item(s) checked with ${result.warnings} warning(s). [${formatDuration(validateElapsedMs)}]`));
24
68
  }
25
- console.log(chalk.green(`validate: ${result.filesChecked} item(s) checked. [${formatDuration(validateElapsedMs)}]`));
69
+ console.log(chalk.green(`validate: ${result.filesChecked} table-editor block(s) scanned [${formatDuration(validateElapsedMs)}]`));
26
70
  };
27
71
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,IAAqB,EAAiB,EAAE;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAO1B,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,kBAAkB,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC,CAAC;QACzF,OAAO;IACX,CAAC;IACD,MAAM,iBAAiB,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC;QACxH,CAAC,CAAC,MAAM,CAAC,SAAS;QAClB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,YAAY,yBAAyB,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,QAAQ,iBAAiB,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACpL,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,YAAY,yBAAyB,MAAM,CAAC,QAAQ,iBAAiB,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACzJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,YAAY,sBAAsB,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AACzH,CAAC,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.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.14.14",
4
+ "version": "0.14.16",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": ">=20.10.0",
@@ -23,7 +23,7 @@
23
23
  "dependencies": {
24
24
  "@oml/platform": "^0.7.0",
25
25
  "@oml/reasoner": "^0.3.0",
26
- "@oml/server": "0.14.14",
26
+ "@oml/server": "0.14.16",
27
27
  "chalk": "~5.3.0",
28
28
  "chevrotain": "11.1.2",
29
29
  "commander": "~11.1.0",
package/src/cli.ts CHANGED
@@ -194,7 +194,8 @@ export async function runCli(argv: string[] = process.argv): Promise<void> {
194
194
  .option('-f, --format <ext>', 'RDF format extension: ttl, trig, nt, nq, or n3', 'ttl')
195
195
  .option('--clean', 'remove output folder before reason (only when --owl is provided)')
196
196
  .option('--pretty', 'pretty-print Turtle/TriG output with blank lines between top-level blocks (only when --owl is provided)')
197
- .option('-e, --explanation [value]', 'enable or disable inconsistency explanations', parseBooleanOption, true)
197
+ .option('-u, --unique-names-assumption [value]', 'enable or disable the unique names assumption', parseBooleanOption, true)
198
+ .option('-e, --explanation [value]', 'enable or disable inconsistency explanations', parseBooleanOption, false)
198
199
  .description('run workspace consistency checks (or persist entailments with --owl)')
199
200
  .action(async (opts) => {
200
201
  const done = trackCommand('oml-reason');
@@ -4,6 +4,7 @@ import chalk from 'chalk';
4
4
  import * as path from 'node:path';
5
5
  import { failCli } from '../cli-error.js';
6
6
  import { formatDuration } from '../util.js';
7
+ import { printLintDiagnostics, type LintProblem } from './lint.js';
7
8
  import { restPost } from './server/rest.js';
8
9
 
9
10
  export type ExportOptions = {
@@ -20,6 +21,10 @@ type ExportPayload = {
20
21
  outputDir: string;
21
22
  format: 'ttl' | 'trig' | 'nt' | 'nq' | 'n3';
22
23
  pretty: boolean;
24
+ filesChecked?: number;
25
+ errors?: number;
26
+ warnings?: number;
27
+ problems?: LintProblem[];
23
28
  error?: string;
24
29
  };
25
30
 
@@ -46,6 +51,13 @@ export const exportAction = async (opts: ExportOptions): Promise<void> => {
46
51
  );
47
52
 
48
53
  if (!result.success) {
54
+ printLintDiagnostics({
55
+ success: false,
56
+ filesChecked: Number(result.filesChecked ?? 0),
57
+ errors: Number(result.errors ?? 0),
58
+ warnings: Number(result.warnings ?? 0),
59
+ problems: result.problems,
60
+ });
49
61
  failCli(chalk.red(result.error?.trim() || 'export failed.'));
50
62
  }
51
63
  if (result.filesWritten <= 0) {
@@ -6,9 +6,9 @@ import * as fs from 'node:fs/promises';
6
6
  import * as os from 'node:os';
7
7
  import * as path from 'node:path';
8
8
  import { fileURLToPath } from 'node:url';
9
- import { Parser, Writer } from 'n3';
10
9
  import { failCli } from '../cli-error.js';
11
10
  import { formatDuration } from '../util.js';
11
+ import { printLintDiagnostics, type LintPayload, type LintProblem } from './lint.js';
12
12
  import { restPost } from './server/rest.js';
13
13
 
14
14
  type RdfFormat = 'ttl' | 'trig' | 'nt' | 'nq' | 'n3';
@@ -28,6 +28,11 @@ export type ReasonOptions = {
28
28
  type AssertionsPayload = {
29
29
  success: boolean;
30
30
  error?: string;
31
+ format?: RdfFormat;
32
+ filesChecked?: number;
33
+ errors?: number;
34
+ warnings?: number;
35
+ problems?: LintProblem[];
31
36
  files: Array<{
32
37
  modelUri: string;
33
38
  ontologyIri: string;
@@ -36,6 +41,8 @@ type AssertionsPayload = {
36
41
  }>;
37
42
  };
38
43
 
44
+ const OWL_IMPORTS_IRI = '<http://www.w3.org/2002/07/owl#imports>';
45
+
39
46
  function normalizeRdfFormat(value: string | undefined): RdfFormat {
40
47
  const normalized = String(value ?? 'ttl').trim().toLowerCase();
41
48
  if (normalized === 'trig' || normalized === 'nt' || normalized === 'nq' || normalized === 'n3') {
@@ -44,46 +51,6 @@ function normalizeRdfFormat(value: string | undefined): RdfFormat {
44
51
  return 'ttl';
45
52
  }
46
53
 
47
- function rdfWriterFormat(format: RdfFormat): 'text/turtle' | 'application/trig' | 'N-Triples' | 'N-Quads' | 'application/n3' {
48
- if (format === 'ttl') {
49
- return 'text/turtle';
50
- }
51
- if (format === 'trig') {
52
- return 'application/trig';
53
- }
54
- if (format === 'nt') {
55
- return 'N-Triples';
56
- }
57
- if (format === 'nq') {
58
- return 'N-Quads';
59
- }
60
- return 'application/n3';
61
- }
62
-
63
- function rdfParserFormat(format: RdfFormat): 'text/turtle' | 'application/trig' | 'N-Triples' | 'N-Quads' | 'application/n3' {
64
- return rdfWriterFormat(format);
65
- }
66
-
67
- async function parseRdf(serialized: string, format: RdfFormat): Promise<any[]> {
68
- const parser = new Parser({ format: rdfParserFormat(format) });
69
- return parser.parse(serialized);
70
- }
71
-
72
- async function serializeRdf(quads: any[], format: RdfFormat, pretty: boolean): Promise<string> {
73
- const writer = new Writer({ format: rdfWriterFormat(format) });
74
- writer.addQuads(quads);
75
- const serialized = await new Promise<string>((resolve, reject) => {
76
- writer.end((error, result) => {
77
- if (error) {
78
- reject(error);
79
- return;
80
- }
81
- resolve(result);
82
- });
83
- });
84
- return pretty ? prettyPrintRdf(serialized, format) : serialized;
85
- }
86
-
87
54
  function prettyPrintRdf(serialized: string, format: RdfFormat): string {
88
55
  if (format !== 'ttl' && format !== 'trig') {
89
56
  return serialized;
@@ -93,7 +60,7 @@ function prettyPrintRdf(serialized: string, format: RdfFormat): string {
93
60
  for (let i = 0; i < lines.length; i += 1) {
94
61
  const line = lines[i];
95
62
  out.push(line);
96
- if (line.trim() === '.') {
63
+ if (line.trim().endsWith('.')) {
97
64
  const next = lines[i + 1];
98
65
  if (next !== undefined && next.trim().length > 0) {
99
66
  out.push('');
@@ -103,57 +70,94 @@ function prettyPrintRdf(serialized: string, format: RdfFormat): string {
103
70
  return out.join('\n');
104
71
  }
105
72
 
106
- async function convertSerializedRdf(serialized: string, sourceFormat: RdfFormat, targetFormat: RdfFormat, pretty: boolean): Promise<string> {
107
- if (sourceFormat === targetFormat && !pretty) {
108
- return serialized;
73
+ function extractImports(serialized: string): string[] {
74
+ const imports = new Set<string>();
75
+ const statementPattern = /(?:<http:\/\/www\.w3\.org\/2002\/07\/owl#imports>|owl:imports)\s+([^;.]*)[;.]/gms;
76
+ let statementMatch: RegExpExecArray | null;
77
+ while ((statementMatch = statementPattern.exec(serialized)) !== null) {
78
+ const tail = statementMatch[1] ?? '';
79
+ const iriPattern = /<([^>]+)>/g;
80
+ let iriMatch: RegExpExecArray | null;
81
+ while ((iriMatch = iriPattern.exec(tail)) !== null) {
82
+ const iri = iriMatch[1]?.trim();
83
+ if (iri) {
84
+ imports.add(iri);
85
+ }
86
+ }
109
87
  }
110
- if (sourceFormat === targetFormat) {
111
- return prettyPrintRdf(serialized, targetFormat);
88
+ // Handle compact single-line N-Triples cases defensively.
89
+ if (imports.size === 0 && serialized.includes(OWL_IMPORTS_IRI)) {
90
+ const linePattern = /<http:\/\/www\.w3\.org\/2002\/07\/owl#imports>\s+<([^>]+)>/g;
91
+ let lineMatch: RegExpExecArray | null;
92
+ while ((lineMatch = linePattern.exec(serialized)) !== null) {
93
+ const iri = lineMatch[1]?.trim();
94
+ if (iri) {
95
+ imports.add(iri);
96
+ }
97
+ }
112
98
  }
113
- const quads = await parseRdf(serialized, sourceFormat);
114
- return await serializeRdf(quads, targetFormat, pretty);
99
+ return Array.from(imports);
115
100
  }
116
101
 
117
- function replaceRdfExtension(filePath: string, format: RdfFormat): string {
118
- const parsed = path.parse(filePath);
119
- return path.join(parsed.dir, `${parsed.name}.${format}`);
120
- }
102
+ function sortFilesLeafToRoot(
103
+ files: AssertionsPayload['files'],
104
+ ): AssertionsPayload['files'] {
105
+ const filesByOntologyIri = new Map<string, AssertionsPayload['files'][number]>();
106
+ for (const file of files) {
107
+ filesByOntologyIri.set(file.ontologyIri, file);
108
+ }
121
109
 
122
- function entailmentsArtifactPath(assertedPath: string, format: RdfFormat): string {
123
- const parsed = path.parse(assertedPath);
124
- return path.join(parsed.dir, `${parsed.name}__entailments.${format}`);
125
- }
110
+ const importsByOntologyIri = new Map<string, string[]>();
111
+ for (const file of files) {
112
+ importsByOntologyIri.set(file.ontologyIri, extractImports(file.content));
113
+ }
126
114
 
127
- function resolveEntailmentsSourcePath(uri: string | undefined): string | undefined {
128
- if (typeof uri !== 'string' || uri.trim().length === 0) {
129
- return undefined;
115
+ const sorted: AssertionsPayload['files'] = [];
116
+ const state = new Map<string, 0 | 1 | 2>();
117
+ const sortedRoots = [...filesByOntologyIri.keys()].sort((a, b) => a.localeCompare(b));
118
+ const visit = (ontologyIri: string): void => {
119
+ const current = state.get(ontologyIri) ?? 0;
120
+ if (current === 2) {
121
+ return;
122
+ }
123
+ if (current === 1) {
124
+ return;
125
+ }
126
+ state.set(ontologyIri, 1);
127
+ for (const importedIri of importsByOntologyIri.get(ontologyIri) ?? []) {
128
+ if (filesByOntologyIri.has(importedIri)) {
129
+ visit(importedIri);
130
+ }
131
+ }
132
+ state.set(ontologyIri, 2);
133
+ const file = filesByOntologyIri.get(ontologyIri);
134
+ if (file) {
135
+ sorted.push(file);
136
+ }
137
+ };
138
+
139
+ for (const ontologyIri of sortedRoots) {
140
+ visit(ontologyIri);
130
141
  }
142
+ return sorted;
143
+ }
144
+
145
+ function resolveEntailmentsPath(uri: string): string {
131
146
  const trimmed = uri.trim();
132
147
  if (trimmed.startsWith('file://')) {
133
- try {
134
- return fileURLToPath(trimmed);
135
- } catch {
136
- return undefined;
137
- }
148
+ return fileURLToPath(trimmed);
138
149
  }
139
150
  return trimmed;
140
151
  }
141
152
 
142
- function inferRdfFormatFromPath(filePath: string): RdfFormat {
143
- const extension = path.extname(filePath).toLowerCase();
144
- if (extension === '.trig') {
145
- return 'trig';
146
- }
147
- if (extension === '.nt') {
148
- return 'nt';
149
- }
150
- if (extension === '.nq') {
151
- return 'nq';
152
- }
153
- if (extension === '.n3') {
154
- return 'n3';
153
+ function modelUriToRelativePath(modelUri: string): string {
154
+ const trimmed = modelUri.trim();
155
+ if (trimmed.startsWith('file://')) {
156
+ const absolute = fileURLToPath(trimmed);
157
+ const relative = path.relative(process.cwd(), absolute);
158
+ return relative.length > 0 ? relative : path.basename(absolute);
155
159
  }
156
- return 'ttl';
160
+ return trimmed;
157
161
  }
158
162
 
159
163
  export const reasonAction = async (opts: ReasonOptions): Promise<void> => {
@@ -162,11 +166,19 @@ export const reasonAction = async (opts: ReasonOptions): Promise<void> => {
162
166
  const pretty = opts.pretty === true;
163
167
  const assertions = await restPost<AssertionsPayload>(
164
168
  '/v0/assertions',
165
- {} as Record<string, unknown>,
169
+ { format: outputFormat, pretty } as Record<string, unknown>,
166
170
  opts.authToken,
167
171
  );
168
172
  if (!assertions.success) {
169
- failCli(chalk.red(assertions.error?.trim() || 'reason failed.'));
173
+ printLintDiagnostics({
174
+ success: false,
175
+ filesChecked: Number(assertions.filesChecked ?? 0),
176
+ errors: Number(assertions.errors ?? 0),
177
+ warnings: Number(assertions.warnings ?? 0),
178
+ problems: assertions.problems,
179
+ } satisfies LintPayload);
180
+ const summary = assertions.error?.trim() || 'reason failed.';
181
+ failCli(chalk.red(summary));
170
182
  }
171
183
  if (assertions.files.length === 0) {
172
184
  console.log(chalk.yellow(`No .oml files found under ${path.resolve('.')}.`));
@@ -176,92 +188,85 @@ export const reasonAction = async (opts: ReasonOptions): Promise<void> => {
176
188
  const outputDir = typeof opts.owl === 'string' && opts.owl.trim().length > 0
177
189
  ? path.resolve(opts.owl.trim())
178
190
  : undefined;
179
- const tempRoot = outputDir ?? await fs.mkdtemp(path.join(os.tmpdir(), 'oml-reason-cli-'));
191
+ const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'oml-reason-cli-'));
180
192
  if (outputDir) {
181
193
  if (opts.clean === true) {
182
194
  await fs.rm(outputDir, { recursive: true, force: true });
183
195
  }
184
- await fs.mkdir(outputDir, { recursive: true });
185
196
  }
186
- const inconsistent: Array<{ modelUri: string; validationWarnings: string[] }> = [];
187
- const failed: Array<{ modelUri: string; error: string }> = [];
188
- let entailmentsPersisted = 0;
197
+ const orderedFiles = sortFilesLeafToRoot(assertions.files);
198
+ let firstInconsistent: { file: AssertionsPayload['files'][number]; result: Record<string, unknown> } | undefined;
199
+ let firstFailure: { modelUri: string; error: string } | undefined;
200
+ let entailmentsProduced = 0;
189
201
  try {
190
- for (const file of assertions.files) {
202
+ for (const file of orderedFiles) {
191
203
  const target = path.join(tempRoot, file.path);
192
204
  await fs.mkdir(path.dirname(target), { recursive: true });
193
- await fs.writeFile(target, file.content, 'utf-8');
205
+ await fs.writeFile(target, prettyPrintRdf(file.content, outputFormat), 'utf-8');
194
206
  }
195
- for (const file of assertions.files) {
207
+ for (const file of orderedFiles) {
196
208
  const target = path.join(tempRoot, file.path);
197
209
  try {
198
210
  const result = await checkConsistency({
199
211
  input: target,
200
212
  inputRoot: tempRoot,
201
- explanations: opts.explanation !== false,
202
- uniqueNamesAssumption: opts.uniqueNamesAssumption === true,
213
+ explanations: opts.explanation === true,
214
+ uniqueNamesAssumption: opts.uniqueNamesAssumption !== false,
203
215
  checkOnly: outputDir === undefined,
204
216
  profile: opts.profile === true,
205
217
  timeout: typeof opts.timeout === 'number' && Number.isFinite(opts.timeout) && opts.timeout > 0
206
218
  ? Math.floor(opts.timeout)
207
219
  : 120_000,
208
220
  });
221
+ if (!result.consistent) {
222
+ firstInconsistent = {
223
+ file,
224
+ result: result as unknown as Record<string, unknown>,
225
+ };
226
+ break;
227
+ }
209
228
  if (outputDir) {
210
- const assertedArtifactPath = replaceRdfExtension(path.join(outputDir, file.path), outputFormat);
211
- await fs.mkdir(path.dirname(assertedArtifactPath), { recursive: true });
212
- const assertedContent = await convertSerializedRdf(file.content, 'nt', outputFormat, pretty);
213
- await fs.writeFile(assertedArtifactPath, assertedContent, 'utf-8');
214
-
215
- const entailmentsSourcePath = resolveEntailmentsSourcePath(result.entailmentsUri);
216
- if (!entailmentsSourcePath) {
217
- throw new Error('Reasoner did not return an entailments URI.');
229
+ if (typeof result.entailmentsUri !== 'string' || result.entailmentsUri.trim().length === 0) {
230
+ throw new Error('Reasoner returned a consistent result but did not provide entailments URI.');
218
231
  }
219
- const entailmentsSerialized = await fs.readFile(entailmentsSourcePath, 'utf-8');
220
- const entailmentsArtifact = entailmentsArtifactPath(assertedArtifactPath, outputFormat);
221
- await fs.mkdir(path.dirname(entailmentsArtifact), { recursive: true });
222
- const entailmentsContent = await convertSerializedRdf(
223
- entailmentsSerialized,
224
- inferRdfFormatFromPath(entailmentsSourcePath),
225
- outputFormat,
226
- pretty,
227
- );
228
- await fs.writeFile(entailmentsArtifact, entailmentsContent, 'utf-8');
229
- entailmentsPersisted += 1;
230
- }
231
- if (!result.consistent) {
232
- inconsistent.push({
233
- modelUri: file.modelUri,
234
- validationWarnings: Array.isArray(result.reports) ? result.reports : [],
235
- });
232
+ if (pretty) {
233
+ const entailmentsPath = resolveEntailmentsPath(result.entailmentsUri);
234
+ const entailmentsContent = await fs.readFile(entailmentsPath, 'utf-8');
235
+ await fs.writeFile(entailmentsPath, prettyPrintRdf(entailmentsContent, outputFormat), 'utf-8');
236
+ }
237
+ entailmentsProduced += 1;
236
238
  }
237
239
  } catch (error) {
238
- failed.push({
240
+ firstFailure = {
239
241
  modelUri: file.modelUri,
240
242
  error: error instanceof Error ? error.message : String(error),
241
- });
243
+ };
244
+ break;
242
245
  }
243
246
  }
244
247
  } finally {
245
- if (!outputDir) {
246
- await fs.rm(tempRoot, { recursive: true, force: true });
248
+ if (outputDir && !firstFailure && !firstInconsistent) {
249
+ await fs.mkdir(outputDir, { recursive: true });
250
+ await fs.cp(tempRoot, outputDir, { recursive: true, force: true });
247
251
  }
252
+ await fs.rm(tempRoot, { recursive: true, force: true });
248
253
  }
249
254
 
250
- if (failed.length > 0 || inconsistent.length > 0) {
251
- for (const item of failed) {
252
- const modelUri = String(item.modelUri ?? '').trim();
253
- console.log(chalk.red(`reason failed: ${modelUri || '<workspace>'}: ${item.error}`));
254
- }
255
- for (const item of inconsistent) {
256
- const warnings = item.validationWarnings.length > 0 ? ` warnings=${item.validationWarnings.join('; ')}` : '';
257
- console.log(chalk.red(`reason inconsistency detected: ${item.modelUri}.${warnings}`));
255
+ if (firstFailure) {
256
+ const modelUri = String(firstFailure.modelUri ?? '').trim() || '<workspace>';
257
+ failCli(chalk.red(`reason failed: ${modelUri}: ${firstFailure.error}`));
258
+ }
259
+ if (firstInconsistent) {
260
+ const where = modelUriToRelativePath(firstInconsistent.file.modelUri);
261
+ if (opts.explanation === true) {
262
+ failCli(chalk.red(`Inconsistency found in: ${where}\n${JSON.stringify(firstInconsistent.result, null, 2)}`));
258
263
  }
259
- failCli(chalk.red('reason failed.'));
264
+ failCli(chalk.red(`Inconsistency found in: ${where}`));
260
265
  }
261
266
 
262
267
  if (outputDir) {
263
268
  console.log(chalk.green(
264
- `reason: ${assertions.files.length} ontology file(s) reasoned in ${path.relative(process.cwd(), outputDir) || outputDir} (${entailmentsPersisted} entailment artifact file(s) written) [${formatDuration(Date.now() - startedAt)}]`
269
+ `reason: ${assertions.files.length} ontology file(s) reasoned in ${path.relative(process.cwd(), outputDir) || outputDir} (${entailmentsProduced} entailment artifact file(s) written) [${formatDuration(Date.now() - startedAt)}]`
265
270
  ));
266
271
  return;
267
272
  }
@@ -4,6 +4,7 @@ import chalk from 'chalk';
4
4
  import * as path from 'node:path';
5
5
  import { failCli } from '../cli-error.js';
6
6
  import { formatDuration } from '../util.js';
7
+ import { printLintDiagnostics, type LintProblem } from './lint.js';
7
8
  import { restPost } from './server/rest.js';
8
9
 
9
10
  export type RenderOptions = {
@@ -20,12 +21,23 @@ export const renderAction = async (opts: RenderOptions): Promise<void> => {
20
21
  success: boolean;
21
22
  filesRendered: number;
22
23
  outputDir?: string;
24
+ filesChecked?: number;
25
+ errors?: number;
26
+ warnings?: number;
27
+ problems?: LintProblem[];
23
28
  error?: string;
24
29
  }>('/v0/render', {
25
30
  ...opts,
26
31
  } as unknown as Record<string, unknown>, opts.authToken);
27
32
 
28
33
  if (!result.success) {
34
+ printLintDiagnostics({
35
+ success: false,
36
+ filesChecked: Number(result.filesChecked ?? 0),
37
+ errors: Number(result.errors ?? 0),
38
+ warnings: Number(result.warnings ?? 0),
39
+ problems: result.problems,
40
+ });
29
41
  failCli(chalk.red(result.error?.trim() || 'render failed.'));
30
42
  }
31
43
  if (result.filesRendered === 0) {
@@ -3,6 +3,7 @@
3
3
  import chalk from 'chalk';
4
4
  import { failCli } from '../cli-error.js';
5
5
  import { formatDuration } from '../util.js';
6
+ import { printLintDiagnostics, type LintProblem } from './lint.js';
6
7
  import { restPost } from './server/rest.js';
7
8
 
8
9
  export type ValidateOptions = {
@@ -16,25 +17,76 @@ export const validateAction = async (opts: ValidateOptions): Promise<void> => {
16
17
  filesChecked: number;
17
18
  errors: number;
18
19
  warnings: number;
20
+ failingItems?: number;
21
+ details?: string[];
22
+ validationProblems?: Array<{
23
+ modelUri: string;
24
+ element: string;
25
+ property: string;
26
+ message: string;
27
+ }>;
19
28
  elapsedMs?: number;
29
+ problems?: LintProblem[];
20
30
  error?: string;
21
31
  }>('/v0/validate', {}, opts.authToken);
22
32
 
23
- if (!result.success) {
24
- failCli(chalk.red(result.error?.trim() || 'validate failed.'));
25
- }
26
33
  if (result.filesChecked === 0) {
27
34
  console.log(chalk.yellow('No markdown/table-editor targets found in server workspace.'));
28
35
  return;
29
36
  }
37
+ printLintDiagnostics({
38
+ success: false,
39
+ filesChecked: result.filesChecked,
40
+ errors: result.errors,
41
+ warnings: result.warnings,
42
+ elapsedMs: result.elapsedMs,
43
+ problems: result.problems,
44
+ });
45
+ const validationProblems = Array.isArray(result.validationProblems) ? result.validationProblems : [];
46
+ if (validationProblems.length > 0) {
47
+ const groups = new Map<string, Array<{ element: string; property: string; message: string }>>();
48
+ for (const problem of validationProblems) {
49
+ const key = String(problem.modelUri ?? '').trim() || '<unknown>';
50
+ const existing = groups.get(key) ?? [];
51
+ existing.push({
52
+ element: String(problem.element ?? '-'),
53
+ property: String(problem.property ?? '-'),
54
+ message: String(problem.message ?? ''),
55
+ });
56
+ groups.set(key, existing);
57
+ }
58
+ for (const [modelUri, issues] of groups.entries()) {
59
+ console.log(chalk.red(`Model: ${modelUri}`));
60
+ for (const issue of issues) {
61
+ console.log(chalk.red(` element: ${issue.element}`));
62
+ console.log(chalk.red(` property: ${issue.property}`));
63
+ console.log(chalk.red(` message: ${issue.message}`));
64
+ }
65
+ }
66
+ } else {
67
+ const details = Array.isArray(result.details) ? result.details : [];
68
+ for (const detail of details) {
69
+ if (String(detail).trim().length > 0) {
70
+ console.log(chalk.red(String(detail)));
71
+ }
72
+ }
73
+ }
30
74
  const validateElapsedMs = typeof result.elapsedMs === 'number' && Number.isFinite(result.elapsedMs) && result.elapsedMs >= 0
31
75
  ? result.elapsedMs
32
76
  : Date.now() - startedAt;
33
77
  if (result.errors > 0) {
78
+ const failingItems = Number(result.failingItems ?? 0);
79
+ if (failingItems > 0) {
80
+ failCli(chalk.red(`validate: ${result.filesChecked} table-editor block(s) scanned [${formatDuration(validateElapsedMs)}]; ${failingItems} failing block(s), ${result.errors} error(s), ${result.warnings} warning(s)`));
81
+ }
34
82
  failCli(chalk.red(`validate: ${result.filesChecked} item(s) checked with ${result.errors} error(s) and ${result.warnings} warning(s). [${formatDuration(validateElapsedMs)}]`));
35
83
  }
36
84
  if (result.warnings > 0) {
85
+ const failingItems = Number(result.failingItems ?? 0);
86
+ if (failingItems > 0) {
87
+ failCli(chalk.yellow(`validate: ${result.filesChecked} table-editor block(s) scanned [${formatDuration(validateElapsedMs)}]; ${failingItems} failing block(s), ${result.errors} error(s), ${result.warnings} warning(s)`));
88
+ }
37
89
  failCli(chalk.yellow(`validate: ${result.filesChecked} item(s) checked with ${result.warnings} warning(s). [${formatDuration(validateElapsedMs)}]`));
38
90
  }
39
- console.log(chalk.green(`validate: ${result.filesChecked} item(s) checked. [${formatDuration(validateElapsedMs)}]`));
91
+ console.log(chalk.green(`validate: ${result.filesChecked} table-editor block(s) scanned [${formatDuration(validateElapsedMs)}]`));
40
92
  };