- From: Richard Cyganiak <richard@cyganiak.de>
- Date: Wed, 4 Sep 2019 12:19:19 +0100
- To: Olaf Hartig <olaf.hartig@liu.se>
- Cc: "public-rdf-star@w3.org" <public-rdf-star@w3.org>
> On 3 Sep 2019, at 21:13, Olaf Hartig <olaf.hartig@liu.se> wrote:
>
> It is not clear yet whether we end up with proposing only
> PG mode, or only SA mode, or maybe both as alternative options.
FWIW, my contributions in this thread assume “PG mode” because that is what RDF* was originally described as.
If RDF* was described as “SA mode”, my view of the Turtle* syntax would change slightly.
My main concern would be that even in “SA mode”, annotating an asserted triple is bound to be a very common use. Therefore, there should be a special syntactic construct to make that easy. This could be done as an extension of Turtle* that does not change the existing Turtle* syntax. Perhaps:
# Asserts a triple
:a :b :c.
# Annotates a triple without asserting it
<<:a :b :c>> :d :e.
# Asserts a triple and annotates it
:a :b :c [[ :d :e ]].
# The [[...]] syntax is essentially just syntactic sugar for this:
:a :b :c.
<<:a :b :c>> :d :e.
# Can be used inline in repeated-subject blocks
# This asserts four triples and annotates two of them
:a :p1 :v1;
:p2 :v2 [[ :d :e2 ]];
:p3 :v3;
:p4 :v4 [[ :d :e4a; :d e4b ]].
Like my earlier alternative syntax for “PG mode”, this special syntax would only work when the annotated triple is the subject; it would not work if it is the object. But in “SA mode” that's not much of a problem, because the [[ ... ]] syntax is just syntactic sugar, and the fall-back of using <<...>> plus a normal assertion is available.
# Triple as object -- annotation only
:x :y <<:a :b :c>>.
# Triple as object -- assert+annotate
:a :b :c.
:x :y <<:a :b :c>>.
(Apart from these syntax questions, I have no opinion on the relative merits of “PG mode” and “SA mode” at this time.)
Richard
Received on Wednesday, 4 September 2019 11:19:45 UTC