- From: Souripriya Das <souripriya.das@oracle.com>
- Date: Tue, 02 Aug 2011 11:53:47 -0400
- To: public-rdb2rdf-wg@w3.org
- CC: "Sundara,Seema" <seema.sundara@oracle.com>
- Message-ID: <4E381D8B.4070707@oracle.com>
There are two constraints in this DB schema (note: changed the table name from "Enrolled" to "Enrollment" to make it more intuitive): - Student.s_id = Enrollment.s_id - Course.c_id = Enrollment.c_id Since Enrollment is a many-to-many table, the primary key and hence the subject (assuming no duplicates) is: <s_id, c_id>. We can express the two constraints easily as follows: <#LinkMapStudentToCourse> rr:logicalTable [ rr:tableName "Enroll*ment*" ]; rr:subjectMap <#*EnrollmentSubjectMap*>; * rr:predicateObjectMap [ rr:predicateMap [ rr:predicate rr:involedStudent ]; rr:objectMap [ rr:parentTriplesMap <#StudentTriplesMap>; rr:join [ rr:child "s_id"; rr:parent "s_id" ]; ] ]; * rr:predicateObjectMap [ rr:predicateMap [ rr:predicate rr:*involvedCourse* ]; rr:objectMap [ rr:parentTriplesMap <#CourseTriplesMap>; rr:join [ rr:child "c_id"; rr:parent "c_id" ]; ] ]. This is a clean mapping between DB constraints (which are virtual cols whose values are primary key for the referenced table) and RDF predicates. There is no need to try to create a constraint with the subject. (Subject is a multi-col primary key, not just the s_id column.) Thanks, - Souri/Seema.
Received on Tuesday, 2 August 2011 15:54:33 UTC