- From: Souripriya Das <souripriya.das@oracle.com>
- Date: Sun, 14 Apr 2024 18:37:20 +0000
- To: RDF-star WG <public-rdf-star-wg@w3.org>
- Message-ID: <CY5PR10MB607199CB1EFEB30FFF4E091AFA0A2@CY5PR10MB6071.namprd10.prod.outlook.com>
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 Sunday, 14 April 2024 18:37:29 UTC