Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

WORK IN PROGRESS

Since DSpace 7.3 a bidirectional ORCID integration is available for DSpace

experimental

Please note that the ORCID integration feature is classified as experimental at the time of 7.3 and it MUST be enabled manually


Acknowledgement

The ORCID integration has been originally developed by 4Science in DSpace-CRIS, it is the result of years of collaboration with several institutions and the ORCID team that has helped to correct, improve and broaden the scope of the integration. We want to thank the University of Hong Kong that was the first institution to fund development activities on this regards back in 2015 and the TUHH Hamburg University of Technology that have funded the initial porting of the ORCID integration to the new Angular/REST architecture introduced in DSpace 7. Last but not least, funds have been received by the DSpace community to port this feature from DSpace-CRIS to DSpace.


DSpace provides a bidirectional integration with ORCID based on the ORCID API v3.0. Both the Public ORCID API than the Membership API are supported.

The table below summarize the supported features according to the type of ORCID API configured

FeaturePublic APIMember API
Authentication (tick) (tick)
Connect local profile to ORCID (authenticated ID) (tick) (tick)
ORCID Registry Lookup - import Person records (tick) (tick)
ORCID Registry Lookup - as authority (tick) (tick)
Import publication from ORCID (tick) (tick)
Push biographic data to ORCID
 (tick)
Push publications to ORCID (works)
 (tick)
Push projects to ORCID (fundings)
 (tick)


User features

Login via ORCID

...coming soon...

Connect/Disconnect the locat profile to ORCID

...coming soon...

Manage synchronization preferences

...coming soon...

Import publications from ORCID

...coming soon...


Configuration

Enable the integration

To enable the main integration (i.e. connect local profile with ORCID and push data to the ORCID registry) you need to be an ORCID Member, get a Member API Key and proper enable and configure the feature in DSpace.

You need to override, via local.cfg , the following properties

orcid.synchronization-enabled = true
# Switch to production API once ready https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web#endpoints 
orcid.domain-url= https://sandbox.orcid.org
orcid.api-url = https://api.sandbox.orcid.org/v3.0
orcid.application-client-id = <YOUR-ORCID-CLIENT-ID>
orcid.application-client-secret = <YOUR-ORCID-CLIENT-SECRET>


To enable the ORCID Authentication you need to uncomment the following line in the modules/authentication.cfg  file or adding it to your local.cfg 

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

Please note that you are NOT required to enable the ORCID Authentication to use the other ORCID features, including the synchronisation ones. It is also possible to use just the ORCID Authentication without enabling all the other features.


Configure the import features

The Import features from ORCID have been implemented using the Live Import Framework

The following bean is used to configure the import of person records from ORCID, it is activated as an external source in config/spring/api/external-services.xml 

    <bean class="org.dspace.external.provider.impl.OrcidV3AuthorDataProvider" init-method="init">
        <property name="sourceIdentifier" value="orcid"/>
        <property name="orcidUrl" value="${orcid.domain-url}" />
        <property name="clientId" value="${orcid.application-client-id}" />
        <property name="clientSecret" value="${orcid.application-client-secret}" />
        <property name="OAUTHUrl" value="${orcid.token-url}" />
        <property name="orcidRestConnector" ref="orcidRestConnector"/>
        <property name="supportedEntityTypes">
            <list>
                <value>Person</value>
            </list>
        </property>
    </bean>

the mapping between ORCID Person and the DSpace Person Item is the following, currently hardcoded

ORCIDDSpace
Name/FamilyNameperson.firstName
Name/GivenNameperson.givenName
Name/Pathperson.identifier.orcid
ORCID Profile URLdc.identifier.uri


the following bean is instead used to configure the import of publication records from ORCID (Work)

    <bean id="orcidPublicationDataProvider" class="org.dspace.external.provider.impl.OrcidPublicationDataProvider">
        <property name="sourceIdentifier" value="orcidWorks"/>
        <property name="fieldMapping" ref="orcidPublicationDataProviderFieldMapping"/>
        <property name="supportedEntityTypes">
            <list>
                <value>Publication</value>
            </list>
        </property>
    </bean>


the mapping of the ORCID Work metadata to the DSpace metadata is performed by the following beans in config/spring/api/orcid.xml 

	<bean id="orcidWorkFactoryFieldMapping" class="org.dspace.app.orcid.model.OrcidWorkFieldMapping" >
		<property name="contributorFields" value="${orcid.mapping.work.contributors}" />
		<property name="externalIdentifierFields" value="${orcid.mapping.work.external-ids}" />
		<property name="publicationDateField" value="${orcid.mapping.work.publication-date}" />
		<property name="titleField" value="${orcid.mapping.work.title}" />
		<property name="journalTitleField" value="${orcid.mapping.work.journal-title}" />
		<property name="shortDescriptionField" value="${orcid.mapping.work.short-description}" />
		<property name="subTitleField" value="${orcid.mapping.work.sub-title}" />
		<property name="languageField" value="${orcid.mapping.work.language}" />
		<property name="languageConverter" ref="${orcid.mapping.work.language.converter}" />
		<property name="typeField" value="${orcid.mapping.work.type}" />
		<property name="typeConverter" ref="${orcid.mapping.work.type.converter}" />
		<property name="citationType" value="${orcid.mapping.work.citation.type}" />
	</bean>

that respectively read the mapping from the config/modules/orcid.cfg  file

### Work (Publication) mapping ###
orcid.mapping.work.title = dc.title
orcid.mapping.work.sub-title =
orcid.mapping.work.short-description = dc.description.abstract
orcid.mapping.work.publication-date = dc.date.issued
orcid.mapping.work.language = dc.language.iso
orcid.mapping.work.language.converter = mapConverterDSpaceToOrcidLanguageCode
orcid.mapping.work.journal-title = dc.relation.ispartof
orcid.mapping.work.type = dc.type
orcid.mapping.work.type.converter = mapConverterDSpaceToOrcidPublicationType

##orcid.mapping.work.contributors syntax is <metadatafield>::<role>
orcid.mapping.work.contributors = dc.contributor.author::author
orcid.mapping.work.contributors = dc.contributor.editor::editor

##orcid.mapping.work.external-ids syntax is <metadatafield>::<type> or $simple-handle::<type>
##The full list of available external identifiers is available here https://pub.orcid.org/v3.0/identifiers
orcid.mapping.work.external-ids = dc.identifier.doi::doi
orcid.mapping.work.external-ids = dc.identifier.scopus::eid
orcid.mapping.work.external-ids = dc.identifier.pmid::pmid
orcid.mapping.work.external-ids = $simple-handle::handle
orcid.mapping.work.external-ids = dc.identifier.isi::wosuid
orcid.mapping.work.external-ids = dc.identifier.issn::issn


Configure the author lookup in submission

Please note that there are two different possibilities:

  • via an ORCID lookup authority available for DSpace repository that are not using Configurable Entities
  • via a relation among the research output item (Publication, etc.) and a Person Item bind to the ORCID Person External Source defined in the previous paragraph


Configure the push of information from DSpace to ORCID

...coming soon...



  • No labels