- From: Andy Seaborne <andy@apache.org>
- Date: Fri, 15 Dec 2023 09:26:31 +0000
- To: Gregg Kellogg <gregg@greggkellogg.com>, Olaf Hartig <olaf.hartig@liu.se>
- Cc: RDF-star Working Group <public-rdf-star-wg@w3.org>
Olaf,
I don't think the syntax can constraint at the abstract syntax level
although concrete syntax in Turtle can help avoid the situation.
We define rdf:occurrenceOf as a functional property (define in text
because RDFS can't express that).
Maybe ":s1 owlsSameAs :s2" etc
It isn't a unique situation. In common use, rdf:first/rdf:rest are
expected to be functional, and have no cycles and use blank nodes;
reification and container vocabulary tend towards unique unique triples.
While this is in the RDF namespace, it is general: RDF is not expressive
enough on it's own to exclude it.
As Gregg notes, it happens. It's the nature of RDF.
I think we can have our examples use blank nodes.
Andy
On 15/12/2023 00:28, Gregg Kellogg wrote:
> 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 09:26:39 UTC