A Species has_many Classifications

 

An issue that I need to address while creating species concepts is what to do about alternative classifications. One solution is to simply choose one classification. Unfortunately, I can't find one best classification. My current alternatives are the NCBI Taxonomy, ITIS, Catalog of Life 2010, and DBpedia. Each of these alternatives have their strengths and weaknesses.

In GeoSpecies Knowledge Base,  there is only one classification. The GeoSpecies species have a set of link outs to URI's for families, orders, classes, phyla and kingdoms in addition to species. This structure has proven too problematic and difficult to maintain. It also does not accurately represent the reality that a species can have many classifications.

The diversity of alternative classifications might be best represented as links to alternative classification ontologies. Each classification would be modeled as an OWL ontology in Protege. Species concepts would then be linked to the lowest appropriate place in each ontology. I have started creating some of these in Protege, but creating these manually takes a lot of time.

One of these ontologies maps to the Catalog of Life 2010 to the class level. Each of the TaxonConcept species concepts are linked to a  Catalog of Life 2010 Ontology at the Class level, and the existing DBpedia ontology at Eukaryote, Animal, Mammal, Bird, Insect, Arachnid, depending on which is most appropriate.

Here is an example of this linking:

 In the future, I hope to have some of these to order or family. This would allow systems to infer that if something is in ITIS "Salticidae" then it is an Arthropod, or if something is in DBpedia "Mammal" it is also a "Eukaryote". 

Since each of these species concepts links to a number of alternative classifications, the fact that each species can have many classifications is better represented.

I would be interested to hear what others think of this architecture. Is there a potentially better way to represent the same kind of relationships?