- From: Boris Villazon-Terrazas <boris.villazon@deri.org>
- Date: Fri, 29 Jul 2011 14:23:25 +0100
- To: Juan Sequeda <juanfederico@gmail.com>
- CC: Richard Cyganiak <richard@cyganiak.de>, public-rdb2rdf-wg@w3.org
- Message-ID: <4E32B44D.5040107@deri.org>
Hi Juan Thanks for asking! We have a Test Case for this http://www.w3.org/2001/sw/rdb2rdf/test-cases/TCOverview.html#D011-M2MRelations It includes the Direct Graph and R2RML mapping, and it is a good opportunity to check it. The associated files to this test case are here https://dvcs.w3.org/hg/rdb2rdf-tests/file/fd8f7c555644/D011-M2MRelations Thanks Boris On 29/07/2011 14:10, Juan Sequeda wrote: > Richard, all > > > This may be a dumb question, but I haven't been able to figure out how > to represent a many-to-many relationship in r2rml. For example: > > Student(s_id, name) > Course(c_id, title) > Enrolled(s_id, c_id) > > Where Enrolled is the many-to-many relationship. > > These are the TripleMaps for the Student and Course table: > > <#TriplesMap1> > rr:logicalTable [ rr:tableName "student"; ] > rr:subjectMap [ > rr:template "http://data.example.com/student/{s_id} > <http://data.example.com/student/%7Bs_id%7D>"; > rr:class ex:Student; > ]; > rr:predicateObjectMap [ > rr:predicateMap [ rr:predicate ex:name; ]; > rr:objectMap [ rr:column "name" ]; > ]. > <#TriplesMap2> > rr:logicalTable [ rr:tableName "course"; ] > rr:subjectMap [ > rr:template "http://data.example.com/course/{c_id} > <http://data.example.com/course/%7Bc_id%7D>"; > rr:class ex:Course; > ]; > rr:predicateObjectMap [ > rr:predicateMap [ rr:predicate ex:title; ]; > rr:objectMap [ rr:column "title" ]; > ]. > > I assume that I should add a predicateObjectMap to TriplesMap1 > (student) which is going to connect to TriplesMap2 (course), but the > joinCondition is on the enrolled table. > > <#TriplesMap1> > rr:predicateObjectMap [ > rr:predicateMap [ rr:predicate ex:isEnrolled; ]; > rr:objectMap [ > rr:parentTriplesMap <#TriplesMap2>; > rr:joinCondition [ > rr:child "?????"; > rr:parent "???"; > ]; > ]. > > How is this suppose to be done? And could you add an example in the specs. > > Thanks! > > Juan Sequeda > +1-575-SEQ-UEDA > www.juansequeda.com <http://www.juansequeda.com>
Received on Friday, 29 July 2011 13:23:58 UTC