Migrate DSpace Items to Configurable Entities

Last updated on: Published by: Systems Librarian 0
By default, dspace makes use of Items. Configurable Entities on the other hand, are a special type of “Items” that can have relationships with other Entities.

Two broad categories of entities are available in DSpace.

Research Entities – These include Publication, Project, Person and OrgUnit

Journal Entities – These include Journal, Journal Volume, Journal Issue and Publication.

These Entities are defined in config/entities/relationship-types.xml

Enabling Entities

By default, entities are not enabled in dspace. To enable them, run the following command from the server deployment directory.

sudo bin/dspace initialize-entities -f config/entities/relationship-types.xml

This command will read the entities information from the file relationship-types.xml and store in the database. If an entity already exists, it will be updated with any new changes in the relationship-types.xml file.

Convert DSpace Items to Publication Entities

Each item on dspace should be converted to an Entity Type, in the default case, the entity type is Publication. An item is converted by adding a new metadata field called dspace.entity.type. Existing dspace items can be converted to Publication Entities using bulk metadata editing. Export items metadata using the web interface or via the command line. Remove all other metadata columns from the csv file except the id column. Introduce a new column dspace.entity.type. Fill all values for this column as Publication. Upload the edited file and save to add the new metadata field to all the items.

“Publication” is a special Item type that is configurable and can have relationships with other entities such as Author profiles

Convert Collections for Publication Entity Type

Edit all collections that you want to use the Publication Entity type. The collection editing form will have a filed for Entity Type as a drop down for you to select the Entity Type. Save and proceed

Map Submission Forms to Each Entity

Inside [dspace]/config/item-submission.xml, uncomment the following lines

<name-map collection-entity-type="Publication" submission-name="Publication"/>
<name-map collection-entity-type="Person" submission-name="Person"/>
<name-map collection-entity-type="Project" submission-name="Project"/>
<name-map collection-entity-type="OrgUnit" submission-name="OrgUnit"/>
<name-map collection-entity-type="Journal" submission-name="Journal"/>
<name-map collection-entity-type="JournalVolume" submission-name="JournalVolume"/>
<name-map collection-entity-type="JournalIssue" submission-name="JournalIssue"/>

Restart tomcat for the changes to take effect

Add Extra Fields to the Person Entity

Inside [dspace]/config/submission-forms.xml, find perstonStep section and modify/add extra fields as desired.

Restart tomcat for the changes to take effect.

Enable ORCID Integration

For testing environment, obtain ORCID API’s Client ID and Client Secret from https://sandbox.orcid.org/developer-tools . The sandbox environment only works with mailnator emails which can be obtained from https://www.mailinator.com/verified-pro for free.

For production, obtain ORCID API’s Client ID and Client Secret from https://orcid.org/developer-tools

Then edit [dspace]/config/modules/orcid.cfg and provide the Client ID and Client Secret as shown below

orcid.api-url = https://api.orcid.org/v3.0
orcid.public-url = https://pub.orcid.org/v3.0
orcid.application-client-id = <YOUR-PRODUCTION-ORCID-CLIENT-ID>
orcid.application-client-secret = <YOUR-PRODUCTION-ORCID-CLIENT-SECRET>
orcid.scope = /authenticate
orcid.synchronization-enabled = true

Enable ORCID Authentication

Edit [dspace]/config/modules/authentication.cfg and ensure the following line is uncommented

plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.OrcidAuthentication

Add orcid to the list of even consumers in [dspace]/config/local.cfg as shown below. Locate the line and add orcidqueue at the end. This helps to keep track of what needs to be sync between DSpace and ORCID.

event.dispatcher.default.consumers = versioning, discovery, eperson, orcidqueue

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.