- From: Olaf Hartig <olaf.hartig@liu.se>
- Date: Fri, 15 Dec 2023 00:41:38 +0100 (GMT+01:00)
- To: Andy Seaborne <andy@apache.org>
- Cc: RDF-star Working Group <public-rdf-star-wg@w3.org>
Andy,
Dec 12, 2023 21:59:24 Andy Seaborne <andy@apache.org>:
> [...]
>
> ## Turtle
>
> Add to Turtle a new statement (grammar rule 2):
>
> << occurrenceName | :s :p :o >> .
>
> This names an occurrence of the triple s p o.
>
> The triple is not asserted, keeping "assertion" and "occurrence" as orthogonal concepts even if they might commonly be used together.
>
> occurrenceName is a URI or blank node, including [] (the ANON terminal rule 47 in Turtle - no triples inside the []).
>
> It is better to have the name first to allow for split lines and modified annotation syntax below.
>
>
> ## N-Triples
>
> In N-Triples, reflecting the RDF abstract data model, there is a property to relate occurrence to a triple term.
>
> :occurrenceName rdf:occurrenceOf << :s :p :o >> .
What should happen if someone writes the following two lines?
:occurrenceName rdf:occurrenceOf << :s1 :p1 :o1 >> .
:occurrenceName rdf:occurrenceOf << :s2 :p2 :o2 >> .
Should the abstract syntax contain a constraint by which such a multi-use of :occurrenceName is defined to be invalid? Or should this be treated as an inconsistency under whatever entailment regime that is concerned with such rdf:occurrenceOf statements?
Thanks,
Olaf
> There are triples terms in the data model
> (RDF-Concepts - section 3.1 : editors draft [2]).
>
> Renaming "quoted triple" as "triple term" would be better because it has less implication of the usage.
>
> The NT syntax would be available in Turtle in the same way that rdf:first is available in Turtle - and with the same expectation that it would rarely be used.
>
>
> ## RDF Graph Merge
>
> Graph merge happens as before - blank nodes need to be kept apart.
>
>
> ## Annotation
>
> This gives the modified annotation syntax as per Thomas's email [1]:
>
>> :liz :spouse :dick { id:1 | :start 1964; :end 1974 |} .
>> :liz :spouse :dick { id:2 | :start 1975; :end 1976 |} .
>
> Slight syntax tweak: For SPARQL, reusing { has to be careful because { is a group start.
>
> :liz :spouse :dick {| id:1 | :start 1964; :end 1974 |} .
> :liz :spouse :dick {| id:2 | :start 1975; :end 1976 |} .
>
>> which would map to
>> id:1 rdfx:occurrenceOf << :liz :spouse :dick >> ;
>> :start 1964; :end 1974 .
>> id:2 rdfx:occurrenceOf << :liz :spouse :dick >> ;
>> :start 1975; :end 1976 .
>
> and asserting:
>
> :liz :spouse :dick .
>
>
> ## Named occurrences in term slots
>
> << occurrenceName | :s :p :o >> could also be used in a subject or object slot with the occurenceName being the RDF term for subject or object (c.f. RDF collections and predicate object lists) for use with unasserted triples:
>
> << [] | :s :p :o >>
> :start 1964 ;
> :end 1974 .
>
> Andy
>
> [1]
> https://lists.w3.org/Archives/Public/public-rdf-star-wg/2023Dec/0024.html
>
> [2] https://w3c.github.io/rdf-concepts/spec/#section-triples
> (as of 2023-12-10)
Received on Thursday, 14 December 2023 23:41:48 UTC