- 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