Click to login

SFS database design


Home    

Design details and issues

This portion of the Internet site contains many technical details and unresolved issues.  It is intended primarily for those involved in the design and development of Species File Software.  Other interested persons are welcome to review these pages.  Unresolved design issues are shown in contrasting color.  Version specific features are noted by highlighted text.  Comments, criticisms and suggestions are welcome from casual readers as well as from members of the design group.  The input will help us to produce a better service.  Send comments to David Eades (send mail).

The narrative below is divided into Access levels, Software selected, Table relationships, Table structure, and URL entry points.  A separate page describes the treatment for taxon names and concepts.

Access levels

Species File Software provides four different levels of access using the Internet.  The first is open to the public; the other three require logging in with a password.

  1. Information contained in species files is available to the public except for a small number of items that carry restricted access codes.  (The restricted access codes are used primarily for software testing purposes, but can be used for unpublished information.)
  2. Edit access is available to taxonomists and others who add and modify the data.
  3. Administrative access allows additional functions and requires greater familiarity with the internal database structure.
  4. Secure access provides the ability to manage the access levels of other users and information useful for software development.

Software selected

The database behind the website was originally on FileMaker Pro, moved to MS Access, moved again to MS SQL Server.  The greater complexity of SQL Server has made the task more difficult, but it has allowed the addition of more complex programming that does a better job of detecting and preventing user errors in updating the data.

Programming for the Orthoptera Species File was initially done with MS Visual Interdev.  The web pages are published using HTML 4.  The Active Server Pages (ASP) use Visual Basic Script.  Client side programming is done using JavaScript.  Web pages can be viewed using Microsoft Internet Explorer, version 4 and higher, or Netscape Navigator, version 4 and higher.  Current work is done using Visual Studio.NET.  The conversion from ASP to ASP.NET and from Visual Basic Script to Visual Basic.NET was completed in November 2003.

Table relationships

The following diagrams show relationships within and between tables.

Table structure

The database contains the tables shown below.  Tables marked as "shared across files" are located in SFSdb, a database associated with this website.  All other tables have separate copies in each species file.  (Security related items are not listed.)
  • Data about taxa
    • tblTaxa, taxon names at all ranks, including synonyms.
    • tblRelatedTaxa, linking table to record nomenclatural relationships between taxonomic names.
    • tblRanks, ranks in the taxonomic hierarchy, shared across files.
    • tblImages, images of specimens, distribution maps, habitats, etc.
    • tblMIME (Multipurpose Internet Mail Extension code), supported image types, shared across files.
    • tblImageTypes, type of image.
    • tblSounds, sound recordings.
    • tblSupplTaxonInfo, supplementary information about taxa.
    • tblExperts, information about experts familiar with taxa.
    • tblSources, references to sources of images, sound recordings and other data.
    • tblLinks, hyperlinks to other websites with information about a taxon.
    • tblWebsites, information about other websites.
    • tblCommonNames, common names for taxa.
    • tblLanguages, the language used.
    • tblTypeGenera, citation to genus that is type for a family-group name and to oldest use of a name based on the same genus.
    • tblTypeSpecies, citation to species that is type for a genus-group name.
    • tblTypeSpeciesReasons, reasons a type species has been validly designated, shared across files.
    • tblEcoRoles, ecological roles
    • tblEcoRelationships, ecological relationships
    • tblOtherEcoTaxa, taxa in ecological relationships but outside the primary scope
    • tblLevel3Dist, recorded occurences in geographic level 3 areas, added in version 3.4
  • Data about specimens
    • tblSpecimens, information about specimens.
    • tblDepos, depositories that hold specimens.
    • tblSpecimenStatus, lost, lost?, missing, missing?, etc., shared across files.
    • tblSexes, sex and maturity classification for specimens, shared across files.
    • tblIdentifications, record of identifications on labels or in publications.
    • tblTypeKinds, holotype, lectotype, neotype, etc., shared across files.
    • tblLocalities, information about localities where specimens were found including geologic time period.
    • tblGeoLevel1, continent or other major part of the world, shared across files.
    • tblGeoLevel2, region or large country, shared across species files, shared across files.
    • tblGeoLevel3, country or portion of large country, shared across files.
    • tblGeoLevel4, county or other smaller area, shared across files.
    • tblGazetteer, listing of names and the corresponding values in the preceding four tables, used with human data entry, shared across files.
    • tblGeoConvert1, 2, 3, 3A and 4, data used to help convert localities to standardized codes in automated process. should be shared across species files.
    • tblTDWGtoITIS, for conversion of the TDWG geo classification to the ITIS geo classification. should be shared across species files.
    • tblTimePeriods, geologic time period, shared across files.
    • tblCollectEvents, information about the date and collector.
  • Data about literature citations, etc.
    • tblAddrCountries, a list of countries used in the address book.
    • tblAddrStates, a list of states used in the address book.
    • tblCites, citations to a reference, associated with a specific taxon.
    • tblCiteTypes, relationship of citation to the status of a name, deleted in version 3.3
    • tblCiteContentFlags, flags that identify information contained in citations, shared across files, developed in version 3.3
    • tblRefs, references found in publications.
    • tblRefAuthors, linking table to match references with authors.
    • tblPeople, names of people (mainly authors) including misspellings, etc.
    • tblPeopleReg, registry of data about authors shared across species files, shared across files, for future development
    • tblPendingPeopleFiles, a linking table used to track the reconciliation of data in tblPeopleReg and the separate tblPeople in different species files, shared across files, for future development
    • tblPubs, names of publications including misspellings, etc.
    • tblPubReg, registry of data about publications, shared across files, for development in version 3.4 
    • tblPendingPubFiles, linking table used to track the reconciliation of data in tblPubReg and the separate tblPubs in different species files, shared across files, for development in version 3.4 
    • tblNomenclator, name combinations at rank of genus or lower.
    • tblGenusNames, generic name for lookup in tblNomenclator.
    • tblSpeciesNames, species name for lookup in tblNomenclator.
    • tblScrutinies, years and comments from persons working on this database.
    • tblTaxonScrutinies, linking table to match taxa with scrutinies.
    • tblScrutinyAuthors, linking table to match scrutinies with persons.
  • Data for keys
    • tblKeyGroups, groups of one or more taxa that can be separated by using a key block.
    • tblGroupTaxa, subordinate to tblKeyGroups, included or excluded members of a group based on a taxon listed in tblKeyGroups.
    • tblKeyBlocks, decision blocks for working through keys.
    • tblKeyChars, pool of characters available for use in key blocks.
    • tblCharTypes, types of characters, for future development
    • tblKeyCharStates, subordinate to tblKeyChars, description of each character state for each character.
    • tblCharStateDetails, subordinate to tblKeyCharStates, display details for character states.
    • tblKeyBlockChars, linking table to match blocks and characters.
    • tblKeyBlockBranches, subordinate to tblKeyBlocks, list giving group selected for each branch.
    • tblBlockCharStates, linking table to match block character (specific to block) with key character (pool of all characters).
    • tblBranchCharStates, linking table for block to match branch with character state.
  • Data about log entries
    • tblEditLog, log of entries that alter the content of tables in species file databases.
    • tblSFSeditLog, log of entries that alter the content of tables in SFSdb (the shared database), shared across files, developed in version 3.3.
    • tblTestLog, log of test program runs and results.
  • Miscellaneous
    • tblConstants, constant values to be referenced by programs.
    • tblGlossary, words that are recognized in a glossary search.
    • tblFiles, data about the status of various species files, shared across files 
    • tblSources, sources of data in tables in SFSdb

URL entry points

The recommended entry point is "http://[SpeciesFileName].SpeciesFile.org".  Replace "SpeciesFileName" with the name of the taxonomic group such as "Orthoptera."  In addition there are special entry points provided primarily for use in links from other websites, but available to anyone.  When a specific taxon is desired, and the rank is subgenus or higher, use "http://[SpeciesFileName].SpeciesFile.org?TaxonName=" plus the name of the taxon.  When the desired taxon is below the rank of subgenus, use "http://[SpeciesFileName].SpeciesFile.org?Genus=[genus name]&Species=[species name]&Subspecies=[subspecies name]".  Any of these parameters may be omitted.  Replace "[xxx name]" with the actual name.  If a space is included within a name, quotation marks must be placed around the name.  For those who coordinate data with a TaxonNameID, an additional entry point is "http://[SpeciesFileName].SpeciesFile.org?TaxonNameID=" plus the value of the TaxonNameID.

Some additional entry points are supported, either because they were used in older versions or because some users store bookmarks in their browsers.  Although these other entry points work now, there is no assurance that they will continue to work in the future.