Re: RDF*/SPARQL* syntax

Richard,

On onsdag 4 september 2019 kl. 12:19:19 CEST Richard Cyganiak wrote:
> > 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.

I see.
 
> 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.

I think so too. Now, it is possible to go even one step further and combine 
the ideas of SA mode and PG mode into some form of "mixed mode" that allows 
users to make explicit for each nested triple whether this nested triple is 
meant to represent an annotation of an asserted triple or a statement about a 
non-asserted triple (which then would even make it unnecessary to have two 
separate modes, SA and PG, in the first place; so, the notion of modes would be 
rendered useless). The syntactic constructs that you propose below could be a 
neat approach to capture this explicit decision on the syntax level. However, 
at this point it seems to me that it does not make much sense to discuss this 
topic further. Instead, it seems we first need a clearer picture of what to do 
regarding the modes. After we have that, I would definitely like to come back 
to discussing your concerns and ideas about the syntax!

Thanks,
Olaf

> 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, 18 September 2019 06:21:15 UTC