Annotation syntax

On 17/03/2024 08:45, John Walker wrote:
...
> If so, being very simple here, could one entertain introducing a TRIPLE 
> keyword somewhat analogous to GRAPH into the grammar for SPARQL and 
> constrain that to only allow a single triple pattern.
> 
> WHERE {
>    GRAPH ?g {
>      ?s ?p ?o .
>      TRIPLE ?t { ?s ?p ?o }
>      ?t ?t_p ?t_o .
>    }
> }
...
 > this does not allow for naming statements without asserting them

A key aspect being explored by the working group is the difference 
between the use/mention/claim/occurrence... of a triple (as a "token") 
and the abstract notion of a triple as a relationship (as a "type").

There is work on "annotation syntax" in Turtle/Trig/SPARQL which 
combines asserting a triple (triple occurrence) and saying something 
about that occurrence.

   :s :p :o {| ex:source <v> |} .

which as syntax is equivalent to the longer form:

   :s :p :o .
   << :s :p :o >> ex:source <someSource> .

The occurrence (reification) has an generated blank node.

The forms <<...>> and {|...|} are convenience syntax forms (c.f. RDF 
lists). There is also a syntax variant to have an explicit name for the 
occurrence should that be needed.


In N-triples, ":s :p :o {| ex:source <someSource> |} ." becomes

   :s :p :o .
   _:b rdf:reifies <<( :s :p :o )>> .
   _:b ex:source <someSource> .

<<( :s :p :o )>> is an RDF term for the triple concept.

The syntax forms {|...|} and <<...>> will be the more common usage in 
Turtle.

There is editorial work in progress to get this into the working drafts.

     Andy

Received on Sunday, 17 March 2024 10:47:23 UTC