I have a database storing genotype data. I also want to add phenotype data by using terms taken from the Human Phenotype Ontology.
When the phenotype ontology is updated, if a term I have used becomes obsolete, I will need to replace the obsolete term with a newer equivalent. I notice OBO defines tags "replaced_by" which indicates an alternative term that can be used to automatically replace the obsoleted term and "consider" which is similar but needs additional human intervention. Unfortunately the ontology I am interested in using does not seem to provide these attributes.
Apart from the two obvious ways to manage this i.e "use one version of the ontology and never update" or "just prompt the user to redo the annotation for expired terms", is there another established way to automatically identify replacements for obsoleted terms in an ontology? For example it seems as though some information from the relationships in the two ontology graphs could be exploited here?
If anyone could suggest a paper dealing with this problem I would be very grateful.
Thanks Keith, I'll try contacting the HPO curators.
The OBO 1.2 spec states that "Obsolete terms must have no relationships, and no defined is_a, inverse_of, disjoint_from, union_of, or intersection_of tags." Therefore most useful information is elided on obsoletion and the querying I suggested is not possible without the previous version of the ontology. If you have two different versions you can use obodiff. From the OBO-Edit documentation: "The obodiff utility compares a pair of OBO files and reports all of the edits necessary to transform the first file into the second."