this is a small example ontology that I made that demonstrates (using trivial examples) the use of an OWL ontology with an automated reasoner to do automatic annotation of qualities for phenotype data in mice. It uses a straight-forward bit of OWL semantics to do this annotation. The ontology for annotation of qualities is available to use.
In this ontology I describe:
- A mouse;
- A mouse’s parts;
- Qualities associated with a mouse or its parts;
- Units for the measurements (not yet done; it’s just an example).
A mouse has parts such as whiskers and tail. Measurements have a value (a data property) and a unit. We can then have measurements for mice and their parts. Finally, we have qualities such as &short" or "long" for mice and their parts.
I then create an individual mouse. One particular individual looks like:
Individual: mouse01 Types: [in phenotype.owl] Mouse, hasPart some (Tail and (hasMeasurement some (Measurement and (hasValue value 25.0))))
This describes a mouse that has a tail. The tail has a measurement with a value of 25.0 mm. I’ve not put the units in, but this is really just a trivial example.
We can then write a defined class for a "short tailed mouse" like this:
Class: ShortTailedMouse Class: ShortTailedMouse EquivalentTo: [in phenotype.owl] Mouse and (hasPart some (Tail and (hasMeasurement some (Measurement and (hasValue some double[<= 30.0]))))) SubClassOf: [in phenotype.owl] hasPart some (Tail and (hasLength some Short))
This says that a short tailed mouse is any mouse that, among other things, has a tail that has a measurement of less than 30.0 (millimetres). This is enough to recognise an individual mouse as a member of this class. The trick is with the axiom:
SubClassOf: [in phenotype.owl] hasPart some (Tail and (hasLength some Short))
that says that such a mouse necessarily has a tail that
hasLength some Short
. Having shortness is something that must be true of a mouse tail of this class; we don’t need to assert that such a mouse hasLength short to make it a member of this class; it is just something we have said is true of all members of this class — once we know a mouse is in this class we also know that its tail is short. Wwe’ve already said enough to recognise the mouse as a short tailed mouse; the necessary conditions now "come for free". Thus we recognise that this individual mouse is a short tailed mouse based on the measurement and the quality "short" is automatically a feature of being a member of that class. If we created a pipeline that took phenotyping data, created the OWL individuals for those data, then we could automatically assign phenotype qualities to those individuals and put the annotations back into the database.
There are also defined classes for long, normal tailed mice and some to do whith whiskeriness each of which assigns the appropriate (in this ontology) quality. These are obviously trivial examples. All this needsd working up with some much better examples. I also want to explore several things:
- Proper phenotyping SOPS such as those in Empress;
- Look at the limits of what can be done this way and what needs to be left to a human phenotyper;
- Where and how to deal with the statistical part of phenotyping;
- Inserting an ontology such as the Phenotype and Trait ontology (Pato);
- connecting it all up to genes.
- Doing units sensibly.