- From: Souripriya Das <souripriya.das@oracle.com>
- Date: Thu, 18 Apr 2024 14:09:50 +0000
- To: RDF-star WG <public-rdf-star-wg@w3.org>
- Message-ID: <CY5PR10MB6071F863328A5ABD5E2C5372FA0E2@CY5PR10MB6071.namprd10.prod.outlook.com>
Following are some of the issues I see with multi-valued (i.e., many-to-many) rdf:reifies: 1) a single reifier cannot associate with two identical triple-terms (needed for parallel edges), and 2) creates a confusion regarding whether the annotations hanging from the single reifier applies to every triple-term individually or only to the set of triple-terms as a whole. My feeling is that It is important to be able to be able to hang annotations independently: 1) to individual triple-terms, and 2) to a mutli-set of triple-terms as a whole. Given this, I'd like to propose the following: 1) Keep rdf:reifies single-valued (that is, allow many-to-one and disallow many-to-many). 2) Use a new property, rdf:memberReifier, to create a set of reifiers so that we can attach annotations for a multi-set of triple-terms (the need for which may arise because the data creator wants it that way and/or because of triple-terms derived via entailment). Example 1: annotations for individual triple-terms and annotations for a multi-set of triple-terms ========= # individual triple-term :e1 rdf:reifies <<( :s1 :p1 :o1 )>> . # two identical (individual) triple-terms (parallel edges) :e2a rdf:reifies <<( :s2 :p2 :o2 )>> . :e2b rdf:reifies <<( :s2 :p2 :o2 )>> . # a multi-set of triple-terms and annotations for it :e rdf:memberReifier :e1, :e2a, :e2b ; :source :src1 ; :year 2023 . # add annotations for individual triple-terms :e1 :month 5 . :e2a :month 12 . :e2b :month 9 . Example 2: handling entailment by creating a multi-set (unless already present) and copying annotations ========= # asserted triple-term (with annotation) and OWL axioms :f1 rdf:reifies <<( :john :married :mary )>> ; :location :Rome . :married rdf:type owl:SymmatricProperty . :married owl:equivalentProperty :spouseOf . # derives and stores in a multi-set: (:f1a, :f1b, :f1c, and :f are new identifiers that have to be created) :f1a rdf:reifies <<( :mary :married :john )>> . # using symmetry :f1b rdf:reifies <<( :mary :spouseOf :john )>> . # using equivalent property :f1c rdf:reifies <<( :john :spouseOf :mary )>> . # using equivalent property :f rdf:memberReifier :f1, :f1a, :f1b, :f1c ; :location :Rome . # forms the multi-set and duplicates the annotations of :f1
Received on Thursday, 18 April 2024 14:10:00 UTC