- From: Pierre-Antoine Champin <pierre-antoine@w3.org>
- Date: Thu, 12 Oct 2023 16:15:38 +0200
- To: Andy Seaborne <andy@apache.org>, public-rdf-star-wg@w3.org
- Message-ID: <9c629957-365f-4526-bf69-5a4b54378465@w3.org>
Thanks Andy. Out of curioty, what would you do of the following N-Quads (again, using qnames for convenience only): :s :p :o %{g1} Seems to me that this one has no asserted triple, only a "floating" graph term... What about this one: :s :p :o %{g1}. :s :p :o %{g2}. :a :b %{g1}. :c :d %{g2}. Seems to be that this one would be equivalent (in the /abstract syntax/) to :s :p :o %{g1}. :a :b %{g1}. :c :d %{g1}. Do you agree? Could that be a problem (non trivial to detect)? On 12/10/2023 14:00, Andy Seaborne wrote: > I see using blank nodes as one possible implementation approach. The > core idea is graph terms (types) and occurrences (tokens, uses of). > > I think we should focus on the whole model with draph terms in the RDF > abstract data model; then see how we get there. Just looking at an > incremental steps may leave RDF with the blocking legacy for "RDF 1.3". > > We can put quoted triples to one side for now and come back to them > when the big picture is more settled. > > > Proposal: Syntactic support for graph terms. > > We need syntactic support for graph terms. Graph terms will be larger > than our one line examples to date - 10s of triples and up. Visually > seeing that two graphs are the same graph will be error prone. > > _:a1 rdf:occurenceOf { :s :p :o } > _:a1 rdf:type .... > _:a2 rdf:occurenceOf { :s :p :o } > _:a2 rdf:type .... > > And we need N-quads support. > > Suggestion: Have syntax to define a syntax element: > > USING %{label} FOR { :s :p :o1, :o2 } > _:a1 rdf:occurenceOf %{label} > _:a1 rdf:type .... > _:a2 rdf:occurenceOf %{label} > _:a2 rdf:type .... > > with > > _:a3 rdf:occurenceOf { :s :p :o } > > is a shorthand for an implicitly generated %{....}. c.f. blank nodes. > > "label" is scoped to the document. > > There are many ways to have define-use syntax. The form above keeps > these aspects separate and the general style will naturally follow for > other syntaxes we need to update. > > Unlike current TriG, a label is defined to stand for the graph, not a > part of a graph. > > Now we can use URIs for tokens and that makes the occurrence and the > type accessible over the web. > https://lists.w3.org/Archives/Public/public-rdf-star-wg/2023Oct/0009.html > > It is syntax. It is not in the RDF abstract data model. Graph terms > are in the RDF abstract data model. > > This might be N-Quads (prefixed names for email only!). No USING needed. > > # 4th slot. Grouping. > :s :p :o1 %{g} . > :s :p :o2 %{g} . > # Use in object slot > _:a1 rdf:occurrenceOf %{g} . > # Use in subject slot > %{g} :property "abc" . > > %{} is not a graph name. > > :s :p :o1 %{g} . > > co-ops the use of the 4th slot but does not imply it is a graph name. > Nothing appears in GRAPH ?g {} . > > The form "%{ }" has many choices - {} is to suggest "graphs". > > JSON-LD use of blank node named graph is not affected. > Blank nodes could be used for a RDF 1.1 like implementation. > > rdf:occurrenceOf was used above because as Pierre-Antoine noted > (SemTF) there are different kinds of "occurrence". Syntax that omits > the name for the relationship is hiding this and it is something we > have to explore. > > It may even become a keyword if there is one property but we aren't > there yet. > > Andy >
Attachments
- application/pgp-keys attachment: OpenPGP public key
Received on Thursday, 12 October 2023 14:15:42 UTC