- From: Pierre-Antoine Champin <pierre-antoine@w3.org>
- Date: Tue, 19 Dec 2023 10:09:08 +0100
- To: Andy Seaborne <andy@apache.org>, public-rdf-star-wg@w3.org
- Message-ID: <8517dd0d-a7b0-4dd4-a5aa-fc730e96ab2c@w3.org>
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) >>> >
Attachments
- application/pgp-keys attachment: OpenPGP public key
Received on Tuesday, 19 December 2023 09:09:12 UTC