Are we talking about versioning at a very high granularity level (e.g., a URI that points to an entire ontology)? Should we also consider versioning at finer granularity levels such as the levels of concepts or terms and their relationships within an ontology? Some of these concepts, terms and their relationships may evolve over time. We many need a versioning scheme for these. I think some of these finer granularity versioning examples can be found in the UMLS (Unified Medical Language System). At the instance level, we may need versioning as well. Also, the semantics of versioning may be unclear sometimes. For example, two different SNPs (Single Necleotide Polymorphisms) that were submitted to dbSNP may refer to the same location in the genome. Do we say they are two different versions of the same SNP? There may not be a standard notion/definition of versioning for biomedical entities.

I think that both types, high-level e.g. this is a new release of the ontology, and low-level, e.g. a term (class or property) is deprecated, are needed. Not sure about versioning at the instance level.

Mechanisms that I have seen or am aware of are either 1) add annotation properties in the ontology for this purpose or 2) use a database backend that provides a mechanism to store information about deprecated terms. The database backend solution may be too heavy weight for a general solution?. As for the annotation property mechanism. the developers of the MGED Ontology have put together a policy of how to indicate deprecated terms for this resource: Although there may be some items that are particular to the MGED Ontology and it's peculiarities, I believe that there are also items that can be generalized for use with other ontologies.


Reply via email to