Submission System Technology

Dryad's submission system is a heavily modified version of the DSpace submission system. This page describes the portion of the submission system that is used by the original submitter. In DSpace terms, this is the "Workspace" stage. For details of how content is managed between submitters and curators, see Submission System Workflow. For more information about the curation process and tools available for curators, see Curation.

Functionality
Dryad's submission system allows users to quickly and easily submit data packages. Key features include:
 * 1) Integration with journals -- allowing authors to automatically fill the Dryad forms with information from the journal's description of an article, and automatically notifying journal editors when a Dryad submission is completed.
 * 2) Minimal description requirements -- Dryad minimizes the amount of typing/clicking required by submitters. Descriptions are automatically propagated from the article description to descriptions for individual data files. Reasonable defaults are set for the various choices available.
 * 3) Integration with partner repositories -- allowing submitters to use Dryad information as a starting point for submitting content to another repository.

See also the journal-oriented Submission Integration page.

Workflow

 * 1) When the user navigates to datadryad.org/submit (via button or link, with or without parameters), the submission aspect is activated. For a new submission:
 * 2) Apache rewrites /submit to /handle/10255/3/submit
 * 3) The high-level configuration for modules/xmlui/src/main/resources/aspects/Submission/sitemap.xmap hands off to the DSpace Configurable Submission System.
 * 4) The config/item-submission.xml settings start the user at SelectPublicationStep.
 * 5) Depending on the article status, SelectPublicationStep will attempt to fetch details regarding the article
 * 6) For articles in Published status:
 * 7) * Metadata is fetched from PubMed API (if a PubMed DOI is provided)
 * 8) * Metadata is fetched from CrossRef API (if a non-PubMed DOI is provided)
 * 9) For articles in Accepted, In Review, or Not Submitted status:
 * 10) Metadata is read from an XML file on the server generated by Journal Metadata Processing Technology
 * 11) The location of the XML file is specified in dspace.cfg submit.journals.dir. It is usually /opt/dryad/submission/journalMetadata/
 * 12) The file name is based on the Manuscript ID, which the user provided at submission
 * 13) ModelPublication.java processes the information and chooses the correct metadata file for import.
 * 14) The metadata from the file is parsed. All metadata is marshalled through a PublicationBean into a DSpace Item
 * 15) The field mapping (to DSpace metadata fields) is determined by dspace.cfg submit.journal.metadata.XX, and used in SelectPublicationStep
 * 16) When a user completes the initial submission and the package is sent to curators, it enters the Workflow system. For details of the Workflow, see Submission System Workflow.

Configuration
/opt/dryad/bin/dspace dsrun com.atmire.authority.IndexClient
 * dspace.cfg contains high-level configuration options that affect the entire submission system. These configuration properties all start with "submit.".
 * modules/xmlui/src/main/resources/aspects/Submission/sitemap.xmap maps URLs to portions of the submission system.
 * config/item-submission.xml controls the relationships between pages of the submission system and the Java code that handles them.
 * DryadJournalSubmission.properties configures submission settings that vary between journals.
 * To update the list of journals for the auto-complete list on the initial submission page:

Relation to DSpace
Dryad's submission system builds off the basic framework for the DSpace submission system, but it bypasses the user interface and substantially modifies some of the underlying classes.

(need to integrate @mire's documentation here)

Temporary: adding a file to an existing package
(This will go away once versioning is fully in place)


 * 1) Export a single data file from the target package (using the -m parameter)
 * 2) /opt/dryad/bin/dspace export -i 10255/dryad.8434 -t ITEM -d /tmp/export -n 8434 -m
 * 3) Make the 'export' directory an empty directory just for exporting to (importing from)
 * 4) Delete the exported bitstreams
 * 5) Put the new bitstream in place
 * 6) Edit the contents file -- remove the bundle:TEXT line, change the filename of the primary bitstream
 * 7) Edit the dublin_core.xml file
 * 8) Update the dc.title
 * 9) Remove the old DOI
 * 10) Ensure isPartOf is set correctly
 * 11) Run the import
 * 12) /opt/dryad/bin/dspace import -a -c 10255/2 -e rscherle@nescent.org -s /tmp/export -m /tmp/export/1.map
 * 13) The ".map" file should be a file that doesn't exist -- it will receive the output of the import process.
 * 14) Look in the map file to see the handle of the newly created DSpace item.
 * 15) Verify that this item exists in DSpace.
 * 16) Check that the other files attached to that package have had their DOIs minted
 * 17) http://datadryad.org/doi?lookup=doi:10.5061/dryad.bogus1234/1
 * 18) http://datadryad.org/doi?lookup=doi:10.5061/dryad.bogus1234/2
 * 19) http://datadryad.org/doi?lookup=doi:10.5061/dryad.bogus1234/3
 * 20) etc.
 * 21) If the DOIs are not minted, mint them now, using the DOIService
 * 22) Mint the DOI in the local DOI service
 * 23) http://datadryad.org/doi?item=http://datadryad.org/handle/10255/dryad.bogus1234567890&register
 * 24) Edit the data package, making the hasPart relationship point to the new data file.
 * 25) Ensure that navigation works between the package and file, and that the DOIs resolve correctly.

The URLs and DOIs in the examples above are fake, just used for illustrative purposes.