- From: Pierre-Antoine Champin <pierre-antoine.champin@ercim.eu>
- Date: Fri, 8 Jan 2021 09:50:28 +0100
- To: Andy Seaborne <andy@apache.org>, public-rdf-star@w3.org
- Message-ID: <481e6968-82ce-2890-7944-2ed49b1a26d1@ercim.eu>
Andy, On 08/01/2021 01:34, Andy Seaborne wrote: > (this is to tease out what is meant by "RDF* syntactic sugar" when it is not about (concrete) syntax, but is really an abstract model 'syntax' morphism). Indeed :) While Turtle's "factorization" is syntactic sugar at the concrete syntax level, RDF*'s new kind of term is defined, in this proposal, as syntactic sugar at the abstract syntax level. Refraining from specifying the IRIs D*, S*, P* etc... prevents the leap from abstract syntax to concrete syntax, so while RDF* is (abstract) syntactic sugar for RDF, Turtle* is NOT syntactic sugar for Turtle... > Please could you clarify with an example: > > "For each embedded triple (s, p, o)" > > and > > """ > An RDF* triple used as the subject or object of another RDF* triple is > called an embedded triple. > """ The section you are referring to is called "Mapping RDF* abstract syntax to RDF" so we are not concerned here with the concrete representation of the graph. G is simply a set of RDF* triples (per the definition). Furthermore, the complete sentence is "For each embedded triples (s, p, o) in constituents(G)", which was intended to make it clear that we are not referring to *occurrences* of (s, p, o) in G, but to the triple (s, p, o) itself. > > <<:s :p :o>> :q1 :r1 . > <<:s :p :o>> :q2 :r2 . > > and > > <<:s :p :o>> :q1 :r1 ; :q2 :r2 . > > i.e. <<:s :p :o>> used twice as the subject even if via other turtle > syntactic sugar. As you know, those two Turtle* documents represent the same graph in the abstract syntax: G = { ((:s,:p,:o), :q1, :r1), ((:s,:p,:o), :q2, :r2) } where constituents(G) = { (:s,:p,:o), :s, :p, :o, :q1, :r1, :g2, :r2 } It follows that * (:s,:p,:o) is an embedded triple in G (as it appears in the subject position of at least one asserted triple, * (:s, :p, :o) has two occurrences in G. So unstar(G) will be the following set of 5 triples (where b is a blank node): unstar(G) = { (b, :q1, :r1), (b, :q2, :r2), (b, S*, "<http://example.org/s>"^^D*), (b, P*, "<http://example.org/p>"^^D*), (b, O*, "<http://example.org/o>"^^D*), } > > > Andy > > On 07/01/2021 21:35, Pierre-Antoine Champin wrote: >> Hi all, >> >> I was hoping to send this earlier so that we could discuss this >> during our next call, but given the short delay, it will have to wait >> for a later call. >> >> However, I just pushed a PR which contains a new version of the "RDF* >> Semantics" section This is the result of lengthy discussions with >> Olaf and Doerthe (huge thanks to them), as well as discussions on the >> mailing list and valuable feedback from Peter and Antoine in particular. >> >> https://github.com/w3c/rdf-star/pull/81 >> >> It follows the idea of making RDF* syntactic sugar on top of RDF (cf >> issue 37), at least at the abstract syntax level. Rather than >> reinventing a semantics from the ground up, RDF* semantics is now >> defined as a semantic extension (a.k.a. entailment regime) of RDF >> (similarly to RDFS or OWL). >> >> Yet, it aims to avoid the pitfalls of a full-fledged syntactic sugar >> approach. More precisely: it tries to avoid users from describing >> ill-formed or incomplete RDF* triples using plain-RDF syntaxes. >> >> Any feedback welcome. >> >> >> >
Received on Friday, 8 January 2021 08:50:33 UTC