DiversityProjects

Model 2.1.24

(1 June, 2025)
Authors M. Weiss, A. Grunz, G. Hagedorn, D. Triebel, S. Seifert
License CC BY-ND 3.0
Suggested citation M. Weiss, A. Grunz, G. Hagedorn, D. Triebel & S. Seifert (2025). DiversityProjects information model (version 2.1.24). http://www.diversityworkbench.net/Portal/DiversityProjectsModel_2.1.24
Notes The model is implemented on MS SQL Server and the data types are also MS SQL Server specific

Introduction:

DiversityProjects is part of the Diversity Workbench. Within this framework the application DiversityProject is the module in which the projects are managed. Projects are used e.g. to bundle specimens or observation in virtual collections. It also allows to model a project hierarchy, but the main use is to manage a project’s metadata and to define the access to the data associated with a project. A project is the basis for the data publication pipelines in Diversity Workbench and the metadata of a project is for example included in the data publication.

All other modules, e.g. DiversityCollection, access DiversityProjects to retrieve the project metadata. DiversityProjects, in turn, accesses other modules such as DiversityAgents to store and link information about e.g. project participants.

The modules communicate with each other to provide their services for the other modules.

Data management sectors of the application

Sector Description
Project The project as main focus of the application
Agent A person, institution related to a project
Resource Resources used for the project
References The references related to the project
Identifier IDs of the project
Descriptor Descriptors of the project
License License related to the project
Archive Archives of the project

Information model

The following sections define the information model used in DiversityProjects. First the ER-diagram is presented to give an overview over the relations between the entities/tables. Then the structure is separately documented for each table with textual information which attributes are stored in which column.

ER-Diagram

Overview over all entities and relations used in the database model

ER-Diagram

TABLES

Table Project

Information on the project

Column Data type Description Nullable Relation
ProjectID int PK, ID of the Project NO -
ProjectParentID int ID of the superior project YES Refers to table Project
Project nvarchar (255) A short title for the project as displayed e.g. for selection from a list in a user interface NO -
ProjectTitle nvarchar (200) An explicit title for the project YES -
ProjectType nvarchar (50) Type of the project YES Refers to table ProjectType_Enum
ProjectDescription nvarchar (MAX) A text, describing characteristic features, e. g. the purpose and scope, of the project YES -
ProjectDescriptionType nvarchar (50) classification of the public description, e. g. abstract YES -
PublicDescription nvarchar (MAX) Public description of the project if different from the description YES -
InternalDescription nvarchar (MAX) Internal description of the project, not to be published YES -
ProjectNotes nvarchar (1000) Internal notes regarding the project, not published on the web YES -
ProjectVersion nvarchar (255) Version number (refers to the database content of this project, not to application development) YES -
ProjectURL varchar (255) An URL where e.g. the project is described YES -
ProjectRights nvarchar (255) The rights, e.g. the copyright of the project YES -
ProjectEditors nvarchar (255) The editors of the project YES -
ProjectInstitution nvarchar (500) The institution responsible for the Project YES -
ProjectSettings xml (MAX) The settings used within the project YES -
ProjectCopyright nvarchar (255) Copyright statement for the data collected for and revised by this project YES -
ProjectLicenseURI nvarchar (255) The license under which the project is re-used or may be re-used YES -
EmbargoDate date The date until which the data should not be published, made available to the public YES -
CreateArchive bit If an archive e.g. by a task schedule should be created YES -
ArchiveProtocol nvarchar (MAX) The protocol created during the last archive YES -
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. This is the operator (or typist) name, which may be different from the person responsible. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when record was first entered (typed or imported) into this system. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() YES -

Depending on:

  • ProjectType_Enum

Table ProjectAgent

The persons or institutions involved in the project

Column Data type Description Nullable Relation
ProjectAgentID int Unique ID for the Agent, Primary key NO -
ProjectID int Refers to the ID of the project (= Foreign key and part of primary key) NO Refers to table Project
AgentName nvarchar (255) The name of the agent. Only cached value where AgentURI is given, Part of PK NO -
AgentURI varchar (255) An URL linked to e.g. the module DiversityAgents within the Diversity Workbench, Part of PK. Default value: '' NO -
AgentType nvarchar (50) The type of the agent, e.g. person or institution as defined in ProjectAgentType_Enum YES Refers to table ProjectAgentType_Enum
AgentRole nvarchar (50) The role of the agent within the project as defined in ProjectAgentRole_Enum YES -
AgentSequence int The sequence of an agent within a project YES -
Notes nvarchar (MAX) Notes about the agent YES -
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. This is the operator (or typist) name, which may be different from the person responsible. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when record was first entered (typed or imported) into this system. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • Project
  • ProjectAgentType_Enum

Table ProjectAgentRole

The role of the person or institution involved in the project

Column Data type Description Nullable Relation
ProjectAgentID int Unique ID for the Agent, Part of primary key NO Refers to table ProjectAgent
AgentRole nvarchar (50) The role of the agent within the project as defined in ProjectAgentRole_Enum NO Refers to table ProjectAgentRole_Enum
ProjectID int Part of PK, ID of the Project NO -
AgentName nvarchar (255) The name of the agent. Only cached value where AgentURI is given NO -
AgentURI varchar (255) An URL linked to e.g. the module DiversityAgents within the Diversity Workbench NO -
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. This is the operator (or typist) name, which may be different from the person responsible. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when record was first entered (typed or imported) into this system. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • ProjectAgent
  • ProjectAgentRole_Enum

Table ProjectArchive

Archives of the project

Column Data type Description Nullable Relation
ProjectID int Part of PK, ID of the Project NO Refers to table Project and table ProjectArchive
ArchiveID int Part of PK, ID of the Archive NO -
ParentArchiveID int The ID of the parent archive YES Refers to table ProjectArchive
Format nvarchar (50) The format of the archive, e.g. SDD, EML, ABCD etc. YES Refers to table ProjectArchiveFormat_Enum
MimeType nvarchar (50) The mime type of the archive, e.g. zip YES Refers to table ProjectArchiveMimeType_Enum
StorageLocation nvarchar (500) The path or URI of the archive file YES -
ExternalStorageLocation nvarchar (500) The path or URI of the archive file as stored on an external server YES -
FileSHA512Hash nvarchar (529) The hash value generated from the file YES -
FileSize int Size of the file in bytes YES -
TransferDate datetime The date and time when the data were transferred from the productive database (Last date and time when changes may have happend). Default value: getdate() YES -
PublicationDate date The date when the archive is published YES -
DataWithholdingReason nvarchar (50) The reason for locking the data from publication. If empty data may be published YES -
Notes nvarchar (MAX) Notes about the archive YES -
Published bit If the dataset is published and no further changes are allowed. Default value: (0) YES -
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. This is the operator (or typist) name, which may be different from the person responsible. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when record was first entered (typed or imported) into this system. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • Project
  • ProjectArchiveFormat_Enum
  • ProjectArchiveMimeType_Enum

Table ProjectArchiveIdentifier

Identifier of archives of the project

Column Data type Description Nullable Relation
ProjectID int Part of PK, ID of the Project NO Refers to table ProjectArchive and table ProjectIdentifier
ArchiveID int Part of PK, ID of the Archive NO Refers to table ProjectArchive
Identifier nvarchar (255) The identifier if archive is linked to an identifier NO Refers to table ProjectIdentifier
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. This is the operator (or typist) name, which may be different from the person responsible. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when record was first entered (typed or imported) into this system. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • ProjectArchive
  • ProjectIdentifier

Table ProjectDescriptor

Object names, event names, keywords, etc., providing indexing information for a resource.

Column Data type Description Nullable Relation
ID int Internal system generated primary key. Note that multiple values for a descriptor concept may be added (e.g. keywords) NO -
ProjectID int ID of the project, foreign key NO Refers to table Project
Language varchar (5) Language in which element content is expressed. Necessary even for numeric or date content (because expressed through string using language-specific conventions). Default value: ’en' NO -
ElementID int ID of a descriptor element concept (foreign key). Default value: (0) NO Refers to table ProjectDescriptorElement
Content nvarchar (255) A name, state, or value text for the descriptor element. Default value: '' NO -
ContentURI varchar (500) The URI of a conceptual ontological resource considered equivalent with the content, especially URIs for taxon names or keywords from ontologies. Default value: '' NO -
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. This is the operator (or typist) name, which may be different from the person responsible. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when record was first entered (typed or imported) into this system. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • Project
  • ProjectDescriptorElement

Table ProjectDescriptorElement

Examples of descriptor elements (= concepts for variables) are keyword, taxon name, pathogen name, host name, or host feature. Association with ResourceCollections is defined in ProjectDescriptorAssociation, relations in Res.DescriptorElementRelation.

Column Data type Description Nullable Relation
ElementID int Numeric identifier (primary key). NO -
ParentElementID int The ID of the parent element YES -
Abbreviation nvarchar (25) Short abbreviated name for descriptor element. Default value: '' NO -
DisplayText nvarchar (80) Concise English label of a descriptor element definition. Default value: '' NO -
DisplayOrder int Order in which elements are displayed independently of a resource collection (for order within a collection see ProjectDescriptorAssociation.DisplayOrder). Default value: (0) NO -
Description nvarchar (1000) A free-form text that may be displayed in user interfaces as explanatory text. Default value: '' NO -
URL varchar (500) The URI of a conceptual ontological resource considered equivalent with this descriptor element. Default value: '' NO -
InternalNotes nvarchar (1000) Internal notes and remarks. Although normally not published in public reports, this should not be used for truly confidential information. Default value: '' NO -
DisplayEnabled bit Whether this DescriptorElement is to be displayed in the user interface. NO -
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. This is the operator (or typist) name, which may be different from the person responsible. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when record was first entered (typed or imported) into this system. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Table ProjectIdentifier

External identifiers for the project, e.g. a DOI

Column Data type Description Nullable Relation
ProjectID int Part of PK, ID of the Project NO Refers to table Project
Identifier nvarchar (255) The name of the agent. Only cached value where AgentURI is given NO -
Type nvarchar (50) The type of the identifier as defined in table ExternalIdentifierType YES Refers to table ProjectIdentifierType
URL varchar (500) A URL with further information about the identifier YES -
Notes nvarchar (MAX) Notes about the identifier YES -
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. This is the operator (or typist) name, which may be different from the person responsible. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when record was first entered (typed or imported) into this system. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • Project
  • ProjectIdentifierType

Table ProjectIdentifierType

The type of an external identier, e.g. DOI

Column Data type Description Nullable Relation
Type nvarchar (50) The type of project identifiers (primary key) NO -
ParentType nvarchar (50) The superior type of this type YES -
URL varchar (500) A URL providing with further information about this type YES -
Description nvarchar (MAX) The description of this type YES -
InternalNotes nvarchar (MAX) Internal notes about the type YES -
LogCreatedWhen datetime Point in time when this data set was created. Default value: getdate() YES -
LogCreatedBy nvarchar (50) Name of the creator of this data set. Default value: suser_sname() YES -
LogUpdatedWhen datetime Point in time when this data set was updated last. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of the person to update this data set last. Default value: suser_sname() YES -
RowGUID uniqueidentifier -. Default value: newid() NO -

Table ProjectLicense

The Licenses within a project

Column Data type Description Nullable Relation
LicenseID int ID of the License, part of primary key NO -
ProjectID int Refers to the ID of the project (= Foreign key and part of primary key) NO Refers to table Project
DisplayText nvarchar (200) A display text as shown in the interface generated by the system or edited by the user YES -
LicenseURI varchar (500) The URL of the license under which the project is re-used or may be re-used YES -
LicenseType nvarchar (500) Type of an official or legal permission to do or own a specified thing, e. g. Creative Common Licenses, Copyright Licenses YES -
LicenseHolder nvarchar (500) The person or institution holding the license YES -
LicenseHolderAgentURI varchar (500) The link to a module containing further information on the person or institution holding the license YES -
LicenseYear nvarchar (50) The year of the license declaration YES -
Context nvarchar (500) The context of the license, e.g. for publication YES -
LicenseDetails nvarchar (500) Details of the license YES -
IPR nvarchar (500) Intellectual Property Rights; the rights given to persons for their intellectual property YES -
IPRHolder nvarchar (500) The person or institution holding the Intellectual Property Rights YES -
IPRHolderAgentURI varchar (500) The link to a module containing further information on the person or institution holding the IPR YES -
CopyrightStatement nvarchar (500) Notice on rights held in and for the resource YES -
CopyrightHolder nvarchar (500) The person or institution holding the copyright YES -
CopyrightHolderAgentURI varchar (500) The link to a module containing further information on the person or institution holding the copyright YES -
Notes nvarchar (MAX) Notes about the license YES -
LogCreatedWhen datetime Point in time when this data set was created. Default value: getdate() YES -
LogCreatedBy nvarchar (50) Name of the creator of this data set. Default value: suser_sname() YES -
LogUpdatedWhen datetime Point in time when this data set was updated last. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of the person to update this data set last. Default value: suser_sname() YES -
RowGUID uniqueidentifier -. Default value: newid() NO -

Depending on:

  • Project

Table ProjectReference

The references related to the project

Column Data type Description Nullable Relation
ProjectID int Refers to the ID of table Project (= Foreign key and part of primary key) NO Refers to table Project
ReferenceTitle nvarchar (500) The title of the data publication of the project data package or literature reference publication where information on the project and/ or on project dataset(s) was published. Note this is only a cached value where ReferenceURI is present NO -
ReferenceURI varchar (255) URI of project data citation/ data package citation or URI of literature reference where information on the project and/ or on project dataset(s) was published, e.g. referring to the module DiversityReferences YES -
ReferenceDetails nvarchar (50) Details within the project data citation/ data package citation, e.g. versioning, or details within the literature reference, e.g. pages YES -
ReferenceType nvarchar (255) The type of the data citation or literature reference YES -
IsCitation bit If a reference is the citation for the project data, i.e. the way the project data should be cited. Default value: (0) NO -
ReferenceCitation nvarchar (500) The way the reference should be cited; suggested citation style YES -
URI nvarchar (500) The URI of a reference YES -
Notes nvarchar (MAX) Notes on the project data citation or literature reference YES -
LogInsertedWhen datetime The time when this dataset was created. Default value: getdate() YES -
LogInsertedBy nvarchar (50) Who created this dataset. Default value: suser_sname() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • Project

Table ProjectResource

Resources of the project

Column Data type Description Nullable Relation
ProjectID int Refers to the ID of the project (= Foreign key and part of primary key) NO Refers to table Project
URI varchar (255) The complete URI address of the resource. NO -
SpecificRights nvarchar (500) The rights, e.g. the copyright of the resource YES -
SpecificLicenseURI nvarchar (500) The license under which the resource is re-used or may be re-used YES -
ResourceURI varchar (255) The URI of the image, e.g. as stored in the module DiversityResources. YES -
Notes nvarchar (MAX) Notes about the resource YES -
LogInsertedWhen datetime The time when this dataset was created. Default value: getdate() YES -
LogInsertedBy nvarchar (50) Who created this dataset. Default value: suser_sname() YES -
LogUpdatedWhen datetime The last time when this dataset was updated. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Who was the last to update this dataset. Default value: suser_sname() YES -
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • Project

Table ProjectSetting

Settings of a project

Column Data type Description Nullable Relation
ProjectID int Refers to the ID of the project (= Foreign key and part of primary key) NO Refers to table Project
SettingID int Refers to ID of Settings, foreign key and part of primary key NO Refers to table Setting
Value nvarchar (MAX) The value of the setting. Default value: '' NO -
LogInsertedBy nvarchar (50) Name of user who first entered (typed or imported) the data. Default value: suser_sname() YES -
LogInsertedWhen smalldatetime Date and time when the data were first entered (typed or imported) into this database. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of user who last updated the data. Default value: suser_sname() YES -
LogUpdatedWhen smalldatetime Date and time when the data were last updated. Default value: getdate() YES -
RowGUID uniqueidentifier -. Default value: newid() NO -

Depending on:

  • Project
  • Setting

Table ProjectUser

The projects available for a user

Column Data type Description Nullable Relation
LoginName nvarchar (50) A login name which the user uses for access the DivesityWorkbench, Microsoft domains, etc.. NO Refers to table UserProxy
ProjectID int ID of the project to which the specimen belongs (Projects are defined in DiversityProjects) NO Refers to table Project
RowGUID uniqueidentifier -. Default value: newsequentialid() NO -

Depending on:

  • Project
  • UserProxy

Table Setting

The settings used within the projects

Column Data type Description Nullable Relation
SettingID int ID of the setting, primary key NO -
ParentSettingID int The ID of the superior setting YES Refers to table Setting
DisplayText nvarchar (50) Short abbreviated description of the setting, displayed in the user interface YES -
Description nvarchar (MAX) Description of the setting YES -
DisplayOrder int The sequence in which the items should be shown in an interface YES -
LogCreatedWhen datetime Point in time when this data set was created. Default value: getdate() YES -
LogCreatedBy nvarchar (50) Name of the creator of this data set. Default value: suser_sname() YES -
LogUpdatedWhen datetime Point in time when this data set was updated last. Default value: getdate() YES -
LogUpdatedBy nvarchar (50) Name of the person to update this data set last. Default value: suser_sname() YES -
RowGUID uniqueidentifier -. Default value: newid() NO -