Re: RDF*/SPARQL* syntax

> 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