Re: Consolidating triple/edges

I’d say it can’t be a syntactic constraint but may be a semantic inconsistency due to open-world assumption. 

Gregg Kellogg
Sent from my iPhone

> On Dec 14, 2023, at 3:41 PM, Olaf Hartig <olaf.hartig@liu.se> wrote:
> 
> 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 Friday, 15 December 2023 00:29:15 UTC