- From: Niklas Lindström <lindstream@gmail.com>
- Date: Thu, 18 Jan 2024 11:28:50 +0100
- To: RDF-star Working Group <public-rdf-star-wg@w3.org>
Given the possible convergence on named occurrences (as reification),
adding naming to the RDF-star syntax is great.
Unfortunately, the naming notation doesn't work well in SPARQL, as it
collides with the use of `|` as the AlternativePath operator [1]:
SELECT * { ?s ?p ?o {| dct:issued | dct:modified "2023" |} . }
(The above already means "select any triples with annotations issued
or modified in 2023", and thus cannot be used for "with the annotation
denoted by dct:issued, modified in 2023". Try it out in [2].)
Of course Turtle is not SPARQL. But it has been designed in part with
the intent of being easy to copy-paste from when writing SPARQL (hence
the added support for SPARQL-style prefixes and base when Turtle was
standardized).
(I also wouldn't rule out a future SPARQL specification adding
"alternative subject and object" support either, for shortening
sometimes tedious unions.)
A small adjustment would be to use (an ASCII version of) the "left tack":
:s :p :o {| :e -| :a :b |} .
:s :p :o {| :e -|} .
<< :e -| :s :p :o >> :a :b .
SELECT * { ?s ?p ?o {| ?annot -| dct:issued | dct:modified "2023" |} . }
(This reverse turnstile symbol [3] has also been used e.g. in
mathematics [4] and APL (ambivalent left identity).)
(Options working more or less well: `:=`, `:-`, `|-`, `->`, etc. Needs
more consideration and testing on real data.)
Whatever is chosen *could* also be added for naming nestable blank node blocks:
:s :p :o [ :e -| :a :b ] .
(I'm not necessarily in favour of that [5], but I wouldn't argue
against it if the popular argument is its ease of use in authoring.)
(Note: N3 used to have the `:-` "iso" operator for this [6]. It was a
"pseudo-predicate" though, which might work less well.)
Best regards,
Niklas
[1]: <https://www.w3.org/TR/sparql11-query/#pp-language>
[2]: <https://sparql.org/query-validator.html>
[3]: <https://en.wikipedia.org/wiki/Turnstile_(symbol)>
[4]: <https://www.mathematics-monster.com/symbols/Left-Tack.html>
[5]: <https://lists.w3.org/Archives/Public/public-rdf-star-wg/2023Dec/0130.html>
[6]: <http://infomesh.net/2002/notation3/>
Received on Thursday, 18 January 2024 10:29:23 UTC