Journal Concepts

From Dryad wiki
Revision as of 10:33, 25 March 2016 by Daisie (talk | contribs)

Jump to: navigation, search

Journals and their associated metadata are managed by the DSpace Editable Authority Control system.

Journal Concepts

Journals are contained in the Journal Scheme. Each journal has a Concept associated with it, which contains journal-specific metadata. Behavior of manuscripts associated with particular journals is controlled by these metadata values. The DryadJournalConcept class wraps the specific journal metadata elements in a single class. DryadJournalConcepts contain the following properties:


  • fullName: The only required metadata that a journal must have. This name is unique in the system.
  • journalID: A secondary, Dryad-assigned unique short identifier.
  • issn: The journal's International Standard Serial Number, uniquely assigned to each periodical.
  • conceptID: An internal database identifier for use by Dryad.

Relationship to Dryad

  • status: A value of ACCEPTED indicates that the journal's metadata has been validated by Dryad's curators, while a value of CANDIDATE indicates that this journal has not been validated.
  • sponsorName: If present, the name of the organization that [sponsors submissions|] for this journal.
  • customerID: If present, the internal Association Anywhere customer ID for the sponsoring organization.
  • paymentPlan: If present, indicates the [payment plan|] that the sponsoring organization uses.

Integrated Workflow

  • integrated: if true (the default value)indicates that a journal uses our [integrated workflow|]
  • parsingScheme: Designates the particular email format the journal's [metadata emails|] come in
  • canonicalManuscriptNumberPattern: A regular expression indicating what the canonical, non-changing part of the journal's manuscript ID is. This should be captured in the first capture group of the regex. The rest of the ID may change based on its revision status.
  • metadataDir: deprecated. Previously contained the XML files for the parsed email information
  • allowReviewWorkflow: if true, allows submissions associated with this journal to use the review workflow before publication
  • allowEmbargo: if true (the default value), allows submitter to set an embargo until the publication appears or of one year
  • publicationBlackout: if true (the default value), defaults to data being in blackout until the publication is released.
  • emailsToNotifyOnArchive: journal-associated emails to notify on archive
  • emailsToNotifyOnReview: journal-associated emails to notify for review
  • emailsToNotifyWeekly: journal-associated emails to notify regularly


These aren't used, but existed in the old class PublicationBean.

  • description
  • memberName

Temporary Journal Concepts

When a user submits data for a published paper for a journal that has not been associated with Dryad before, a temporary journal concept is created. These concepts have a temporary journalID and fullName that are the same as the user-entered journal name and a status of CANDIDATE.

At some point before these submissions are curated into the archive, a curator needs to validate the journal and update its temporary concept, giving it its ISSN and changing its status to ACCEPTED.

Querying Journal Concepts

Users with access (curators? admins only?) can retrieve information about journals either through the Scheme management system, looking for concepts in the Journal scheme, or through the REST API's organizations endpoint.

Scheme GUI

This method is very tedious, especially if you need to edit or adjust multiple concepts. From the user pull-down menu, go to Manage Scheme and then click on the Journal scheme. You should be taken to the Journal scheme page, which just identifies scheme as Journal and has a few basic attributes. From there, go to the pull-down menu and select Search & Add Concepts. To look at a particular journal's concept, click on the name of the journal. The status of the concept is an Attribute and can be edited by choosing Edit Concept Attribute from the pull-down menu, while the other metadata values can be edited or created by choosing Edit Metadata Value from the pull-down menu.


You need an authorized access token in order to use this method, but it is more efficient for batch-editing concepts.

Viewing Concepts

To view all journal concepts, use a GET request:

This can be modified to only return concepts with a particular status, either `ACCEPTED` or `CANDIDATE`:

To view a particular journal, you can add the journalID or the ISSN to the path:

Editing Concepts

To update an existing concept, first find the concept's data using the GET command and find the json block corresponding to that particular concept, for example:

 [ {
"conceptID" : 414,
"fullName" : "American Journal of Botany",
"description" : "",
"status" : "ACCEPTED",
"journalID" : "AMJBOT",
"canonicalManuscriptNumberPattern" : ".*?(AJB-D-\\d+-\\d+).*?",
"sponsorName" : "Botanical Society of America",
"parsingScheme" : "manuscriptCentral",
"metadataDir" : "/opt/dryad/submission/journalMetadata/AMJBOT",
"issn" : "",
"customerID" : "1230457",
"memberName" : "",
"emailsToNotifyOnArchive" : [ "", "", "" ],
"emailsToNotifyOnReview" : [ "", "", "" ],
"emailsToNotifyWeekly" : [ "", "", "" ],
"allowReviewWorkflow" : true,
"allowEmbargo" : false,
"integrated" : true,
"publicationBlackout" : true,
"paymentPlan" : "DEFERRED"
} ] 

The json block consists of an array of concepts, so even if you are only editing or adding one concept, make sure to surround it with square brackets (single-value array).

Save the block as a text file, make your adjustments, and then use `curl` to PUT the concept back. If no concept with that fullName exists, it will fail.

curl --insecure --header "Content-Type:application/json" --request PUT --data-binary @concept.json localhost:9999/api/v1/organizations/?access_token=xxxx

To add a concept, use the same method to POST a json file with the new concept. If your new concept has the same fullName as an existing concept, it will fail.

 [ {
"fullName" : "My New Journal"
"journalID" : "MNJ"
} ] 
curl --insecure --header "Content-Type:application/json" --request POST --data-binary @concept.json localhost:9999/api/v1/organizations/?access_token=xxxx

If no status is specified, it will have a default status of CANDIDATE.

You can PUT and POST larger arrays of concepts to edit/create more than one at a time.

Server Setup


To configure the first time:

  • load the authority.sql script to create tables
psql < /opt/dryad/etc/postgres/authority.sql
  • load the journal-types registry
/opt/dryad/bin/dsrun org.dspace.administer.MetadataImporter -f /opt/dryad/config/registries/journal-types.xml
  • Import the data from the journal config file. This will use the properties file identified by /opt/dryad/config/dspace.cfg
/opt/dryad/bin/dspace dsrun  org.datadryad.authority.ImportJournal2Authority

Internal Storage

Each journal is a concept in the authority control system.

Each version of the journal name is a term.

The primary storage for authority control is in the Concept and Term tables, but the terms are indexed into the solr authority core.