Project

General

Profile

Actions

Cdm Classification » History » Revision 10

« Previous | Revision 10/60 (diff) | Next »
Andreas Müller, 04/02/2009 12:26 PM


Taxonomic View

This page is thought to explain the idea of a taxonomic view in the CDM

Situation In CDM v1.0

In the version 1.0 of the CDM taxonomic concepts were related to each by the use of Taxon- and SynonymRelationships. The classification of taxa could be expressed by using TaxonRelationships of type "is taxonomically included in". The TaxonRelationship of this type combined 2 taxa of type Taxon with each other one of them being the parent, one being the child. Additional information like a reference (who says it is a child) could also be stored.

Some problems arised by handling taxonomic classifications this way. For example it was impossible to define the whole classification tree and especially the root taxon (or better the root taxa, explanation see below) for this tree (forest). In case of each taxon having a maximum of one parent it was possible in theory as you could traverse the whole graph of taxa and determine the root elements but for performance reason this is a deprecated way to do it and also it has the mentioned limitations.

As a work-around several methods have been implemented to retrieve the root of a taxonomic tree/classification by using queries like "Give me all taxa that do not have any parent". If you wanted to restrict your search on a special taxonomic view, you could additionally pass the sec reference of the root taxon to the method assuming that the sec reference represents more or less the taxonomic view.

This method implies that a taxonomic classification more or less uses taxa that all use the same reference. This may be the preferred way of handling taxa in the pure way (a taxon name mentioned in a taxonomic classification is something slightly different compared to the same taxon name mentioned somewhere else). However often users want to go an other way and for example "reuse" taxa. This means the same taxon can be used in different taxanomic views. Therefor the taxa of different views may have very different sec references and may also have multiple parents.

Also on the programmatic side there was a serious limitation as for performance reasons the CDM Library stored the parent of a taxon in a cache field. This definetly worked only if a taxon has not more then one taxon.

Solution for CDM v2.0

To overcome the problems mentioned above the following solution that separates classification from concept data is proposed for CDM v2.0.

  1. Creating a new class TaxonomicView that represents one classification / taxonomic view. A taxonomic view may consist of several distinct trees as not all the parts of the classification may be known yet. Therefore there may be multiple root nodes in the view. Therefore in general the taxonomic view rather represents a forest than a tree also the idea is that the abstract objects it represents is exactly one tree contains all included taxa and there relationship.

  2. Creating a new class TaxonNode that represents a taxon within its classification and also knows about its unique parent (the parent within the respective classification)

  3. Deleting the taxon relationship type "is taxonomically included in" from the list of TaxonRelationshipTypes.

  4. Separating business logic that handles classification logic in the Taxon class and moving it mainly to the TaxonNode class.

The resulting model (except for operations) may look like the following

!taxonomicView.png!

Merging of taxonomic views

Sometimes it may be needed to merge 2 taxonomic views. This may be the case when

  • It shows that the 2 taxonomic views belong to the same general view but represent different and distinct parts of it. This case is easy to implement by changing the taxonomic view information of all taxon nodes of the first view to the second and accordingly updating the list of nodes in the second view. The first view will not be deleted (as it may be identifiable) but gets an attribute TaxonomicView mergedInto that points to the second view.

  • xxx

Use Of Synonyms

Synonyms in general are handled on the concept level not on the classification level. Anyway some users expressed there need to use a concept defined somewhere but using a synonym name within the taxonomic view they handle.

There are different possibilities to handle this situation:

  • xxx

Updated by Andreas Müller about 15 years ago · 10 revisions