- From: Andy Seaborne <andy@apache.org>
- Date: Mon, 18 Dec 2023 21:08:51 +0000
- To: public-rdf-star-wg@w3.org
- Message-ID: <56db8b00-2397-479a-b85d-2d31c3a6a6a8@apache.org>
That triggered a question:
Is rdf:occurenceOf , or whatever we name it, the only relationship
between an occurrence/token in the domain, and a triple type/term?
Are there useful subproperties of rdf:occurenceOf?
While these could be by (rdf:)typing the occurrence separately,
subproperties can be clearer and don't "loose" the type when looking at
just the occurrence-term triple.
Andy
On 18/12/2023 14:24, Pierre-Antoine Champin wrote:
>
> Hi all,
>
> Andy's proposal below (which I have to say I like very much) gave me
> an additional idea:
> if we were to follow it, we could consider introducing a third profile
> that would sit between Basic (no triple terms) and "Full" (no
> restrictuon), by allowing triple terms /only/ as the object of
> rdf:occurrenceOf (in an asserted triple).
>
> A working title for this intermediate profile could be "RDFn" profile,
> because my intuition is that this profile covers most of what RDFn
> aims to do, and could be implemented in the same ways as RDFn (i.e. by
> adding a 4th column to triples, the 4th column being the identifier).
>
> I see how more profile could mean more fragmentation of the
> ecosystem... but it could also mean that more people find an option
> they are happy with in RDF 1.2, and it is better if those options are
> clearly laid out in the spec than "improvised" by each unhappy
> implementer.
>
> best
>
> On 12/12/2023 21:59, Andy Seaborne wrote:
>> Here is an attempt to write out the details of what I think has been
>> said recently.
>>
>> It is addressing "publishing information about multi-edges".
>> (Ideas here are from WG members - the mistakes are mime.)
>>
>>
>> Multiple edges with the same label are handled as multiple
>> occurrences - the predicate URI of the RDF triple is thought as a
>> conceptual relationship - with multiple sets of annotations.
>>
>> This preserves the uniqueness of triples in a graph, and allows
>> independent collections of assertions about a relationship. Such
>> collections of assertions do not get entangled on merge.
>>
>>
>> ## 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 >> .
>>
>> 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 Monday, 18 December 2023 21:09:00 UTC