Showing posts with label headache. Show all posts
Showing posts with label headache. Show all posts

Saturday, January 30, 2010

Class, label, sensu

In the past couple weeks we've been actively debating what the concepts like synonyms and homonyms mean in the context of the HAO. In particular how do they relate to our concepts of classes (the "real" things at the core of our ontology), and the labels we use to references those classes? We had been using tags to indicated synonyms, but our tag data-model wasn't as elegant as we needed it to be, as exemplified by the fact that too many hacks were being added to the code base to perform various calculations on our data. After much discussion and debate as to the meaning of our various tags in general we realized that we could use a new, simple model which nicely encapsulates what we wanted to capture with respect to synonyms and homonyms, classes and labels: we've called it a "Sensu".

The sensu model is simply a pointer to a label, a class, and a reference (a table with three columns).  It states that so-and-so (a reference) used a label (basiparamere) for a class (The sclerite that is connected proximally with the cupula, distally with the harpe, ventrolaterally with the parossiculus). The Sensu model provides the basic functionality of linking labels to classes.  In addition, from this simple table we can derive nearly everything we wanted to in the past with respect to synonymy and homonymy (and the "acts" of these).  For example, if two sensus share the same class, but different labels, then those labels are synonyms, and if two classes share the same label, then that label is homonymous.  If one person (reference) used two labels in conjunction with the same class, then that person performed the "act" of synonymy, if they used two classes with the same label, then they indicated homonymy.

There are some really nice consequences of this approach: for instance we don't have to specifically identify a "preferred" label or a senior synonym - if we wanted we can calculate these based on some arbitrary metric (e.g. first usage, most used, most voted for, etc.). As long as people can reference the class (some xml or similar markup), they can use whatever label (including other languages) they want for that class. We can also algorithmically detect all cases of synonymy and homonymy without specifically looking for them, i.e. if someone discovers that so-and-so used a label for a class, they need not specifically be intending to synonymize that label, but we can still calculate that a synonym is implied.

In moving this model we've also realized what appears to be a shortcoming to the OBO format, in which a singular class-label construct is the core unit (synonyms can be captured, but each class must have a unique label). The more we work on this project, the more we doubt that we can (or should) enforce labels to have just one meaning (for instance, the classic example process is both a time-based and morphological concept), and we further doubt that this is necessary for us to do some really cool things with the ontology.

Tuesday, November 24, 2009

region, area, headache

A constant and ongoing debate during our Tuesday HAO group discussion is the nature of regions and areas. In the classic approach areas have well defined boundaries, whereas regions have some boundary or compartmentalization that is not well defined. For example a region might be defined in part by a change of color wherein the precise point at which the color changes is not well defined. An example of an area might be the interocellar area, which is bound by three lines that join the centers of the ocelli. One is very precise, the other is not.

In the context of an ontology you can think of the two as matter and anti-matter. An ontology necessarily defines classes in a very specific way. Region, as we have discussed it, is a thing that has at least some non-defined boundary (areas have well defined material boundaries). Therefor regions are undefined, and may not belong in the ontology.

Our temporary solution is to assume that if something is a region in the "no boundaries/can't define a boundary" sense it doesn't belong in the ontology. We've moved everything previously under region to area, and have begun to rework some classical terms in such a way that they can be explicitly defined. For example look at the new definition for gena, a term which has never (to our knowledge) been adequately defined.

Note that areas can be defined by immaterial anatomical entities (e.g. lines connecting ocelli or planes  tangential to some reference line).

Note that this is largely a pragmatic resolution that lets us get on with other things. If you have any feedback or experience in this regard we'd love to hear it.