[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Subject Index][Author Index]

Re: Rank taxonomy (was Re: Cladism (akin to masochism))



>>   Cool.  Now the question is, are the names just put into a list?  I.e. you
>>just have a column of names going from the species all the way back to that
>>first blue-green algae?
>>
>>    Deinonychus
>>    Deinonychosauria
>>    Maniraptora
>>    Coelurosauria
>>    Tetanurae
>>    Theropoda
>>    etc.
>>
>>    is going to be damn difficult to represent in a relational database......
>
>Actually its fairly easy. Ages ago (before I knew anything about
>cladistics), I started to set up a database of dinosaur clasifications.
>
>I started out setting up by tables for class, subclass, order, suborder,
>infraorder, etc. This quickly became unworkable as new levels kept
>appearing, while there were lots of species which skipped levels.
>
>I then redesigned the database to just use one table which was something like:
>
>                +---------------+
>                | Node No       |<--+
>                | Name          |   |
>                | Level         |   |
>                | Parent No     |---+
>                | (other fields |
>                +---------------+
>
>This was using linnean taxonomy so the level field would contain "class",
>"order" or whatever. By the sound of things, this field could be left out in
>a caldistic database.
>
>I'm not sure if the above is very coherent (its very late and I should be in
>bed), so I'll give an example of your dinosaur (throwing in one or two extra
>nodes).
>
>        Node No         Name                    Parent No
>        1               Dinosauria              NULL
>        2               Saurischia              1
>        3               Ornithaschia            1
>        4               Theropoda               2
>        5               Saurapodamorpha         2
>        6               Tetanurae               4
>        7               Coelurosauria           6
>        8               Maniraptora             7
>        9               Deinonychosauria        8
>        10              Deinonychus             9
>        11              Dromaeosaurus           9
>
>Please forgive any spelling (or other) mistakes. As I say, its late.
>

   Looks like I'll adopt this way of doing things, although I'm probably not
going to use node numbers (IF I can get MS-Access to set up a cascading
referential integrity constraint between two fields in the same table).  Thanks.

   The problem now becomes pulling all the clades for a single animal from
top to bottom.  Recursive joins of unknown number can't be done in SQL.  May
have to write a C program to do it (ugh).

** "A warp core breach is imminent?     ** "Those who trade a little freedom **
** This calls for the handyman's secret ** for a little security will soon   **
** weapon, duct tape." --- Red Green,   ** find that they have none of       **
** Chief Engineer, U.S.S. Voyager       ** either." --- Jeff Poling          **