Journal Concepts

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

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

Identifiers

 * 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|https://datadryad.org/pages/journalLookup] for this journal.
 * customerID: If present, the internal Association Anywhere customer ID for the sponsoring organization.
 * paymentPlan: This value triggers whether or not journal.subscriptionPaid is true (journal.subscriptionPaid as a separate metadata value is deprecated). If present, the value indicates the payment plan [https://datadryad.org/pages/paymentPlans] that the sponsoring organization uses. Valid values are SUBSCRIPTION, DEFERRED and PREPAID.
 * hasJournalPage: This value should be set to true if the journal is integrated, sponsored, or both.
 * website: This should contain the journal's website url. (Currently, we are only capturing/maintaining this for journals with journal pages -- see above)
 * description: This should contain a brief text description of the journal, preferably taken directly from the journal's website. (Currently, we are only capturing/maintaining this for journals with journal pages -- see above)

Integrated Workflow

 * integrated: if true (the default value), indicates that a journal uses our [integrated workflow|http://wiki.datadryad.org/Journal_Integration_Process]
 * parsingScheme: Designates the particular email format the journal's [metadata emails|http://wiki.datadryad.org/Journal_Metadata] 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

For more information about configuring journals, see the section "Configuring the journals" in Journal Metadata Processing Technology.

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


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

Modifying Existing Journal Concepts
Modifications to existing, accepted concepts should be documented in a "dc.description.provenance" field using this format: [name] [what you changed] [date as YYYY-MM-DD]

Querying Journal Concepts
Users with access (curators and repository administrators) 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.

REST API
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: http://datadryad.org/api/v1/organizations/?access_token=xxxxx This can be modified to only return concepts with a particular status, either `ACCEPTED` or `CANDIDATE`: http://datadryad.org/api/v1/organizations/?access_token=xxxxx&status=CANDIDATE To view a particular journal, you can add the journalID or the ISSN to the path: http://datadryad.org/api/v1/organizations/PONE?access_token=xxxxx http://datadryad.org/api/v1/organizations/19326203?access_token=xxxxx

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" : [ "rhund@botany.org", "amcpherson@botany.org", "automated-messages@datadryad.org" ], "emailsToNotifyOnReview" : [ "rhund@botany.org", "amcpherson@botany.org", "automated-messages@datadryad.org" ], "emailsToNotifyWeekly" : [ "rhund@botany.org", "amcpherson@botany.org", "automated-messages@datadryad.org" ], "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.

Be sure to document your changes in a "dc.description.provenance" field as described above.

Configuration
To configure the first time:

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

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 tables Concept, ConceptMetadata, and Term, but the terms are also indexed into the solr authority core.