Is "Skolemizingblank nodes with Hash URIs" (#1187) a breaking change?
See original GitHub issueThis 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:
- Minutes: https://wiki.duraspace.org/display/FF/2017-04-13+-+Fedora+Tech+Meeting
- Comment: https://wiki.duraspace.org/display/FF/2017-04-13+-+Fedora+Tech+Meeting?focusedCommentId=83236786#comment-83236786
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:
- Created 6 years ago
- Comments:7
Top 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 >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
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.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.