- From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
- Date: Mon, 15 May 2023 15:10:00 +0200
- To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>
- Cc: RDF-star Working Group <public-rdf-star-wg@w3.org>
I have some comments inline: Le 12/05/2023 à 18:36, Peter F. Patel-Schneider a écrit : > A couple of weeks ago I spent some time coming up with alternative > semantics for quoted triples, borrowing freely from the RDF 1.1 > semantics, the community group semantics, and semantics proposals from > Enrico, Antoine, and Pierre-Antoine. I've done some fixes in the last > couple of weeks and added a few examples of entailment and > non-entailments and it is now time to inflict the various semantics on > the group. > > > The first alternative semantics (pfps1) stays close in exposition to the > RDF 1.1 semantics. It has some similarities to Enrico's opaque > semantics but has transparency for blank nodes (but different from the > CG semantics). The basic idea in this semantics is to map quoted > triples to 3-tuples of resources where each element of the tuple carries > the meaning of the corresponding component of the triple. Instead of > using explicit mappings from IRIs and literals to strings this semantics > adds unspecified mappings that allow syntactic meaning and semantic > meaning to diverge and thereby provide opacity. > > The set of RDF triples is the smallest set of 3-tuples S P O where > S is a IRI, a blank node, or an RDF triple; > P is an IRI; and > O is an IRI, a blank node, a literal, or an RDF triple. > An RDF graph G is a set of RDF triples. > > A simple interpretation I = < IR, IP, IEXT, IS, IL, ISQ, ILQ, IT > > consists of > 1. A non-empty set IR of resources, called the domain or universe of I. > 2. A set IP, called the set of properties of I. > 3. A mapping IEXT from IP into the powerset of IR x IR, i.e., the set of > sets of pairs < x, y > with x and y in IR, > such that IEXT(IS(owl:sameAs)) is the identity mapping over IR. > 4. A mapping IS from IRIs into (IR union IP). > 5. A partial mapping IL from literals into IR. > 6. A mapping ISQ from IRIs into IR. This is the opaque (or syntactic) > mapping for IRIs. > 7. A mapping ILQ from literals into IR. This is the opaque (or > syntactic) mapping for literals. > 8. A mapping IT from (IR union IP) x IP x (IR union IP) into IR. This > provides meaning for quoted triples. > > Given a (simple) interpretation I define IQ(E) (quoted interpretation) as > if E is an IRI then IQ(E) = ISQ(E), > if E is a literal then IQ(E) = ILQ(E), > if E is a triple s p o . then IQ(E) = IT(IQ(s), IQ(p), IQ(o)). At this point, if s (or o) are blank nodes, then IQ(s) (or IQ(o)) is not defined. Do you mean "ground triple" on the last line? > Given a (simple) interpretation I define IA(E) (asserted interpretation) as > if E is an IRI then IA(E) = IS(E), > if E is a literal then IA(E) = IL(E), > if E is a triple s p o. then IA(E) = IT(IQ(s), IQ(p), IQ(o)). Do you confirm that it is not IA(E) = IT(IA(s), IA(p), IA(o))? In this case, you could write more concisely: IA(E) = IQ(E). This has certain consequences on transparency (see below). Again, if s or o are blank nodes, this is not well defined. > > In a (simple) interpretation I extend I to a truth mapping for ground > triples and ground graphs. > For E a ground triple s p o. define I(E) = true if IS(p) is in IP and > the pair <IA(s),IA(o)> is in IEXT(IS(p)) otherwise I(E) = false. > For E a ground RDF graph define I(E) = false if I(E') = false for some > triple E' in E, otherwise I(E) = true. > > Adding blank nodes: > Given an interpretation I let A be a mapping from a set of blank nodes > to IR. > Define [I*A](E) to be A(E) on blank nodes, > <[I*A](S), [I*A](P), [I*A](O)> on triples of the form S P O. , what does this last line mean? I would imagine that there is a function: [IQ*A](E) = A(E) on blank nodes [IQ*A](E) = IQ(E) on IRIs and literals [IQ*A](E) = IT([IQ*A](s), [IQ*A](p), [IQ*A](o)) on triples E = s p o. then: [IA*A](E) = A(E) on blank nodes [IA*A](E) = IA(E) on IRIs and literals [IA*A](E) = [IQ*A](E) otherwise. > and IA(E) otherwise. > For E a triple s p o. define [I+A](E) = true if IS(p) is in IP and the > pair <[I*A](s),[I*A](o)> is in IEXT(IS(p)) otherwise [I+A](E) = false. > For E an RDF graph define [I+A](E) = false if [I+A](E') = false for some > triple E' in E, otherwise I(E) = true. "otherwise I(E) = true." -> "otherwise [I*A](E) = true." > For E an RDF graph define I(E) = true if [I+A](E) = true for some > mapping A from the set of blank nodes in E to IR, > otherwise I(E) = false. > > To make literals transparent (+L) just add the condition > ILQ(E) = IL(E) > To make IRIs transparent (+I) just add the condition > ISQ(E) = IS(E) If IA(s,p,o) = IQ(s,p,o) then it is possible to simulate transparent IRIs. Consider the example: <<:superman :can :fly>> :saydBy :LoisLane . :superman owl:sameAs :ClarkKent . This does *not* entail: <<:ClarkKent :can :fly>> :says :LoisLane . *but* suppose you replace all IRIs aaa that you want to make transparent into <<aaa :W :W>>, then: << <<:superman :W :W>> :can :fly >> :says :LoisLane . <<:superman :W :W>> owl:sameAs <<:ClarkKent :W :W>> . This *does* entail: << <<:ClarkKent :W :W>> :can :fly >> :says :LoisLane . > The second alternative semantics (pfps2) supports a partition of > properties that determine whether their subject and object are > interpreted syntactically or semantically. > > The set of RDF triples is as above. > > A simple interpretation I = < IR, IP, IEXT, IS, IL, ISQ, ILQ, IT > is as > above, with a disjoint partition of IP into IPS and IPQ and two extra > conditions (so that RDF graphs can force properties into IPS or IPQ): > 9. IPS = { x : < x, IS(rdf:SemanticProperty) > in IEXT(IS(rdf:type)) } > 10. IPQ = { x : < x, IS(rdf:SyntacticProperty) > in IEXT(IS(rdf:type)) } > > Define IQ and ISQ and above > > Given a (simple) interpretation I define ISS(E) as > if E is an IRI then ISS(E) = IS(E), > if E is a literal then ISS(E) = IL(E), > if E is a triple s p o. then ISS(E) = IT(ISS(s), ISS(p), ISS(o)). > > In a (simple) interpretation I extend I to a truth mapping for ground > triples and ground graphs. > For E a ground triple s p o. define I(E) as > I(E) = true if I(p) in IPS and <ISS(s),ISS(o)> is in IEXT(IS(p)) > I(E) = true if I(p) in IPQ and <ISQ(s),ISQ(o)> is in IEXT(IS(p)) > I(E) = false otherwise. It seems to me that there can be RDF 1.1 entailments that are not pfps2-entailments. > For E an RDF graph define I(E) = false if I(E') = false for some triple > E' in E, otherwise I(E) =true. > > Handle blank nodes as above. > > > > The third alternative semantics (pfps3) is a variation on the first > alternative semantics where 3-tuples are members of the domain. This > makes the connection between quoted triples and facts more explicit. To > further this connection, IEXT is modified from a map to a set of > 3-tuples. This semantics is not the same as the first but the > difference should not be visible in RDF or RDFS. > > The set of RDF triples is as above. > > A simple interpretation I = < IR, IP, IEXT, IS, IL, ISQ, ILQ > consists of > 1. A non-empty set IR of resources, called the domain or universe of I. > 2. A set IP, called the set of properties of I. > 3. A set IEXT, a subset of IP x IR x IR, > such that the restriction of the first element to IS(owl:sameAs) is > the identity mapping over IR. I don't see how this is different from the IEXT of the previous semantics. > 4. A mapping IS from IRIs into (IR union IP). > 5. A partial mapping IL from literals into IR. > 6. A mapping ISQ from IRIs into IR. This is the opaque (or syntactic) > mapping for IRIs. > 7. A mapping ILQ from literals into IR. This is the opaque (or > syntactic) mapping for literals. > > Given a (simple) interpretation I define IQ(E) as > if E is an IRI then IQ(E) = ISQ(E), > if E is a literal then IQ(E) = ILQ(E), > if E is a triple s p o. then IQ(s p o) = <IQ(s), IQ(p), IQ(o)> if this > is in IR, undefined otherwise. This implies that: <<:s1 :p1 :o1>> owl:sameAs <<:s2 :p2 :o2>> . <<:s1 :q :r>> :p :o . entails: <<:s2 :q :r>> :p :o . > Given a (simple) interpretation I define IA(E) as > if E is an IRI then IA(E) = IS(E), > if E is a literal then IA(E) = IL(E), > if E is a triple s p o. then IA(s p o) = IQ(E) > > In a (simple) interpretation I extend I to a truth mapping for ground > triples and ground graphs. > For E a ground triple s p o. define I(E) = true if IS(p) is in IP and > the 3-tuple <IA(s), IA(p), IA(o)> is in IEXT otherwise I(E) = false. This should be <IA(p), IA(s), IA(o)>, or the definition of IEXT above should be changed. > For E an RDF graph define I(E) = false if I(E') = false for some triple > E' in E, otherwise I(E) = true. > > Adding blank nodes is the same as in the first alternative. > > To make literals transparent (+L) just add the condition > ILQ(E) = IL(E) > To make IRIs transparent (+I) just add the condition > ISQ(E) = IS(E) > > > > Examples of entailment and non-entailment (at least as far as I can tell): > > :lois :believes << :clark :wears :glasses >> . > entails in all the above semantics > :lois :believes << _:x :wears :glasses >> . > > :lois :believes << _:y :wears :glasses >> . > entails in all the above semantics > :lois :believes << _:x :wears :glasses >> . > > :lois :believes << :clark :heightinfeet "6"^^xsd:int >> . > :believes rdf:type rdf:SemanticProperty . > entails in +L semantics or in pfps2 only > :lois :believes << :superman :heightinfeet "6"^^xsd:integer >> . s/:superman/:clark/ > > :clark owl:sameAs :superman > :lois :believes << :clark :heightinfeet "6"^^xsd:int >> . > entails in +I semantics only > :lois :believes << :superman :heightinfeet "6"^^xsd:int >> . > > _:x owl:sameAs :clark . > :lois :believes << _:x :wears :glasses >> . > entails in all +I semantics only > :lois :believes << :clark :wears :glasses >> . > > _:x owl:sameAs _:y . > :lois :believes << _:x :wears :glasses >> . > :lois :believes << _:y :heightinfeet "6"^^xsd:int >> . > entails in all the above semantics > :lois :believes << _:z :wears :glasses >> . > :lois :believes << _:z :heightinfeet "6"^^xsd:int >> . > > > > A fully opaque semantics (pfps4) would add to pfps1 > 9. A mapping IBQ from blank nodes into IR. > if E is a blank node then IQ(E) = IBQ(E) > and make the change > Define [I+A] to be A on blank nodes in asserted triples, < [I+A]S, > [I+A]P, [I+A]O > on triples, and I otherwise. > but I don't think that there is then a semantic extension to transparent > blank nodes. > > In this semantics > > :lois :believes << :clark :wears :glasses >> . > does not entail > :lois :believes << _:x :wears :glasses >> . > > :lois :believes << _:y :wears :glasses >> . > does not entail > :lois :believes << _:x :wears :glasses >> . > This semantics requires a heuristic to decide whether 2 syntactic tokens for blank nodes denote the same blank node or not. Within a single RDF document, this is easy, but what if you have a file with: <<[] a <Type>>> <p> <o> . Is the bnode the same as the one in another file with: <<[] a <Type>>> <p> <o> . if not, it leads to the very unintuitive fact that 2 identical RDF documents do not entail each other. -- Antoine Zimmermann École des Mines de Saint-Étienne 158 cours Fauriel CS 62362 42023 Saint-Étienne Cedex 2 France Tél:+33(0)4 77 49 97 02 http://www.emse.fr/~zimmermann/
Received on Monday, 15 May 2023 13:10:41 UTC