Re: Blank nodes as predicates [was Re: Input needed from RDF group on JSON-LD skolemization]

Forgot to respond to this part . . . .

On 07/12/2013 06:18 AM, Markus Lanthaler wrote:
> On Friday, July 12, 2013 5:00 AM, David Booth wrote:
>> On 07/10/2013 10:18 AM, Markus Lanthaler wrote:
>>> What if I would have some (out-of-band) knowledge that tells me that
>>>
>>>     _:b2 rdfs:subPropertyOf
> <http://example.com/someTheClientUnderstands1> .
>>>     _:b2 rdfs:subPropertyOf
> <http://example.com/someTheClientUnderstands2> .
>>
>> It is not possible in RDF to do that, because the blank node label _:b2
>> has no meaning outside of the original graph.  There is no way, from
>> outside of that graph, to refer to _:b2 by name.  It has no name
>> outside of the original graph.
>
> Since I am the client and I have out-of-band knowledge and I am the one
> processing the graph I can simply inject that knowledge into the graph
> before processing it. So it's certainly possible. How could someone possibly
> prevent that?

If you are using standard tools then there is no way to inject a 
statement about _:b2 into the graph before processing it, because _:b2 
has no name that you can reference.  A standard JSON-LD extended-RDF 
parser would take JSON-LD as input and produce extended RDF like this:

       ...
       [] [] true .
       [] [] false .

The only way, using standard tools, that you could inject the above 
out-of-band knowledge would be to modify the *original* JSON document to 
inject additional JSON properties that would end up being converted to 
RDF using the same blank nodes.  In other words, you would have to: (a) 
parse the document as pure JSON; (b) augment that JSON with your 
out-of-band information; (c) serialize back to JSON; and finally (d) 
re-parse the result using a JSON-LD extended-RDF parser.

That does not sound like an elegant solution.  That sounds like a crude 
hack.

David

Received on Friday, 12 July 2013 22:41:40 UTC