Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Checked DataCite documentation, adjusting some usage and punctuation.

...

It is good practice to use Persistent Identifiers to address items in a digital repository. There are many different systems for Persistent Identifiers: Handle, DOI, urn:nbn, purl and many more. It is far out of the scope of this document to discuss the differences of all these systems. For several reasons the handle system Handle System is deeply integrated in DSpace, and DSpace makes intensive use of it. With DSpace 3.0 the Identifier Service was introduced that makes it possible to use external identifier services within DSpace.

DOIs are Persistent Identifiers like handles Handles are, but as many big publishing companies use DOIs they are quite well-known to scientists. Some journals ask for DOIs to link supplemental material whenever an article is submitted. Beginning with DSpace 4.0 it is possible to use DOIs in parallel to the handle system Handle System within DSpace. By "using DOIs" we mean automatic generation, reservation and registration of DOIs for every item that gets publishedenters the repository.

DOI Registration Agencies

...

DataCite is an international initiative to promote science and research, and a member of the International DOI Foundation. The members of DataCite act as registration agencies for DOIs. Some DataCite members provide their own APIs to reserve and register DOIs, ; others let their clients use the DataCite API directly. Starting with version 4.0 DSpace supports the administration of DOIs by using the DataCite API directly or by using the API from EZID (which is a service of the University of California Digital Library). This means you can administrate administer DOIs with DSpace if your registration agency allows you to use the DataCite API directly or if your registration agency is EZID.

...

To reserve or register a DOI, DataCite requires that metadata be supplied that describes which describe the object that the DOI addresses. The file [dspace]/config/crosswalks/DIM2DataCite.xsl controls the conversion of metadata from the DSpace internal format into the DataCite format. You have to add the name of your institution into to this file:

Code Block
title\[dspace\]/config/crosswalks/DIM2DataCite.xsl
<!--
    Document   : DIM2DataCite.xsl
    Created on : January 23, 2013, 1:26 PM
    Author     : pbecker, ffuerste
    Description: Converts metadata from DSpace Intermediat Format (DIM) into
                 metadata following the DataCite Schema for the Publication and
                 Citation of Research Data, Version 2.2
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:dspace="http://www.dspace.org/xmlns/dspace/dim"
                xmlns="http://datacite.org/schema/kernel-2.2"
                version="1.0">
    
    <!-- CONFIGURATION -->
    <!-- The content of the following variable will be used as element publisher. -->
    <xsl:variable name="publisher">My University</xsl:variable>
    <!-- The content of the following variable will be used as element contributor with contributorType datamanager. -->
    <xsl:variable name="datamanager"><xsl:value-of select="$publisher" /></xsl:variable>
    <!-- The content of the following variable will be used as element contributor with contributorType hostingInstitution. -->
    <xsl:variable name="hostinginstitution"><xsl:value-of select="$publisher" /></xsl:variable>
    <!-- Please take a look into the DataCite schema documentation if you want to know how to use these elements.
         http://schema.datacite.org -->
    
    
    <!-- DO NOT CHANGE ANYTHING BELOW THIS LINE EXCEPT YOU REALLY KNOW WHAT YOU ARE DOING! -->
...

...

If you want to know more about the DataCite SchemeSchema, have a look at the documentation. If you change this file in a way that is not compatible with the DataCite schema, you won't be able to reserve and register DOIs anymore. Do not change anything if you're not sure what you're doing.

...

To make DSpace resistant to outages of DataCite we decided to separate the DOI support in into two parts. When a DOI should be generated, reserved or minted, DSpace does this in its own database. To perform registration and/or reservation against the DOI registration agency a job has to be started using the command line. Obviously this should be done by a cron job periodically. In this section we describe the command line interface, in case you ever want to use it manually. In the next section you'll see the cron job that transfers all DOIs designated for reservation and/or registration.

...

Option (short)Option (long)ParameterDescription
-d--delete-all Transmit information to the DOI registration agency about all DOIs that were deleted.
 --delete-doiDOITransmit information to the DOI registration agency that the specified DOI was deleted. The DOI must already be marked for deletion before; you cannot use this command to delete a DOI for an exisiting item.
-h--help Print online help.
-l--list List all DOIs whose changes were not committed to the registration agency yet.
-q--quiet 

The doi-organiser sends error reports to the mail address configured in the property alert.recipient in dspace.cfg. If you use this option no output should be given to stdout. If you do not use this option the doi-organiser puts writes information about successful and unsuccessful operations to stdout and stderr. You can find information in dspace.log of course.

-r--register-all Transmit information about all DOIs that should be registered.
 --register-doi

DOI | ItemID | handle

If a DOI is marked for registration, you can trigger the registration at the DOI registration agency by this command. Specify either the DOI, the ID of the item, or its handle.
-s--reserve-all Transmit to the DOI registration agency information about all DOIs that should be reserved to the DOI registration agency.
 --reserve-doiDOI | ItemID | handleIf a DOI is marked for registration, you can trigger the registration at the DOI registration agency by this command. Specify either the DOI, the ID of the item, or its handle.
-u--update-all If a DOI is reserved for an item, the metadata of the item will be sent to DataCite. This command transmits new metadata for items whose metadata were changed since the DOI was reserved.
 --update-doiDOI | ItemID | handleIf a DOI needs an update of the metadata of the item it belongs to, you can trigger this update with this command. Specify either the DOI, the ID of the item, or its handle.

...

When a DOI should be reserved, registered, deleted or its metadata needs to be updated, DSpace just writes this information into its local database. A command line interface is supplied to send the necessary information to the registration agency. This behavior makes it easier to react to outages or errors while using the API. As this This information should be sent regularly, so it is a good idea to set up a cron job instead of doing it manually.

...

In DSpace, a DOI can have the state "registered", "reserved", "to be reserved", "to be registered", "needs update", "to be deleted", or "deleted". After updating an item's metadata the state of its assigned DOI is set back to the last state it had before. So, e.g., if a DOI has the state "to be registered" and the metadata of its item changes, it will be set to the state "needs update". After the update is performed its state is set to "to be registered" again. Because of this behavior the order of the commands above matters: the update command must be executed before every other all of the other commands above.

The cron job should perform the following commands with the rights of the user your DSpace installation runs as:

...

DOIs will be used in addtion to handlesHandles. This implementation does not exchange handles replace Handles with DOIs in DSpace. That means , that DSpace will still generate handles Handles for every item, every collection and every community, and will use those handles Handles as part of the URL of items, collections and communities.

...

If you want DSpace to support other registration agencies, you just have to write a java Java class that implements the interface DOIConnector ([dspace-source]/dspace-api/src/main/java/org/dspace/identifier/doi/DOIConnector.java). You might use the DataCiteConnector ([dspace-source]/dspace-api/src/main/java/org/dspace/identifier/doi/DataCiteConnector.java) as an example. After developing your own DOIConnector, you configure DSpace as if you were using the DataCite API directly. Just use your DOIConnector when configuring the IdentifierService instead of the DataCiteConnector.

...