- From: Andy Seaborne <andy@apache.org>
- Date: Sun, 17 Mar 2024 10:47:17 +0000
- To: public-rdf-star-wg@w3.org
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