- From: Gregg Kellogg <gregg@greggkellogg.com>
- Date: Thu, 14 Dec 2023 16:28:56 -0800
- To: Olaf Hartig <olaf.hartig@liu.se>
- Cc: Andy Seaborne <andy@apache.org>, RDF-star Working Group <public-rdf-star-wg@w3.org>
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