- From: Pierre-Antoine Champin <pierre-antoine.champin@ercim.eu>
- Date: Wed, 13 Jan 2021 09:05:17 +0100
- To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>, public-rdf-star@w3.org
- Message-ID: <7e8c2d66-7d56-2079-8753-9a214845f9a9@ercim.eu>
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