Fix for BlankNode
as NamedNode
when parsing JSON-LD #555
#558
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The JSON-LD parser currently uses the JSON-LD flattening algorithm of
jsonld.js
. This algorithm assigns@id
attributes to blank nodes, but the JSON-LD parser only creates aBlankNode
when no@id
is present.This means that currently, the blank nodes in JSON-LD are interpreted as
NamedNode
, which is incorrect.This pull request does the following:
@id
value starts with_:
.BlankNode
, otherwise it is aNamedNode
._:
as this will be added by the instantiation of theBlankNode
class.This fixes #555
Also raised an issue in
rdf-canonize
(digitalbazaar/rdf-canonize#45) to flag the problem that blank node identifiers generated byjsonld.js
are not unique across loads (this is the cause of issue #405 )