- From: Niklas Lindström <lindstream@gmail.com>
- Date: Mon, 15 Apr 2024 14:51:15 +0200
- To: Souripriya Das <souripriya.das@oracle.com>
- Cc: RDF-star WG <public-rdf-star-wg@w3.org>
You could instead update the descriptions of these (presumed) observation events, given the temporally more granular information we now have about `<<( s1 :p1 :o1 )>>`: :e rdf:reifies <<( :s2 :p2 :o2 )>> ; :source :src1 ; :year 2023 . :f rdf:reifies <<( :s3 :p3 :o3 )>> ; :source :src2 ; :year 2024 . :g rdf:reifies <<( :s1 :p1 :o1 )>> ; :source :src1 ; :month 5 ; :year 2023 . :h rdf:reifies <<( :s1 :p1 :o1 )>> ; :source :src2 ; :month 12 ; :year 2024 . That would remove the need for query-rewriting. (You could still model the observation events as a hierarchy of course, as in your solution. As long as it was designed like that from the beginning, no query changes would be required.) The most important question, I think, is whether or not it makes sense, always or sometimes, for such observations to possibly reify more than one triple. And to me, the answer wholly depends upon various reifiers' intended usage and therefore meaning -- i.e. the type of reifier (here observation events?). These need to be clearly defined with concrete usage examples. In this example we're talking about data provenance. We've also seen how named graphs are occasionally used for "course-grained" data provenance (temporal or otherwise). Such practices *may* prove more effective if replaced with reifiers of multiple triples. In the library world we could make use of that, to effectively mark the respective sources of records (other records, bibliographies or other catalogues, etc.) There are also many concrete situations or events that reify simple relations (such as a collaboration being a reifier of both an author and illustrator of a work), so we have examples of different types of reifiers. Does it make more sense to have a "partOf" relation from a granular reifier to a "holistic" reifier? Either way, it seems that LPGs are incapable of both, since edges cannot link to the whole anyway? Best regards, Niklas On Sun, Apr 14, 2024 at 8:37 PM Souripriya Das <souripriya.das@oracle.com> wrote: > > A shortcoming of using multi-valued rdf:reifies is that you lose the ability to add statements about the individual triple-terms. I have tried illustrating this with the following simple examples. > > Example 1: using multi-valued rdf:reifies > ========= > :e rdf:reifies <<( :s1 :p1 :o1 )>>, <<( :s2 :p2 :o2 )>> ; :source :src1 ; :year 2023 . > :f rdf:reifies <<( :s1 :p1 :o1 )>>, <<( :s3 :p3 :o3 )>> ; :source :src2 ; :year 2024 . > > What if we want to indicate that the <<(: s1 :p1 :o1 )>> triple-term in :e has a different :month annotation than the one in :f? The following does not help because we cannot specify that the one in :e is associated with :g and the one in :f is associated with :h. > > :g rdf:reifies <<( :s1 :p1 :o1 )>> ; :month 5 . > :h rdf:reifies <<( :s1 :p1 :o1 )>> ; :month 12 . > > Example 2: using single-valued rdf:reifies, along with rdfs:member (or some similar) property > ========= > > :e1 rdf:reifies <<( :s1 :p1 :o1 )>> . > :e2 rdf:reifies <<( :s2 :p2 :o2 )>> . > :e rdfs:member :e1, :e2 ; :source :src1 ; :year 2023 . > > :f1 rdf:reifies <<( :s1 :p1 :o1 )>> . > :f2 rdf:reifies <<( :s2 :p2 :o2 )>> . > :f rdfs:member :f1, :f2 ; :source :src2 ; :year 2024 . > > This is a multi-level structure that, although more verbose, allows annotations at each level. So, the following achieves the objective. > > :e1 :month 5 . > :f1 :month 12 . > > The second approach – using single-valued rdf:reifies and rdfs:member – allows one to use a uniform way to create multi-level structures (e.g., a document with levels: chapter -> section-> paragraph -> sentence). > > Thanks, > Souri. > > > >
Received on Monday, 15 April 2024 12:51:48 UTC