Re: Many-to-Many table in R2RML

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