- From: Andy Seaborne <andy@apache.org>
- Date: Sat, 14 Oct 2023 10:43:09 +0100
- To: Pierre-Antoine Champin <pierre-antoine@w3.org>, public-rdf-star-wg@w3.org
On 12/10/2023 15:15, Pierre-Antoine Champin wrote:
The issue of nested/recursion has already come up on github.
https://github.com/w3c/rdf-concepts/pull/67#discussion_r1358739743
On this one part of Pierre-Antoine's email:
>
> :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}.
From our group discussions so far, we seem to be putting graph terms
(types) into the abstract data model (c.f. N3) and, by various
proposals, having occurrences (tokens) as resources.
%{g1} as a reference for a graph term - the text for %{g1} could be
replaced by its definition, except N-Quads doesn't work like that.
%{g1} isn't in the abstract syntax / data model.
I'm assuming, like triple terms (quoted triples), recursive graph terms
are not permitted.
The symbol %{} being declared is not in-scope for the definition -
nested graph terms are possible but cycles are not.
USING %{g1} FOR { :s :p :o }
USING %{g2} FOR { :s :q { :s :p :o} }
%{g2} there is the same as:
USING %{g2} FOR { :s :q %{g1} }
but
USING %{g3} FOR { :s :q %{g3} }
is illegal.
Re-declaration of {%g1} is either illegal or is replacement (c.f. PREFIX)
USING %{g} FOR { :s :p :o1 }
USING %{g} FOR { :s :p :o2 }
It is not "more triples" which is how N-Quads builds up the graph term.
Andy
Received on Saturday, 14 October 2023 09:43:21 UTC