Hilmar Lapp wrote:
> I would have suggested initiating a quantitation type ontology, not one
> individual per module.
Where would such a thing 'live'? Would it be some static file somewhere
that gets read in with Bio::OntologyIO? Or an in-memory Bio::Ontology
that can added to by a module when it needs extra terms to describe its
particular kind of scores?
> An ontology would capture all your semantic information [snip]
Thanks, I agree that an ontology would be the way to do it...
> It seems to me that essentially what you are trying to do is capturing
> knowledge for particular types of scores, which you would then use in
> more general purpose programs to sort from more to less significant, and
> possibly filter?
Yes.
> If so, then hard-coding this into objects (all over the
> place or in a single place) is typically not the best practice; rather,
> the usual best-practice approach is using (and if necessary,
> constructing) an ontology. This is also the most re-usable approach.
Not having any experience with ontolgies, I can't think how this would
all be done in practice though. Don't we need some central module
(Bio::Score) to create the ontology (or read it in) and then present
some suitable interface to it? For example, modules that wanted to store
some scores might just ask Bio::Score for the ontology and type their
scores by associating with an available ontology term, creating new
terms if necessary (or is that something you would never do; the
ontology needed to have been set up to cover all possible terms?). Then
when the user has a bunch of these typed scores, surely he doesn't want
to deal with going through the ontology himself to work out what it all
means? Well, he could if he needs that level of control, but also he
just wants to say Bio::Score->sort(x y z) or something.