Current Data Model
All metadata are modelled according to the model as described in the following.
There are two schemas for metadata: draft
and final
.
Final describes the metadata as they should be in the end,
draft has fewer constraints, in case the metadata is not yet complete.
Any metadata of a project that is marked as Finished
must use the final schema,
metadata of a projects that are marked as Ongoing
may use the draft schema.
The two schemas can be found here.
The following description is based on the final schema.
Top Level
A set of metadata consists of the following top-level elements:
- Project
- Dataset
- Person
- Organization
- Grant
Each of these elements is an entity identified by a unique identifier.
Other elements can refer to these entities by their identifier.
Any other metadata element may itself be a complex object,
but it is always part of one of the top-level elements.
Such elements do not have an identifier,
but are identified by their position in the hierarchy.
Field |
Type |
Cardinality |
$schema |
string |
0-1 |
project |
project |
1 |
datasets |
dataset[] |
1-n |
persons |
person[] |
0-n |
organizations |
organization[] |
0-n |
grants |
grant[] |
0-n |
Types
Entity Types
Project
Field |
Type |
Cardinality |
Restrictions |
__type |
string |
1 |
Literal "Project" |
shortcode |
string |
1 |
4 char hexadecimal |
status |
string |
1 |
Literal "Ongoing" or "Finished" |
name |
string |
1 |
|
description |
lang_string |
1 |
|
startDate |
date |
1 |
String of format "YYYY-MM-DD" |
teaserText |
string |
1 |
|
url |
url |
1 |
|
howToCite |
string |
1 |
|
datasets |
id[] |
1-n |
String containing the identifier of a dataset |
keywords |
lang_string[] |
1-n |
|
disciplines |
lang_string|url[] |
1-n |
|
temporalCoverage |
lang_string|url[] |
1-n |
|
spatialCoverage |
url[] |
1-n |
|
funders |
id[] |
1-n |
String containing the identifier of a person or organization |
endDate |
date |
0-1 |
String of format "YYYY-MM-DD" |
secondaryURL |
url |
0-1 |
|
dataManagementPlan |
dmp |
0-1 |
|
contactPoint |
id |
0-1 |
String containing the identifier of a person or organization |
publications |
publication[] |
0-n |
|
grants |
id[] |
0-n |
String containing the identifier of a grant |
alternativeNames |
lang_string[] |
0-n |
|
Dataset
Field |
Type |
Cardinality |
Restrictions |
__id |
string |
1 |
|
__type |
string |
1 |
Literal "Dataset" |
title |
string |
1 |
|
accessConditions |
string |
1 |
Literal "open", "restricted" or "closed" |
howToCite |
string |
1 |
|
status |
string |
1 |
Literal "In Planning", "Ongoing", "On hold", "Finished" |
abstract |
lang_string|url |
1-n |
|
typeOfData |
string[] |
1-n |
Literal "XML", "Text", "Image", "Video", "Audio" |
licenses |
license[] |
1-n |
|
languages |
lang_string[] |
1-n |
|
attributions |
attribution[] |
1-n |
|
datePublished |
date |
0-1 |
|
dateCreated |
date |
0-1 |
|
dateModified |
date |
0-1 |
|
distribution |
url |
0-1 |
|
alternativeTitles |
lang_string[] |
0-n |
|
urls |
url[] |
0-n |
|
additional |
lang_string|url |
0-n |
|
Person
Field |
Type |
Cardinality |
Restrictions |
__id |
string |
1 |
|
__type |
string |
1 |
Literal 'Person' |
givenNames |
string[] |
1-n |
|
familyNames |
string[] |
1-n |
|
jobTitles |
string[] |
0-n |
|
affiliations |
id[] |
0-n |
Organization IDs |
address |
address |
0-1 |
|
email |
string |
0-1 |
|
secondaryEmail |
string |
0-1 |
|
authorityRefs |
url[] |
0-n |
References to external authority files |
Organization
Field |
Type |
Cardinality |
Restrictions |
__id |
string |
1 |
|
__type |
string |
1 |
Literal 'Organization' |
name |
string |
1 |
|
url |
url |
1 |
|
address |
address |
0-1 |
|
email |
string |
0-1 |
|
alternativeName |
lang_string |
0-1 |
|
authorityRefs |
url[] |
0-n |
References to external authority files |
Grant
Field |
Type |
Cardinality |
Restrictions |
__id |
string |
1 |
|
__type |
string |
1 |
Literal 'Grant' |
funders |
id[] |
1-n |
Person or Organization IDs |
number |
string |
0-1 |
|
name |
string |
0-1 |
|
url |
url |
0-1 |
|
Value Types
String with Language Tag (lang_string
)
Object with an ISO language code as key and a string as value.
{
"en": "Lorem ipsum in English.",
"de": "Lorem ipsum auf Deutsch."
}
Date
String with the format YYYY-MM-DD
.
URL
An object representing a URL.
Depending on the type
field,
the URL may be a generic URL
or a more specific link, like a PID
or a reference to a resource in an external authority file.
Field |
Type |
Cardinality |
Restrictions |
__type |
string |
1 |
Literal 'URL' |
type |
string |
1 |
Literal 'URL', 'Geonames', 'Pleiades', 'Skos', 'Periodo', 'Chronontology', 'GND', 'VIAF', 'Grid', 'ORCID', 'Creative Commons', 'DOI', 'ARK' |
url |
string |
1 |
|
text |
string |
0-1 |
|
Data Management Plan (dmp
)
Field |
Type |
Cardinality |
Restrictions |
__type |
string |
1 |
Literal 'DataManagementPlan' |
`available |
boolean |
0-1 |
|
url |
url |
0-1 |
|
Publication
Field |
Type |
Cardinality |
Restrictions |
text |
string |
1 |
|
url |
url |
0-1 |
|
Address
Field |
Type |
Cardinality |
Restrictions |
__type |
string |
1 |
Literal 'Address' |
street |
string |
1 |
|
postalCode |
string |
1 |
|
locality |
string |
1 |
|
country |
string |
1 |
|
canton |
string |
0-1 |
|
additional |
string |
0-1 |
|
License
Field |
Type |
Cardinality |
Restrictions |
__type |
string |
1 |
Literal 'License' |
license |
url |
1 |
|
date |
date |
1 |
|
details |
string |
0-1 |
|
Attribution
Field |
Type |
Cardinality |
Restrictions |
__type |
string |
1 |
Literal 'Attribution' |
agent |
string |
1 |
|
roles |
string |
1-n |
|
Entity-Relationship Diagram
erDiagram
project ||--|{ dataset : datasets
project ||--|| person : contactPoint
project ||--|| organization : contactPoint
project ||--|{ person : funders
project ||--|{ organization : funders
project ||--|{ grant : grants
person ||--|{ organization : affiliations
grant ||--|{ organization : funders
grant ||--|{ person : funders
project {
string __type "1; Literal 'Project'"
string shortcode "1"
string status "1; Literal 'Ongoing' or 'Finished'"
string name "1"
lang_string description "1"
date startDate "1"
string teaserText "1"
url url "1"
string howToCite "1"
id[] datasets "1-n; Dataset IDs"
lang_string[] keywords "1-n"
lang_string_or_url[] disciplines "1-n"
lang_string_or_url[] temporalCoverage "1-n"
url[] spatialCoverage "1-n"
id[] funders "1-n; Person or Organization IDs"
date endDate "0-1"
url secondaryURL "0-1"
dmp dataManagementPlan "0-1"
id contactPoint "0-1"
publication[] publications "0-n"
id[] grants "0-n"
lang_string[] alternativeNames "0-n"
}
dataset {
string __id "1"
string __type "1; Literal 'Dataset'"
string title "1"
string accessConditions "1; Literal 'open', 'restricted' or 'closed'"
string howToCite "1"
string status "1; Literal 'In Planning', 'Ongoing', 'On hold', 'Finished'"
lang_string_or_url[] abstract "1-n"
string[] typeOfData "1-n; Literal 'XML', 'Text', 'Image', 'Video', 'Audio'"
license[] licenses "1-n"
lang_string[] languages "1-n"
attribution[] attributions "1-n"
date datePublished "0-1"
date dateCreated "0-1"
date dateModified "0-1"
url distribution "0-1"
lang_string[] alternativeTitles "0-n"
url[] urls "0-n"
lang_string_or_url[] additional "0-n"
}
person {
string __id "1"
string __type "1; Literal 'Person'"
string[] givenNames "1-n"
string[] familyNames "1-n"
string[] jobTitles "0-n"
id[] affiliations "0-n; Organization IDs"
address address "0-1"
string email "0-1"
string secondaryEmail "0-1"
url[] authorityRefs "0-n"
}
organization {
string __id "1"
string __type "1; Literal 'Organization'"
string name "1"
url url "1"
address address "0-1"
string email "0-1"
lang_string alternativeName "0-1"
url[] authorityRefs "0-n"
}
grant {
string __id "1"
string __type "1; Literal 'Grant'"
id[] funders "1-n; Person or Organization IDs"
string number "0-1"
string name "0-1"
url url "0-1"
}
Legacy docs
The legacy documentation can be found here.
This includes thoughts on mappings to external aggregators
and on RDF representation of the metadata.