- From: Andy Seaborne <andy@apache.org>
- Date: Thu, 12 Oct 2023 13:00:54 +0100
- To: public-rdf-star-wg@w3.org
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
Received on Thursday, 12 October 2023 12:01:04 UTC