- From: Souripriya Das <souripriya.das@oracle.com>
- Date: Tue, 25 Jan 2011 13:59:02 -0500
- To: David McNeil <dmcneil@revelytix.com>
- CC: RDB2RDF WG <public-rdb2rdf-wg@w3.org>
- Message-ID: <4D3F1D76.4040608@oracle.com>
David, Please take a look at the example involving LIKES table (Sec 2.3 [1] and Sec A.2.3 [2]) to see if the technique used would be useful for the WORKS table in your example. The main idea here is that the predicate to be used for a column-value in a row is obtained from the value in another column. That is, the predicate is not just a constant URI. rr:predicateObjectMap [ rr:predicateMap [ rr:column "empLikes" ]; rr:objectMap [ rr:column "likedObj" ] ] In the following example shown with some sample data, typically WORKS table will have a foreign key: WORKS(name) references PERSON(name): PERSON Table (used in a Triplesmap TM1): <name, age> --------------- John 29 Brad 35 WORKS Table (used in TriplesMap TM2): <name, activity, item> ---------------------------------- John composed "Rock Song" John wrote "Java Book" Brad composed "Pop Song" Is this the kind of scenario you are thinking about? Thanks, - Souri/Seema. [1] http://www.w3.org/2001/sw/rdb2rdf/r2rml/#sec-likestable-pre [2] http://www.w3.org/2001/sw/rdb2rdf/r2rml/#sec-likestable_mapping David McNeil wrote: > Souri/Seema - > > Thank you for your response, see my responses inline below. > > > (A specific question about your issue #1: we are not sure what is > the requirement for "generate multiple subjects" ? If you meant > multiple TriplesMaps, then we can understand that the requirement > is to re-use the SQL query in those TriplesMaps.) > > > Yes, re-using a SQL query in multiple TriplesMaps is what I mean. > > > Not clear to us. Could you please clarify this requirement with a > concise example. > > > Consider a PERSON table with a TriplesMap on top of it. Consider also > a WORKS table with a TriplesMap on it. The WORKS table describes > creative works produced by the person (e.g. books, songs, etc.). Each > of these TriplesMaps produces a variety of triples describing the > people and the works respectively. > > A triple is needed to tie people to their works like this: [:personA > :wrote :work1] [:personB :composed :work2]. In this example the > predicate tying the two TriplesMaps together depends on data that > comes from the logical table of the "object". Specifically if the > object is a book then the predicate is :wrote, whereas if the object > is a song then the predicate is :composed. > > However, as I read the R2RML specification, I do not see how to create > a RefPredicateObjectMap on the PERSON TriplesMap that references a > column under the WORKS TriplesMap (perhaps this capability was > intended by the specification and I am just not reading it properly?). > In general, I am looking for R2RML to support arbitrarily complex > expressions for predicates based on columns from both the subject and > the object logical tables. > > > It is already assumed to be opaque. > > > Ah, I did not realize that. Perhaps it would be worth explicitly > stating this in the spec (or maybe it is and I missed it?). > > Thanks again. > -David
Received on Tuesday, 25 January 2011 18:59:53 UTC