Nicklas Nordborg wrote: > Philippe wrote: >> Hi Nicklas, base-developpers, >> >> Dominic an myself are currently working on a >> MAGE-TAB*(http://www.mged.org/mage-tab/) importer for BASE2. >> The format allows specifying Units to qualify descriptors such as >> protocol parameter, experimental factors, biomaterial descriptors. >> I can be quite handy for instance when having to report doses ranges of >> various compound fed to animals. >> When trying to get the unit information in BASE2, we are facing the >> following: >> Essentially, in order to retain unit information, we have to 'squeeze >> the information in an Annotation Type of type string that will get the >> numerical value + the unit value represented in the MAGE-TAB document. >> >> Several drawbacks in using this mechanism in BASE2 >> - loss of data type >> - loss of data validation capability offered by BASE2 Annotation Type >> - loss of computation (using BASE formulas for instance) over numerical >> Annotation types. >> >> The other option of creation several Annotation Type of type float with >> different labels to reflect unit changes, has serious User friendlyness >> issues. >> >> Are there any plans to provide a support for units in BASE2 Annotation >> Type, and if so on which timeline ? > > It is not on the timeline. I remember that we discussed it a long time > ago, but it was never added as a ticket to the trac system. I think the > earliest we can do is for the 2.6 relese. 2.5 is already overloaded with > features. > >> Is it a viable options to alter Float Value and Integer Value for >> Annotation Type in BASE2 to allow for specification of units (possibly >> as free text in a first go) ? > > Not if we want to do something better in the future. It is very hard to > change a temporary solution. > > >> (I reckon this would requires changes to the interface..) >> >> Are we the only BASE2 users confronted with this units/annotation type >> pb and would there people out there interested in developing this >> feature and contribute it to BASE2 ? > > I remember a few ideas that I had when this issue was discussed earlier. > > * A central registry of units that defines all possible units (much like > we have for MIME types already). > > * To each (numerical) annotation type is an (optional) list of units > that are possible to use. > > * When annotating an item the user can select one of the possible units > as defined by the annotation type. >
> There will be some problems with queries: > > * If we ignore units: >=5 finds items with 5mg and 5g but not 2g > > * If we require exact match of unit: >=5mg finds items with 5mg but > not 0.005g > > A possible solution is to convert all unit-enabled annotations > to a standard unit before they are stored in the database. For example, > all weights are stored in grams. Query filters are also converted to the > standard unit before they are applied. The original unit is remembered > by each annotation and the values are converted back when displayed. A > drawback is that the conversion can only work for float/double > annotation values. > Yes, the above would be a good solution without the drawbacks of course. May be this drawback can be addressed by avoding a direct storing of unit with the annotations. My quick thought on doing this is to have a separate entity for used units which is linked to annotations and other *values (interger, long etc) entities via the parametervalues table. I reckon this approach would also address the many to many relationship between annotations types and units. ¬Dominic ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ basedb-devel mailing list basedb-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/basedb-devel