Ideas for an obo ontology synchronization tool in OE2 (largely notes from conf call on 8.21.08 with Amina, Nomi, Chris, Wasila, Peter, Melissa and Jim.)
Background: Two ontologies need to be aligned. An example is the zebrafish anatomy ontology (ZFA) and the Teleost anatomy ontology (TAO). Terms in the ZFA are in an is_a relationship to those in the TAO, since zebrafish is_a teleost. There will necessarily be terms in TAO that are not in ZFA, and there may also be terms in ZFA that are not in TAO due to level of detail that may be unnecessary for TAO.
There are a number of other ontologies that would be bettered by this type of alignment (any anatomy and CARO or uberon, GO and CL, anatomy and CL, etc.)
requirements in the two ontologies that need aligning:
- xrefs in one of the ontologies
- metadata in the header that specifies the relationship between the terms and their xref'd terms (in the ZFA-TAO example, it would state in ZFA that Xrefs to TAO stand in an is_a relation)
see also: http://obofoundry.org/wiki/index.php/Mappings for more examples of is_a mappings and other types of mappings between ontologies that can be defined in the metadata header.
kinds of differences that need checking/updating:
- terms that are in both ontologies but not xref'd (could be based on structure of ontology and/or term name)
- terms that are in one ontology but not another (terms without xref's)
- terms with xrefs but with different names
- topological inconsistencies (Chris has already set up an "sdiff" tool that does this based on Xrefs)
To see the sdiff reports now, go to http://www.berkeleybop.org/ontologies/ and look at the *.sdiff files.
It would be great if we could use the OE reasoner to suggest these types of fixes. Ideally, one could have a side by side comparison with differences between two ontologies rendered. We'll draw up some mockups of what this might look like and post them here.