Location: PHPKode > projects > NCD Toolkit > ncdtoolkit1.2/DEVELOPERS.txt
DEVELOPERS DOCUMENTATION
========================

This document describes the components of the NCD toolkit  version 1.0 and the NCD concepts covered in the toolkit. 
The NCD toolkit is open source software with GNU general public licence (see licence.txt). The toolkit does not use any external libraries.


DATABASE
=========

The toolkit uses a MySQL database with UTF8 MyISAM tables. The database stores globally unique id's for every collection,  institution and person record (UUID). Passwords are stored with AES encryption. The database has been designed in such a  way that collections are either associated with institutions or persons. Persons are either associated with an institution or they are private collectors. Language-dependent fields are organized in separate tables (e.g. Collections vs CollectionDataByLanguage). The database is designed to be compliant with NCD 0.8 (see http://www.tdwg.org). Keywords in the database are also derived from NCD. 

See readme.txt for more information about NCD. Data integrity is enforced through the PHP interface. Data is stored in UTF8 encoding. 
Logos are stored as URLs in the database.


DATA MODEL
==========

The toolkit uses the following tables:
 
   * CollectionAlternativeIDs: this table can be used to store original IDs of imported collections from another source.
   * CollectionCollectorNameCoverage: collector coverage keywords
   * CollectionCommonNameCoverage: common name coverage keywords
   * CollectionConservationStatuses: conservation status keywords, linked to McGinleyConservationStatuses table
   * CollectionDataByLanguage: language specific collection data
   * CollectionExpeditionNameCoverage: expedition coverage keywords
   * CollectionExtents: extents keywords
   * CollectionFileFormats: file format keywords
   * CollectionFormationPeriods: formation keywords
   * CollectionGeospatialCoverage: geospatial coverage keywords
   * CollectionItemLevelAccess: item level access keywords
   * CollectionKingdomCoverage: kingdom coverage keywords, linked to Kingdoms table
   * CollectionLivingTimePeriodCoverage: living time period coverage keywords
   * CollectionMedia: media keywords
   * CollectionRelations: related materials keywords
   * CollectionSpecimenPreservationMethods: preservation keywords, linked to SpecimenPreservationMethods table
   * CollectionTaxonCoverage: taxon coverage keywords
   * CollectionTypes: pick list with collection types
   * CollectionTypesToCollection: table linking collection types to collection
   * Collections: non-language specific collection data
   * CollectionsToInstitutions: table linking collections to institutions
   * Countries: pick list with countries
   * DevelopmentStatuses: pick list with development statuses
   * Help: pick list with text for help balloons
   * InstitutionAcronyms: pick list with countries
   * InstitutionAlternativeIDs: original IDs of imported institutions
   * InstitutionDataByLanguage: language specific institution data
   * InstitutionTypeToInstitution: table linking institution types to institutions
   * InstitutionTypes: pick list with institution types
   * Institutions: non-language specific institution data
   * Kingdoms: pick list with kingdoms
   * Languages: pick list with selected languages and their ISO codes
   * McGinleyConservationStatuses: pick list with McGinley conservation statutes
   * PersonAlternativeIDs: original IDs of imported persons
   * PersonRoles: roles of persons
   * PersonToCollections: table linking persons to collections
   * PersonToInstitutions: table linking persons to institutions, including address data
   * Persons: person data
   * PrimaryGroupingPrinciples: pick list with primary grouping principles
   * PrimaryPurposes: pick list with primary purposes
   * PrivateCollections: table linking collections to persons not associated with institutes
   * PrivateCollectorAddresses: address data of persons not associated with institutes
   * RelatedCollections: related collection keywords
   * Settings: id of second language used in toolkit, default rights texts
   * SpecimenPreservationMethods: pick list with specimen preservation methods
   * UserGroups: user groups in toolkit (part of user management)
   * UserRoles: user roles in toolkit (part of user management)
   * Users: users in toolkit (part of user management)


NCD CONCEPTS
============

The toolkit is designed to support almost all concepts specified in NCD. A few terms in the NCD schema are not supported however, and
the NCD toolkit supports a few concepts that are not currently present in NCD.

Present in NCD schema but not in the toolkit interface:

   * DerivedCollection: the toolkit supports only real collections, not derived collections like database queries. 
   * AlternativeID (for institutions, collections and persons): these fields are useful to store original IDs after an import, 
     but the toolkit was designed specifically to create original content; note that the database contains the appropriate tables 
     so this information can be stored for imported records
   * AssociatedAgent: not supported because there is already mandatory information stored for the associated institution and/or person
   * Rights, AccesRights and UsageRestrictions are only supported in English in the toolkit.
   * Birthdate: this V-Card entry was omitted

Present in NCD toolkit interface but not in the schema:

   * Institution visitor address
   * Institution description
   * Notes can be specified in different languages in the toolkit


MANDATORY FIELDS
================

The NCD schema is very loose in the sense that only a few terms are mandatory. The NCD toolkit is slightly more restrictive, 
in particular when concerning relations between institutions, collections and persons. Mandatory fields are marked with an asterisk in the NCD toolkit interface.


EXPORT
=======

The toolkit supports export into NCD 0.8 compliant XML files. These files are stored in the directory 'export'. Exports are not validated by default, but can be validated against the normative NCD XML schema. This can be done by setting 'USE_VALIDATION' in the settings file (settings.inc.php) to true. NB: this is highly experimental and requires PHP5.1.

Because of limitations of the current NCD schema, not all data can be exported in NCD. This includes URLs, fax numbers, logo URLs, 
itemlevel descriptions and the custom toolkit fields not supported by NCD (institution description and visitor address).

Return current item: NCD Toolkit