Skip to content

Commit 370f785

Browse files
committed
error raised on unsupported named graph creation
1 parent dcf1bdf commit 370f785

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/knowledge-collection-tools.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,8 +361,12 @@ export function generateMissingIdsForBlankNodes(nquadsArray) {
361361
}
362362
return term; // Return IRI or Literal unchanged
363363
}
364-
364+
const unsupportedNquads = [];
365365
const updatedNquads = parser.parse(nquadsArray.join("")).map((quad) => {
366+
// Check if BlankNodes are parsed as named graphs
367+
if (quad.graph.termType === "BlankNode") {
368+
unsupportedNquads.push(writer.quadToString(quad.object, quad.predicate, quad.object, quad.graph));
369+
}
366370
// Replace blank nodes in the quad
367371
const updatedQuad = N3.DataFactory.quad(
368372
replaceBlankNode(quad.subject),
@@ -374,6 +378,23 @@ export function generateMissingIdsForBlankNodes(nquadsArray) {
374378
return updatedQuad;
375379
});
376380

381+
if (unsupportedNquads.length > 0) {
382+
console.error(`
383+
------------------------------------------------------------------------------------------------
384+
Error: Unsupported JSON-LD input detected
385+
386+
After parsing the JSON-LD input, the parser detected creation of new named graphs.
387+
The DKG does not support custom named graphs.
388+
389+
Problematic Quads:
390+
${unsupportedNquads.map((q, i) => ` ${i + 1}. ${q}`).join("\n")}
391+
392+
Full Parsed N-Quads Array:
393+
`, nquadsArray, '\n');
394+
395+
throw new Error("Parsing failed due to presence of unnamed (blank node) graphs. Please ensure all graphs in the input JSON-LD have proper named IRIs.");
396+
}
397+
377398
return writer.quadsToString(updatedNquads).trimEnd().split("\n");
378399
}
379400

0 commit comments

Comments
 (0)