Re: Consolidating triple/edges

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