Re: Can I assume that blank node is not replaceable by a IRI?

On 12/23/2017 12:00 PM, Victor Porton wrote:
> On Sat, 2017-12-23 at 18:09 +0200, Victor Porton wrote:
>> I want to have a structure like this (in Turtle):
>> rdfs:seeAlso
>>    (<> <>) .
>> But sometimes I want my seeAlso to be conditional, so I could specify
>> that some of the seeAlso resources are used only in "transformation"
>> mode or only in "validation" mode, like this:
>> rdfs:seeAlso (
>>    [ :iri <> ; :transformation: false ]
>>    [ :iri <> ; :validation: false ]
>> ) .
>> However in this case I use a blank node instead of a IRI.
>> My question: Is it OK (or a heresy) to do different thing for a blank
>> node rather than for an explicit IRI?
>> Isn't there the invariant that if blank nodes are replaced with unique
>> IRIs then the meaning should not change? (And the above does NOT
>> conform to this invariant.)
>> If to conform to this variant, the first example would become instead:
>> rdfs:seeAlso
>>    ([ :iri <> ] [
>> :iri <> ]) .
>> what seems not concise enough.
>> What to do?
> It seems that this is indeed a heresy:
> In situations where stronger identification is needed, systems may
> systematically replace some or all of the blank nodes in an RDF graph
> with IRIs. Systems wishing to do this should mint a new, globally
> unique IRI (a Skolem IRI) for each blank node so replaced.
> This transformation does not appreciably change the meaning of an RDF
> graph, provided that the Skolem IRIs do not occur anywhere else. It
> does however permit the possibility of other graphs subsequently using
> the Skolem IRIs, which is not possible for blank nodes.
> Systems may wish to mint Skolem IRIs in such a way that they can
> recognize the IRIs as having been introduced solely to replace blank
> nodes. This allows a system to map IRIs back to blank nodes if needed.

I think you may be slightly misunderstanding the purpose of Skolem URIs. 
  There is a key phrase in the above quote: "provided that the Skolem 
IRIs do not occur anywhere else".  When it says "anywhere else", it 
really means it: a Skolem URI must not appear anywhere else in the 
entire universe -- not only in your graph!  The idea behind that phrase 
is that the Skolem URI is not intended to have any pre-existing meaning 
associated with it.  In contrast, in your example the URIs that you use 
( <> <> ) presumably *do* have 
pre-existing meaning associated with them, so they do not qualify as 
Skolem URIs.

I hope that helps.

David Booth

Received on Saturday, 23 December 2017 18:07:06 UTC