- From: Thomas Lörtsch <tl@rat.io>
- Date: Tue, 23 Jan 2024 12:30:22 +0100
- To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>
- Cc: Franconi Enrico <franconi@inf.unibz.it>, "public-rdf-star-wg@w3.org" <public-rdf-star-wg@w3.org>
> On 23. Jan 2024, at 12:22, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote: > > > > On 1/23/24 03:24, Franconi Enrico wrote: >>> On 22 Jan 2024, at 20:46, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote: >>> >>> The mapping from names to triples is not an injection, >> From what I read in your document: >> Definition: An RDF graph is reification well-formed iff any node in it >> that is the subject of a triple in the graph with predicate |rdf:subject|, >> |rdf:predicate|, or |rdf:object| must be the subject of *_exactly_* one >> triple in the graph with each of these predicates. /[bold/underline is mine]/ >> So, the definition I am reading from you requires a bijection. >> If I am wrong, then I guess we agree > > This says nothing about names, only rdf:subject, rdf:predicate, and rdf:object links. It doesn't require *any* bijections. > >>> All well-formedness says is that you can't mess up the reification structures, i.e., you can't add something like >>> >>> :e rdf:subject :t . >>> >>> to the above graph and retain well-formedness. >> I believe that here we are confusing two distinct aspects: >> 1. avoiding dangling links in the expansion to :e rdf:subject :s. > :e >> rdf:predicate :p. > :e rdf:predicate :o. >> 2. having a bijection between triples and their names, >> which, in turn, should be clarified whether it is intended >> 2a. syntactically or >> 2b. semantically > > There is no hint of a bijection anywhere, aside from the requirement that non-literal nodes in an RDF graph have to be either IRIs or blank nodes. Even this isn't a bijection, really. > >> I believe that (1) should be always enforced, while we should not enforce (2) in neither forms 2.a or 2.b. > > The proposal's notion of RDF graphs is taken directly from /https://www.w3.org/TR/rdf11-concepts/#section-rdf-graph. Its notion of (simple) semantics is taken directly from https://www.w3.org/TR/rdf11-mt/#simple-interpretations > > In the proposal triples don't have names. They don't even exist outside of being elements of an RDF graph. There is no suggestion in the proposal of a bijection between triples and anything. > > What the proposal does talk about is RDF reifications, nodes in an RDF graph that are subjects of rdf:subject, rdf:predicate, or rdf:object triples. The well-formedness requirement states that an RDF graph is ill-formed if it has a node that is the subject of a triple with any of these predicates and is not the subject of exactly Shouldn’t this be changed to *at least*? See my prior mail in response to Dörthe. > one triple with each of these predicates. No bijection between triples and anything is either mentioned or implied. The notion of well-formedness is completely syntactic. > >> We should describe in the best practices section the case where users should use RDF* to encode reification with bijection, by just self-imposing such restriction. >> But there are many cases where this shouldn’t be the case. >> It seems that we agree here, so I am happy - but please fix the definition. >> cheers >> —e. >>> On 1/22/24 10:51, Franconi Enrico wrote: >>>> In this message I want to argue against the notion of reification well-formed graph (i.e., atomicity). >>>> Adding atomicity violates a necessary aspect of the proposal (as written by pfps): >>>> "There is no intended meaning of the new concrete syntax beyond what it expands to". >>>> According to atomicity: >>>> (1) >>>> <<:a | :s1 :p1 :o1>> :s :o . >>>> <<:b | :s2 :p2 :o2>> :s :o . >>>> :s1 :same-as :s2 . >>>> :p1 :same-as :p2 . >>>> :o1 :same-as :o2 . >>>> should entail >>>> :a :same-as :b . >>>> Atomicity adds an intended meaning: it assumes that the same triple has systematically the same identifier, and therefore (1) should be a valid entailment. >>>> If you don’t like entailment (1), then you contradict the intention of atomicity, UNLESS you assume full opacity. >>>> (2) >>>> <<:a | :s1 :p1 :o1>> :s :o . >>>> <<:b | :s2 :p2 :o2>> :s :o . >>>> :a :same-as :b . >>>> should entail >>>> :s1 :same-as :s2 . >>>> :p1 :same-as :p2 . >>>> :o1 :same-as :o2 . >>>> Atomicity adds an intended meaning: it assumes that a resource identifies at most one triple. >>>> If you don’t like entailment (2), then you contradict the intention of atomicity, UNLESS you assume full opacity. >>>> So, (1) and (2) show that _EITHER_ you assume full opacity (and therefore you are assuming an intended meaning), _OR_ you accept the above entailments (and therefore you are assuming an intended meaning). >>>> Note also that entailments like the above make the life of SPARQL BGP matching more complex. >>>> I also understand that most (if not all) use cases assume transparency. >>>> (3) >>>> Atomicity would disallow writing typical reification statements like: >>>> << :w1 | :bill-clinton :related-to :hillary-rodham >> :starts 1975 . >>>> << :w1 | :42nd-potus :husband :1st-female-NY-senator >> :starts 1975 . >>>> cheers >>>> —e. >>> >
Received on Tuesday, 23 January 2024 11:30:37 UTC