- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Mon, 15 Apr 2024 06:53:20 -0400
- To: Souripriya Das <souripriya.das@oracle.com>, "public-rdf-star-wg@w3.org" <public-rdf-star-wg@w3.org>
The point is that this is something that affects all attempts to represent information. peter On 4/15/24 00:15, Souripriya Das wrote: > [There was a copy/paste typo in my example: It should have had => :f2 > rdf:reifies <<( :s3 :p3 :o3 )>> .] > > Hi Peter, > > Yes, because your example too involves a multi-valued property, if we think of > the inverse property :sourceOf. > > So, my point is that, as shown in my examples, using rdf:reifies in a > multi-valued manner may lead to the need to change the data significantly (if > the need for annotation of individual triple-terms arises later). That would > involve query rewriting as well. So, modeling using multi-valued rdf:reifies > could a bit risky. > > Thanks, > Souri. > > ------------------------------------------------------------------------------ > *From:* Peter F. Patel-Schneider <pfpschneider@gmail.com> > *Sent:* Sunday, April 14, 2024 5:17 PM > *To:* public-rdf-star-wg@w3.org <public-rdf-star-wg@w3.org> > *Subject:* [External] : Re: use of multi-valued rdf:reifies removes ability to > annotate individual triple-patterns > This modelling issue is not specific to :reifies. > > Consider > > :a :source :x . > :b :source :x . > :x :publication "NYT" . > > This says that :a and :b have the same :source, whatever that means. If you > later want to add more information about :source, for example :year, then you > can't put different :years for this :source. You have to either have the > same :year or make a change to something like: > > :a :source :x . > :b :source :y . > :x :publication "NYT" . > :x :year 2023 . > :y :publication "NYT" . > :y :year 2022. > > This says that :a and :b have the same value for the :date. > > peter > > > On 4/14/24 14:37, Souripriya Das 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 10:53:25 UTC