Re: New proposal for RDF* Semantics

On 12/01/2021 17:15, Peter F. Patel-Schneider wrote:
> On 1/12/21 3:29 AM, Pierre-Antoine Champin wrote:
> > On 08/01/2021 17:05, Peter F. Patel-Schneider wrote:
>> On 08/01/2021 19:56, Peter F. Patel-Schneider wrote:
>>> Oops, I mixed up RDF graphs and RDF intepretations.  This makes some of my
>>> complaints incorrect.
>>>
>>>
>>> On 1/8/21 1:22 PM, Pierre-Antoine Champin wrote:
>>>
>>>>> What advantages does this semantics have over a mapping to RDF reification?
>>>> RDF reification is referentially transparent, while this proposal keeps IRIs
>>>> and literals in embedded triples referentially opaque.
>>> But it is possible to use an extended mapping to achieve referential opacity.
>> I am not sure what you mean by "extended mapping" here.
>>
>>
>> See my previous message, which has a modification of a mechanism for extending
>> RDF reification that achieves partial referential opacity and refers back to a
>> previous message on the topic.


Ok, I see it now.

>>>>>> I also do not understand why S*, etc., need special semantics.
>>>> This is to ensure the uniqueness  (or literal-ness, if you like) of embedded
>>>> triples. More precisely, any node x with the three triples (x, S*, s), (x,
>>>> P*, p) and (x, O*, o) is bound to denote the triple (s,p ,o), in all
>>>> interpretations.
>>> It is possible to achieve this by other means, which does not require
>>> properties with special semantics.
>> I couldn't find any, but I am all ears :-)
> See my previous message.


I see that your proposal ensures that all occurrences of a given 
embedded triple in a graph will all denote the same element of the 
domain of discourse (because they are all replaced by the same blank 
node). It is unique in that sense.

However, it does not ensure that a given embedded triple denotes the 
same thing in all interpretation of that graph (so "literal-ness", for 
lack of a better word, is not ensured). It also has strange side effects 
when merging (https://www.w3.org/TR/rdf11-mt/#dfn-merging) is involved. 
Consider the following RDF* graphs (serialized in Turtle*, assuming the 
adequate prefix declaration) :

     G1:  << :s :p :o >> a :A.
     G2:  << :s :p :o >> a :B.
     G3:  _:x a :A, :B.

Does the merging of G1 and G2 entail G3? If you merge them before the 
mapping (extending naturally the definition of merging to RDF*), they 
do. If you merge them after the mapping, they don't. I find this 
unfortunate.

To solve the problem above, we need (I think) to constrain the semantics 
of {rdf, rdf*}:{subject, predicate, object}, and that is not trivial. It 
would be tempting to state "these 6 properties have the same domain, and 
constitute a primary key of that domain", but that would not work for 
triples like << _:b :p :o >> (it has not rdf*:subject) or like << :s :p 
"foo"^^xsd:integer >> (it has no rdf:object).

 >> In my understanding, the notion of "fresh" blank node is relative to 
a graph
 >> (i.e., a blank node that does not appear in that particulat graph).
 >
 > If something is fresh then it should have no special features.


Agreed, and I see your point. And yet...

>>   If all blank
>> nodes are in all RDF* interpretations then it is possible that they all have
>> special features and asking for a fresh blank node relative to an RDF* graph
>> could be problematic.


... isn't that a use-mention confusion?

A blank node that is not present in the graph has, by definition, no arc 
in the graph to constrain it. So /used/ in the graph (as a variable) it 
can denote anything in the domain of the discourse. It is fresh in that 
sense.

If we were to /mention/ it in the graph (i.e. use a term bound to denote 
that blank node), than I agree that it could not be considered fresh. 
But the current proposal provides no mean to mention a specific blank 
node anyway.

> It is not obvious that RDF* interpretations have to include triples at all.


As stated above, the rationale was that RDF* triples are similar to 
literals. Just like all recognized literals are automatically included 
in the domain of discourse, it seemed natural that all RDF* triples also 
are.

But I generally agree with you that dragging blank nodes, not to mention 
all of them, in the domain of discourse, is a bit discomforting. I am 
not convinced yet that it causes a real problem, but the simple fact 
that we are having this discussion hints that it is not such a good idea...

I still believe, however, that in order to provide some "rigidity" to 
the interpretation of RDF* triples, we need to constrain somehow the 
semantics of S*, P*, O* and I* (or whatever properties we use to 
describe the internal structure of RDF* triples).

   best,

   pa

Received on Wednesday, 13 January 2021 08:05:22 UTC