Digital Object Identifier (DOI)¶
Configuration¶
DataCite API is used to create DOI.
Configure the API access point in the admin console > settings
:
![../../_images/doi-admin-console.png](../../_images/doi-admin-console.png)
A record can be downloaded using the DataCite format from the API using: http://localhost:8080/geonetwork/srv/api/records/da165110-88fd-11da-a88f-000d939bc5d8/formatters/datacite?output=xml
Creating the DOI¶
Once configured, DOI can be created using the interface. DOI is created on demand. It means that a user must ask for creation of a DOI. When created, the task is notified by email to the reviewer of the group (by default, can be configured for administrator only).
![../../_images/doi-request-menu.png](../../_images/doi-request-menu.png)
The task is assigned to a specific user. An optional due date and comment can be defined:
![../../_images/doi-request-popup.png](../../_images/doi-request-popup.png)
After submission of the task, the task owner is notified by email (if the mail server is configured, see admin console > settings). The task can then be resolved in the admin console > information > versionning section.
For DOI creation, the task is a 2 steps actions:
- First check if all prerequisite are covered (below the record is not valid in DataCite format)
The DataCite format requires some mandatory fields:
- Identifier (with mandatory type sub-property)
- Creator (with optional given name, family name, name identifier and affiliation sub-properties)
- Title (with optional type sub-properties)
- Publisher
- PublicationYear
- ResourceType (with mandatory general type description subproperty)
See http://schema.datacite.org/meta/kernel-4.1/doc/DataCite-MetadataKernel_v4.1.pdf for more details on the format.
![../../_images/doi-request-check.png](../../_images/doi-request-check.png)
A DOI may already be assigned for a record:
![../../_images/doi-api-check-already-exist.png](../../_images/doi-api-check-already-exist.png)
In such case the DOI needs to be removed first.
- After validation, create the DOI
![../../_images/doi-request-check-ok.png](../../_images/doi-request-check-ok.png)
The DOI is then added to the metadata record:
![../../_images/doi-in-xml.png](../../_images/doi-in-xml.png)
DOI API¶
The REST API allows to access the DOI related operations:
![../../_images/doi-api.png](../../_images/doi-api.png)
The check preconditions API returns exception if one of the pre requisite is not met:
- DataCite API is not configured
- Record is not public
- Record already has a DOI
- Record is not valid for DataCite (ie. XSD errors returned by DataCite XSD validation)
![../../_images/doi-api-check.png](../../_images/doi-api-check.png)
When a DOI is created, the response return the following details:
![../../_images/doi-api-done.png](../../_images/doi-api-done.png)
The DOI is added to the metadata record using the following encoding:
![../../_images/doi-in-xml.png](../../_images/doi-in-xml.png)