Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

After you enter into a contract with a DOI registration agency, they'll provide you with user credentials and a DOI prefix. You have to enter these in the dspace cfg. Here is a list of DOI configuration options in dspace.cfg:

Configuration File:[dspace]/config/dspace.cfg
Property:
identifier.doi.user
Example Value:
identifier.doi.user = user123
Informational Note:Username to login into the API of the DOI registration agency. You'll get it from your DOI registration agency.
Property:
identifier.doi.password
Example Value:
identifier.doi.password = top-secret
Informational Note:Password to login into the API of the DOI registration agency. You'll get it from your DOI registration agency.
Property:
identifier.doi.prefix
Example Value:
identifier.doi.prefix = 10.5072
Informational Note:The prefix you got from the DOI registration agency. All your DOIs start with this prefix, followed by a slash and a suffix generated from DSpace. The prefix can be compared with a namespace within the DOI system.
Property:
identifier.doi.namespaceseparator
Example Value:
identifier.doi.namespaceseparator = dspace-
Informational Note:This property is optional. If you want to use the same DOI prefix in several DSpace installations or with other tools that generate and register DOIs it is necessary to use a namespace separator. All the DOIs that DSpace generates will start with the DOI prefix, followed by a slash, the namespace separator and some number generated by DSpace. For example, if your prefix is 10.5072 and you want all DOIs generated by DSpace to look like 10.5072/dspace-1023 you have to set this as in the example value above.
Property:

crosswalk.dissemination.DataCite.publisher

Example Value:crosswalk.dissemination.DataCite.publisher = My University Press
Informational Note:The name of the entity which published the item.
Property:crosswalk.dissemination.DataCite.hostingInstitution
Example Value:crosswalk.dissemination.DataCite.hostingInstitution = My University
Informational Note:The name of the entity which hosts this instance of the object.  If not configured, it will default to the value of crosswalk.dissemination.DataCite.publisher.
Property:crosswalk.dissemination.DataCite.dataManager
Example Value:crosswalk.dissemination.DataCite.dataManager = My University Department of Geology
Informational Note:If not configured, it will default to the value of crosswalk.dissemination.DataCite.publisher.


Info

Please don't use the test prefix 10.5072 with DSpace. The test prefix 10.5072 differs from other prefixes: It answers GET requests for all DOIs even for DOIs that are unregistered. DSpace checks that it mint only unused DOIs and will create an Error: "Register DOI ... failed: DOI_ALREADY_EXISTS". Your registration agency can provide you an individual test prefix, that you can use for tests.

...

The command used for DOIs is 'doi-organiser'. You can use the following options:

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; 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 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.
 

--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.

Currently you cannot generate new DOIs with this tool. You can only send information about changes in your local DSpace database to the registration agency.

...

In config/dspace.cfg you will find a small block of settings whose names begin with identifier.doi.ezid.  You should uncomment these properties and give them appropriate values.  Sample values for a test account are supplied.

namemeaning
identifier.doi.ezid.shoulderThe "shoulder" is the DOI prefix issued to you by the EZID service.  DOIs minted by this instance of DSpace will be the concatenation of the "shoulder" and a locally unique token.

identifier.doi.ezid.user

identifier.doi.ezid.password

The username and password by which you authenticate to EZID.
identifier.doi.ezid.publisherYou may specify a default value for the required datacite.publisher metadatum, for use when the Item has no publisher.
crosswalk.dissemination.DataCite.publisherShould match identifier.doi.ezid.publisher.
crosswalk.dissemination.DataCite.hostingInstitutionName of the hosting institution.  If not configured, it will be set to the value of crosswalk.dissemination.DataCite.publisher.
crosswalk.dissemination.DataCite.dataManagerName of the data manager.  If not configured, it will be set to the value of crosswalk.dissemination.DataCite.publisher.

Back in config/spring/api/identifier-service.xml you will see some other configuration of the EZIDIdentiferProvider bean. In most situations, the default settings should work well.  But, here's an explanation of options available:

...

DSpace currently generates DOIs for items only. There is no support to generate DOIs for Communities and Collections yet.

JSPUI specific configurations

You can configure whether the JSPUI should show DOIs or handles on item frontdoors. Heading an item frontdoor there is an informational note containing a Persistent Identifier and the request to use it when one wants to refer to this item. By setting the property webui.preferred.identifier to doi in dspace.cfg, you can configure the JSPUI to use DOIs instead of handles which are used by default. This property also controls which Persistent Identifiers are used in the Version History that is shown if Item Level Versioning is used and version history is enabled.

Further more you can configure whether DOIs should contain a doi: prefix or not in the version history. The property webui.identifier.strip-prefixes in dspace.cfg controls this. By default the doi: prefix is stripped (not shown).

Adding support for other Registration Agencies

Adding support for other Registration Agencies

If you want DSpace to support other registration agencies, you just have to write a Java class that implements the If you want DSpace to support other registration agencies, you just have to write a 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.