publish using DOI feature
Morpho currently uses local identifiers that are not necessarily globally unique for data objects and metadata documents. Users should be able to publish their data packages and associated objects with a digital object identifier that is universally recognized as a citable object. Towards this end, add a feature to morpho that allows a user to choose a particular version of a data set to be 'published' with a DOI. This effectively means that a new version of all associated objects will be created, each with a minted, unique DOI that can be used to cite the object. Morpho will undertake the following steps when a user selects 'Publish using Digital Object Identifiers (DOIs)' as an action:
1) Ensure that all objects in the current package are saved and valid
2) For each data object, metadata object, and package ORE in the package
a) Call the MN to reserve a DOI for that object, if it hasn't already been assigned a DOI
-- if DOI minting errors occur, fail with explanation to user
b) Update all metadata and package pointers to use these new DOIs to reference data, etc.
c) save a new version of the object using update() to replace the old version with the DOI-named version
Note that when the receiving MN receives a create() or update() call that uses a DOI as its identifier, it will ensure that the user has the right to mint that DOI (either it is unreserved or reserved by that user), and then it will register that identifier with the EZID DOI registry service with appropriate metadata based on the DataCite standards.
The GUI for publishing with a DOI could either be part of the current Save dialog when users are saving to the network, or might be a separate menu action that is independent of the Save dialog.