Hi Richard,

Thanks, that worked perfectly! I had the join in place but the URI pattern 
wrong; I had seen the example in URI patterns at 
http://d2rq.org/d2rq-language#resource-identity, but didn't think that the 
urlify had to be per column, I thought it would apply to the whole expression.

I was able to create my logID-Instrument specific instances and attach relevant 
properties, and then link that back to the original log.

Thanks for a fast and extremely helpful reply!

Cheers,
Melanie

ps: thanks for adding useful error messages (d2rq:ClassMap needs one of ..., or 
error on line 165 etc); they have been a great help and so much better than 
just displaying the exception.


On 2013-02-21, at 2:21 PM, Richard Cyganiak wrote:

> Melanie,
> 
> Instead of this
> 
>  @@Table2.InstrumentName-Table1.logID|urlify@@
> 
> try something like this:
> 
>  @@Table2.InstrumentName|urlify@@/@@Table1.logID@@
> 
> Each individual column (with column function, if any) needs to be enclosed in 
> @@doubleAts@@.
> 
> (I've used a slash "/" instead of a dash "-" as the separator to avoid 
> problems in the case that the instrument name contains a dash. If you use a 
> separator that *can* occur in the column, and is *not* encoded by the column 
> function, then there could be problems. The slash is encoded by urlify, so it 
> is safer.)
> 
> Then you can have one class map for experiments with the pattern above, and a 
> second class map for instruments with a pattern based only on the instrument 
> name.
> 
> You can have a property bridge that connects the two class maps simply by 
> having its d2rq:belongsToClassMap point to the one, and its 
> d2rq:refersToClassMap to the other.
> 
> The property bridge for the name of the experimenter would require a join on 
> Table1.logID=Table2.logID so that the right experimenter name is associated 
> with the right instrument.
> 
> Best,
> Richard
> 
> 
> On 21 Feb 2013, at 22:02, Melanie Courtot wrote:
> 
>> Hi all,
>> 
>> I am trying unsuccessfully to link properties to values depending on columns 
>> in two tables. Here is an example (the database I work with is unfortunately 
>> not normalized).
>> 
>> I have a usage logs for instrument in my lab. Here are two tables:
>> 
>> Table 1: columns logID, researcher, date
>> Table 2: columns logID, instrument_name, instrument_manufacturer, filter_used
>> 
>> Every time an experiment is made, it gets an ID, name of researcher and 
>> date, such as
>> 
>> 1    Melanie         20130221
>> 2    Ryan            20111101
>> 
>> Every time an experiment is made, a flow cytometer is used, such as
>> 1    FacsAria        BD                              filter 1
>> 1    BioSorter       UBiometrica             filter 72
>> 2    FacsAria        BD                              filter 5
>> 
>> 
>> The instrument name and manufacturer are always linked (all FacsAria are 
>> manufactured by BD), but the type of filter used depends on the experiment 
>> performed (i.e., the logID) *and* the instrument name. So for example return 
>> filter 1 only if logID = 1 *and* name is FacsAria. (as seen in the other 
>> record, I could use the FacsAria with another filter, filter5, in another 
>> experiment)
>> 
>> Also, several different instruments can be used within one experiment, such 
>> as in the example above where in experiment one two instruments (therefore 
>> two filters) were used.
>> 
>> I created a classMap per logID, and a classMap per instrument. As I am using 
>> the instrument name to mint the URI, all records of FacsAria show up on the 
>> same page - which displays "has_filter 1, has_filter 2" without associating 
>> the correct filter with the correct logID. I chose to do it that way as I 
>> can then have a FacsAria page showing me all the experiments it was used in.
>> Maybe the right way to proceed would be to create a classMap for each couple 
>> "InstrumentName-logId" and add the propertyBridge to those. I couldn't get 
>> the correct pattern to urlify though: if I try 
>> @@Table2.InstrumentName-Table1.logID|urlify@@ it gives me an error. I am 
>> also unsure how to link that to the "general" FacsAria above.
>> 
>> I thought maybe the example at http://d2rq.org/d2rq-language#example-refers 
>> would help, but nothing shows up when I try and adapt it to my case (either 
>> in the browser or the dump file)
>> 
>> I am not sure how to get that mapping right - any suggestion?
>> 
>> Thanks,
>> Melanie
>> 
>> 
>> ps: I hope this email is clear; I tried to reduce my example to the minimum 
>> information needed to understand the problem. Apologies if it is somewhat 
>> hard to read or if information is missing.
>> 
>> 
>> 
>> ---
>> Mélanie Courtot
>> MSFHR/PCIRN Ph.D. Candidate,
>> BCCRC - Terry Fox Laboratory - 12th floor
>> 675 West 10th Avenue
>> Vancouver, BC
>> V5Z 1L3, Canada
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> ------------------------------------------------------------------------------
>> Everyone hates slow websites. So do we.
>> Make your web apps faster with AppDynamics
>> Download AppDynamics Lite for free today:
>> http://p.sf.net/sfu/appdyn_d2d_feb
>> _______________________________________________
>> d2rq-map-devel mailing list
>> d2rq-map-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/d2rq-map-devel
> 


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
d2rq-map-devel mailing list
d2rq-map-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/d2rq-map-devel

Reply via email to