question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Is "Skolemizingblank nodes with Hash URIs" (#1187) a breaking change?

See original GitHub issue

This is to flesh out whether PR 1187, which fixes https://jira.duraspace.org/browse/FCREPO-2108, constitutes a breaking change. If not, then it could be released as 4.8.0 4.7.x.

See discussion here:

A few notes (extracted from above and added):

  • It does not appear to make any change to the published Fedora API.
  • Existing resources will not change, but hash uris would be used for new resources employing blank nodes
  • Deleting a resource that used a blank node, leaves the .well-known URI behind in the repository.
  • It is possible to curl -X DELETE a .well-known resource (a blank node) and remove only the .well-known resource (blank node). `curl -X DELETE’ against a hash URI will of course delete the ‘parent’ resource, not just that 'hash’ed resource.
  • It is possible to GET a .well-known URI and only receive a representation of the .well-known resource. This change means a client might get unexpected (more verbose) output from a GET against a ‘hash’ uri.

The last three points raise issues when a client encounters unexpected behavior from the current implementation.

Issue Analytics

  • State:open
  • Created 6 years ago
  • Comments:7

github_iconTop GitHub Comments

2reactions
tpendragoncommented, Apr 13, 2017

Hydra doesn’t use blank nodes in FCREPO specifically because of the difficulty in handling the .well-known behavior. So, 👍 for minor release from me.

1reaction
christopher-johnsoncommented, Apr 14, 2017

FYI: This change affects my downstream JSON-LD implementation of blank nodes to create ordered lists with the fromRDF method. The way that the JSON-LD processor creates @lists from RDF depends on the conventional bnode _:string representation in the RDF. So, I have patched the JSON-LD library with a simple function that parses subjects and objects for the .well-known prefix and rewrites the URI as a _:. This method can probably be adapted to the new #genid convention. From my point of view, the critical thing is that there is a standard semantic that identifies an internal resource representation as a blank node that can be made anonymous again in downstream processors. I have yet to test my implementation with #1187

Edit: tested my implementation with fcrepo master and everything works as expected with two very minor changes here and here. So, this change works, as far as I am concerned.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Represent Statement and Reference URIs as Skolem IRIs ...
I'm not sure how skolemization applies to statements: as I understand, skolemization is applied to bNodes having no own identity, however statements do...
Read more >
What is skolemization? - Knowledge Tech
Essentially, you're replacing the blank-nodes with a unique constant not appearing elsewhere. Although this Skolemisation falls outside of the ...
Read more >
Content-Addressing Semantic Data - KFG Notes
The RDF spec has a section on “skolemization”, which is what they call the process of replacing blank nodes with globally unique URIs:....
Read more >
Everything You Always Wanted to Know About Blank Nodes
In this paper we thoroughly cover the issue of blank nodes, which have been defined in RDF as 'existential variables'. We.
Read more >
Skolemising Blank Nodes while Preserving Isomorphism
ABSTRACT. In this paper, we propose and evaluate a scheme to produce canonical labels for blank nodes in RDF graphs. These la-.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found