DataCite
DataCite MDS API Application
The DataCite Metadata Store (MDS) API[1] is going to be used for Hub dataset Digital Identifier Object (DOI) and corresponding metadata creation and update.
1. Introduction
The DataCite Metadata Store (MDS) API is the default API for registering DataCite DOIs and associated metadata. Below shows the requirements for using the MDS API.
(1) The API requires authentication. If your hub or university is member of DataCite and has DataCite credentials then you can configure DataCite to mint DOIs for your hub's publications and tools. DataCite also has a testing guide to help with troubleshooting.
(2) DataCite assigns the DOI prefix.
(3) DOI request needs to transfer through HTTPS.
(4) HTTP basic authentication is performed in the DataCite Metadata Store API usage.
2. DOI register
The DOI registration takes two steps, first is to register DOI metadata, and second is to register the DOI name and dataset URL.
2.1 Registering DOI metadata
The DOI metadata for dataset includes title, author, dates, description, and so on. All the metadata that a hub collects for a dataset shows in table 1. Metadata element |
Explanation |
Identifier |
Identifier type is doi, and the value of identifier is the doi. |
Creators/creator/creatorName |
Author(s) of the dataset |
nameIdentifier |
nameIdentifierScheme is ORCID, and value is the ORICID. |
titles/title |
Name of the dataset. |
publisher |
Holder of the dataset |
publicationYear |
The year when the dataset is published |
Contributors/contributor/contributorName |
Project leader's name |
dates |
There are two metadata elements, one is when dataType is Valid, the value is the date when the dataset is submitted on the hub; Another is when the datatype is Accepted, the value is the date when the dataset is approved for publish on the hub. |
language |
It is set to en by default |
resourceType |
resourceTypeGeneral is set to the resourceType designated by the hub. The value is the resourceTypeTitle. |
RelatedIdentifiers/relatedIdentifier |
relatedIdentifierType is DOI, relationType is IsNewVersionOf, and the value is the relatedDoi, which is DOI of the resource that reference this dataset. |
version |
Publication version |
rights |
The license that user selects in the dataset submission workflow on the hub |
Descriptions/description |
DescriptionType is Abstract, and the value is the abstract of the dataset |
The metadata elements in table 1 are saved in xml format as showing below.
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.1/metadata.xsd">
<identifier identifierType="DOI">doi</identifier>
<creators>
<creator>
<creatorName>name 1</creatorName>
</creator>
<creator>
<creatorName>name 2</creatorName>
</creator>
<creator>
<creatorName>name 3</creatorName>
</creator>
<creator>
<creatorName>name 4</creatorName>
<nameIdentifier nameIdentifierScheme="ORCID">orcid goes here</nameIdentifier>
</creator>
</creators>
<titles>
<title>title</title>
</titles>
<publisher>YOUR HUB's NAME</publisher>
<publicationYear>year</publicationYear>
<contributors>
<contributor contributorType="ProjectLeader">
<contributorName>name</contributorName>
</contributor>
</contributors>
<dates>
<date dateType="Valid">date</date>
<date dateType="Accepted">date</date>
</dates>
<language>en</language>
<resourceType resourceTypeGeneral="Dataset">Datasets</resourceType>
<version>1.0</version>
<rights>Attribution 3.0 Unporte</rights>
<descriptions>
<description descriptionType="Abstract">
Description goes here
</description>
</descriptions>
</resource>
All the metadata elements conform to the DataCite metadata schema [2] standards.
The MDS API can generate random DOI name when prefix is included in the metadata registration. The identifier in the metadata xml can be left empty in this case.
The curl package can be used to submit the metadata to MDS service, see example below. Note that the [PREFIX] would need to be replaced with your hub's DataCite prefix.
curl -H "Content-Type:application/xml;charset=UTF-8" -X PUT -i --user username:password -d @[PREFIX].xml https://mds.test.datacite.org/metadata/10.5072
The response to the call above is OK ([PREFIX]/XXXX-XXXX). We need take the DOI out from there and use for further process.
The identifier value in the metadata xml on DataCite will be replaced by the DOI name that is created in this step.
The DOI is set to Draft state [3] after the metadata are registered.
1.2.2 Registering the URL
The second step is to register the DOI name and the URL that refers to the dataset. Below is an example of the curl command. Note that DOI name and URL to the dataset is included.
curl -H "Content-Type:text/plain;charset=UTF-8" -X PUT --user username:password -d $'doi=[PREFIX]/0000-03VCnurl=http://example.org/publications/1' https://mds.test.datacite.org/doi/10.5072/0000-03VC
The DOI transits from Draft state to Findable state after the DOI name and URL is registered.
Below table includes the endpoint and other useful information that need to use in the DOI registration in production. The endpoint, prefix, username and password need to be configured on the admin interface for any development and production environments. |
Value |
DOI prefix |
[PREFIX] |
MDS production endpoint |
https://mds.datacite.org |
2. Update DOI Metadata Records
Update the DOI metadata is the same as storing a new version of the DOI metadata. According to the MDS API document, we need to issue a post of the metadata xml to DataCite. Below is an example on what the curl command should look like for such operation.
$ curl -H "Content-Type: application/xml;charset=UTF-8" -X POST -i --user username:password -d @[PREFIX]/JQX3-61AT.xml https://mds.test.datacite.org/metadata
Reference list
1. https://support.datacite.org/docs/mds-api-guide
2. http://schema.datacite.org/
3. https://support.datacite.org/docs/doi-states
4. https://support.datacite.org/docs/testing-guide
Switching from EZID to DataCite
- Navigate to /administrator and login to the backend of the Hub
- Click on Components and then select Publications
- Click on Options and then click on DOI Configuration
- Note: You will only be able to access the Options button if you are a super user.
- Locate Enable DataCite or EZID DOI Service and select from the drop-down the appropriate option
- Note: When the "DataCite" is selected, the DataCite DOI service is activated and only DataCite related options on the configuration form are going to show up. When "EZID" is selected, EZID DOI service is activated and only EZID related options on the configuration form are going to show up. When "None" is selected, all options related to DOI service will be hidden. When users publish a dataset in this case, a message saying that "No DOI service is selected and please contact site administrator" is popping up.
- Click Save & Close