Summary of Blank nodes as predicates

Background:

  - I first assumed that there was an important use case for having 
blank nodes as predicates, and that is why I initially suggested 
skolemizing them.  However, when I looked into the use cases, I became 
convinced that they really are not needed: there are other potential 
solutions to the problem that IMO would be better.  However, some seem 
attached to the idea of using blank nodes as predicates.

  - The overriding motivation seems to be the make transitioning easy 
from regular JSON to JSON-LD.  This makes sense to me -- I fully agree 
with it -- so it is really just a question of how best to achieve this goal.

A suggestion for resolving the issue is to do both of the following:

1. Add an option to produce "extended RDF", which defaults to false.  If 
the option is true, "extended RDF" will be produced, retaining triples 
that have blank nodes as predicates.  If the option is false, standard 
RDF will be produced and triples with blank node properties will be 
discarded.

2. Suggest other ways to handle JSON properties that the author is not 
yet ready to map to stable IRIs, such as: (a) mapping them to unstable 
IRIs and documenting the fact that those IRIs are unstable; or (b) 
mapping them to "" (or such) to prevent them from appearing in the 
resulting RDF.  Consumers that need those property values can obtain 
them at the JSON level (and if desired could then inject those values 
into the RDF without using blank node predicates).

I *think* this should meet all of the needs and use cases that I have seen.

David

Received on Tuesday, 16 July 2013 14:25:55 UTC