- 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