Re: One kind of "occurs" relation or many?

Andy,

On 18/12/2023 22:08, Andy Seaborne wrote:
> 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.

I agree, and this is the main reason I have fought for a long time 
against the idea of introducing a "default" predicate between the 
occurrence identifier and the triple term...

But now, I have come to consider that the pros overweight the cons.

NB: inserting a triple using the more specific subproperty of 
rdf:occurrenceOf (or whatever we name it) can still be done
   - manually, in addition to the convenient annotation syntax, if that 
matters to you (1), or
   - via some form of inference (2).

(1)
:richard :married :liz {| :m1 | :from 1964; :until 1974 |}.
:m1 ex:realizationOf << :richard :married :liz |}.

(2) (in N3)
:richard :married :liz {| :m1 | a ex:Realization; :in 1964; :until 1974 |}.
{ ?o rdf:occurrenceOf ?t; a ex:Realization } => { ?o ex:realizationOf ?t }.

>
>     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 Tuesday, 19 December 2023 09:09:12 UTC