Institutional ORCID Integration (IOI)
Institutional ORCID Integration (IOI) provides a way for institutions to support the use of ORCID iDs by their researchers and students.
It interacts with ORCID using version 3.0 of the ORCID API. For full functionality ORCID membership and access to the ORCID member API are needed. It can also be used with the ORCID public API, but with limited functionality.
Then, it is time to create the database structure. Available in the ioi.sql file.
To automatically run syncronizations between IOI and either DSpace or ORCID crontab tasks need to be set up separately. When running the scripts in the shell you can also provide a date argument to only syncronize items with changes after a certain date by using php-cgi.
After finishing the prerequisites, download the IOI code by clicking on the "Clone or download button" or by using this command line in the terminal:
cd YourFolderPath git clone firstname.lastname@example.org:kaust-library/ioi.git
To set the constants, including the MySQL database, DSpace REST API, and ORCID API credentials, fill constants.php. The path of the file is:
The database connection is set in database.php, using the credentials previously set in constants.php, the path of the file is:
Watch the settings demo video to see a demonstration of the setup of the application.
The public directory contains three interface endpoints. Your web server should be set up to point and provide access only to the public directory.
orcid.php is the primary user interface. It allows users to connect to ORCID, grant permissions to the IOI application and review the information to be transferred.
admin.php is accessible to users listed as admin in the users table. It provides a dashboard of usage statistics for the application, as well as forms for sending emails to designated groups, updating the name attached to an ORCID iD in DSpace, and uploading organizational and persons information to the database.
query.php provides a basic endpoint for another university system to retrieve information as JSON or CSV about the ORCID iDs and works recorded in the application. You should define your own method of restricting access to this endpoint
Production usage of the tool requires setting tasks to run periodically that synchronize information between the application, ORCID and DSpace. The task files are located in the tasks folder. To set the crontab tasks, open the terminal and sign in to your server. You can open the list of crontasks for your user by entering this command:
A file will open.
Each crontab task starts with five fields that define the frequency that the task will be run:
Below are sample crontab entries for the IOI tasks:
Harvest new and modified repository records from DSpace to the metadata table. This task is responsible for adding new or modified metadata records to the metadata table in the database. This is how you keep track of new works added to your institutional repository.
To run it every 10 minutes, add this line to the crontab:
*/10 * * * * /usr/bin/php YourFolderPath/ioi/tasks/harvestRepository.php
If you want to do an initial harvest or test harvest only for items added or modified after a certain date, and have installed php-cgi, you could also do the below:
*/10 * * * * /usr/bin/php-cgi YourFolderPath/ioi/tasks/harvestRepository.php fromDate=YYYY-MM-DD
Synchronizing works from IOI to ORCID. This task is responsible for updating the user records in ORCID with new works harvested to IOI from the repository, based on the permissions the users have already given the system.
To run it every day at 3 AM, add this line to the crontab:
0 3 * * * /usr/bin/php YourFolderPath/ioi/tasks/syncWorksToORCID.php
Send updated ORCID metadata into DSpace. This task will check that ORCID iDs are added to the DSpace record for each work that the user has selected as their own:
To run it every 30 minutes, add this line to the crontab:
*/30 * * * * /usr/bin/php YourFolderPath/ioi/tasks/updateORCIDiDsInDSpace.php
Synchronizing affiliations from IOI to ORCID ( optional task ). This task is responsible for updating affiliations in user records in ORCID based on the permission they gave to the system before. It only needs to be run if you are uploading new job titles, end dates, etc. for your users to IOI.
0 3 * * * /usr/bin/php YourFolderPath/ioi/tasks/syncAffiliationsToORCID.php
For the logo, please insert your institutional logo as an image (PNG, GIF, JPEG, etc. should all work ) inside the images folder :
Use the name "logo" for your logo image.
For the icon, please replace
favicon.ico with your institution's icon in the public folder:
Use the name "favicon" for the icon and the extension must be
- PHP 7 - Primary coding language
- phpmyadmin - Database Management Application
- Bootstrap - CSS Framework
- Daryl Grenz - Digital Repository Lead
- Yasmeen Alsaedi - Repository Coordinator/Architect
- We would like to thank Atmire for developing the DSpace expanded-ORCID-support patch, and the ORCID team for their feedback.