orcid outreach conference 2014 best practices technical
DESCRIPTION
TRANSCRIPT
ORCID and PROFILES @ BU Best practices in the creation of ORCID identifiers for faculty, staff,
and students: technical integration
ORCID Outreach Meeting
May 22, 2014
Peter Flynn
Boston University Slideshow Title Goes Here
What we did
How we developed
Issues we encountered
Features that would be helpful
Overview
15 May 2014 BU ORCID Integration
1
Boston University Slideshow Title Goes Here
BU ORCID Home Page
http://sites.bu.edu/orcid/
BU ORCID Agreement
http://sites.bu.edu/orcid/agreement/
What We Did: WordPress Pages
15 May 2014 BU ORCID Integration
2
Boston University Slideshow Title Goes Here
We created a standalone (not in BU Profiles) web
application to allow Faculty+ to:
Create an ORCID
Provide an ORCID
Update Information in ORCID based on BU Profiles data
Administrators to batch create ORCID’s
What We Did: BU ORCID Site
15 May 2014 BU ORCID Integration
3
Boston University Slideshow Title Goes Here
Allow user to create an ORCID based on BU HR and
Profiles data
Data includes: Name and email Addresses from BU Profiles (and optionally from
other HR systems).
Note: All email addresses that you have for a person should be
sent during creation in order to reduce the chance that a
duplicate ORCID profile is created.
Profile Narrative, Profile Web Sites and Profile Publications
Note: The maximum length of the narrative is 5000 characters.
Information about the privacy level in ORCID for the items mentioned
above.
What We Did: Create an ORCID
15 May 2014 BU ORCID Integration
4
Boston University Slideshow Title Goes Here
User is redirected to ORCID URL to login
If login is successful, user is redirected back to our site
and the user’s ORCID is associated with the internal
username field from BU Profiles (in our case it is the
user’s Boston University ID)
What We Did: Provide an ORCID
15 May 2014 BU ORCID Integration
5
Boston University Slideshow Title Goes Here
Merged in code from the stand-alone ORCID
application
Added affiliation records, i.e. positions held
Added For Administrators Profiles to ORCID permission mapping page
Batch creation of ORCIDs
Anyone that has a Profile but does not have an ORCID recorded
Anyone in a certain institution, department, division, or faculty
type
A particular person
We added a DLL to the previous solution to handle
interaction with the database.
Enhancements to a new version of Profiles
15 May 2014 BU ORCID Integration
6
Boston University Slideshow Title Goes Here
We created the following tables in Profiles: ORCID.Person: Pushed ORCID information for a person, e.g. name,
email, biography.
ORCID.PersonAffiliation: Profiles Affiliation information.
ORCID.PersonURL: A person’s websites.
ORCID.PersonAlternateEmail: Alternate Emails entered by the
person at the time of creation.
ORCID.PersonMessage: The actual xml messages that were sent
via the ORCID API (see sample in Appendix A).
ORCID.PersonOthername: The names that the person has used
when publishing, e.g. Flynn P and Flynn PF.
ORCID.PersonToken: The tokens that can be to grant access to a
particular API function.
How we developed: Data Tables
15 May 2014 BU ORCID Integration
7
Boston University Slideshow Title Goes Here
ORCID.PersonWork: A person’s publications.
ORCID.PersonWorkIdentifier: A publication’s unique identifiers, e.g.
DOI or PubMed ID.
ORCID.ErrorLog: Errors during interaction with the ORCID API.
ORCID.RecordLevelAuditTrails and ORCID.FieldLevelAuditTrails:
Audit trails for changes to the ORCID data in Profiles.
How we developed: Data Tables (cont’d)
15 May 2014 BU ORCID Integration
8
Boston University Slideshow Title Goes Here
Getting a client token Create a web request for URL, “http://api.sandbox-1.orcid.org
/oauth/token”.
Set the content type as “application/x-www-form-urlencoded”
Set the method as “Post”
Send UTF8 encoded bytes to the request stream. The content of the
bytes should be for:
client_id={your institution client id}&client_secret={your institution
client secret}&grant_type=client_credentials&scope={relevant scope}
Return the value of the access_token from the JSON response
{"access_token":"31ab07df-82c1-4567-a01f- a5f36495087f",
"token_type":"bearer","refresh_token":"ceb5c906-a704-4899-9891-
06227cb645b3","expires_in":631138518,"scope":"/orcid-
profile/create"}
How we developed: Using ORCID APIs
15 May 2014 BU ORCID Integration
9
Boston University Slideshow Title Goes Here
Note the possible values for scope are: /orcid-profile/create
/orcid-bio/update
/orcid-works/create
/orcid-profile/read-limited
/orcid-bio/read-limited
/orcid-works/read-limited
/orcid-bio/external-identifiers/create
/authenticate
/affiliations/create
/affiliations/update
/read-public
How we developed: Using ORCID APIs
15 May 2014 BU ORCID Integration
10
Boston University Slideshow Title Goes Here
Create a web request for URL, “http://api.sandbox-1.orcid.org/orcid-
profile”.
Set the content type for the web request to “application/orcid+xml”
Set the method type to “Post”
Get an access token (see details above) for scope “/orcid-
profile/create”
Add a request header named “Authorization” with a value of “ Bearer
” + access token from prior step.
Send UTF8 encoded bytes to the request stream. The content of the
bytes should be the xml request (See Appendix B for an example)
Get the new ORCID from the location header in the response, e.g.
https://api.sandbox.orcid.org/0000-0001-7132-4668/orcid-profile
If there is a problem, an exception an exception with an HTML type
of BadRequest will be thrown.
Using ORCID APIs: Create an ORCID
15 May 2014 BU ORCID Integration
11
Boston University Slideshow Title Goes Here
Redirect user to http://api.sandbox-
1.orcid.org/oauth/authorize?client_id={client id}&response_type=
code&scope/authenticate&access_type=
offline&redirect_uri={Provide ORCID return page }
User provides credentials at the ORCID site. If successful, ORCID
returns back to the redirect_uri you provided.
On the return page
Get the OAuthCode from the query string parameter named
Code.
Create a web request for URL, “http://api.sandbox-1.orcid.org
/oauth/token”.
Set the content type as “application/x-www-form-urlencoded”
Set the method as “Post”
Using ORCID APIs: Provide an ORCID
15 May 2014 BU ORCID Integration
12
Boston University Slideshow Title Goes Here
Send UTF8 encoded bytes to the request stream. The content of
the bytes should be:
client_id={your client id}&client_secret={your client
secret}&grant_type= authorization_code& code={relevant
OAuthCode from above}&redirect_uri={ redirect_uri you provided
}
Get the ORCID from the JSON response, e.g.
{"access_token":"a8fc79a6-1511-42c8-ba52-55424a91e7cc“
,"token_type":"bearer", "refresh_token":"0f11120d-df0a-42b0-
b95d-348edb406727", "expires_in":631138518,
"scope":"/authenticate", "orcid":"0000-0002-5189-0969"}
Associate the ORCID with that person in the ORCID.Person
table
Using ORCID APIs: Provide an ORCID (cont’d)
15 May 2014 BU ORCID Integration
13
Boston University Slideshow Title Goes Here
Upload Info to ORCID – Part 1 Create messages in
the ORCID.PersonMessage table. Look to see if there is a non-expired “/orcid-profile/read-limited” token
already for the person. If not, create a message to request that
permission.
RecordStatusID = Waiting_for_ORCID_User_for_approval
PermissionID = orcid_profile_read_limited
If the biography or the websites have changed, then create a
message to be sent to ORCID
RecordStatusID = Waiting_for_ORCID_User_for_approval;
PermissionID = orcid_bio_update;
XML_Sent = {See Appendix C for example}
Upload Info to ORCID: Part 1 Create Messages
15 May 2014 BU ORCID Integration
14
Boston University Slideshow Title Goes Here If there are works (pubs) to push, then create a message to be sent
to ORCID
RecordStatusID = Waiting_for_ORCID_User_for_approval;
PermissionID = orcid_works_create;
XML_Sent = {See Appendix D for example}
If there are employment records (affiliations) to push, then create a
message to be sent to ORCID
RecordStatusID = Waiting_for_ORCID_User_for_approval;
PermissionID = affiliations_create;
XML_Sent = {See Appendix E for example}
Upload Info to ORCID: Part 1 Create Messages
(cont’d)
15 May 2014 BU ORCID Integration
15
Boston University Slideshow Title Goes Here Check to see if there is a non expired token granting
access to the desired function. If not, get an access
token (described above) and save a record in the
ORCID.PersonToken table based on the JSON
Response.
Send the message Create a web request for URL, http://api.sandbox-1.orcid.org
/{Persons ORCID}/{Relevant Scope}, e.g.
http://api.sandbox-1.orcid.org /0000-0001-8295-9933/orcid-
bio/update
Set the content type as “application/orcid+xml”
Set the method as “Post” unless it is for a “/orcid-bio/update” in which
case the method is “Put”
Upload Info to ORCID: Part 2 Send Messages
To ORCID
15 May 2014 BU ORCID Integration
16
Boston University Slideshow Title Goes Here Add a request header named “Authorization” with a value of “ Bearer
” + access token from the relevant token mentioned above.
Send UTF8 encoded bytes to the request stream. The content of the
bytes should be whatever is in the Sent_XML field on the message.
Get the response.
If successful, update the message status and move on the next
message.
If an exception is thrown, log it in the ErrorLog and mark the
message as having failed. Move on to the next message.
Upload Info to ORCID: Part 2 Send Messages
To ORCID (cont’d)
15 May 2014 BU ORCID Integration
17
Boston University Slideshow Title Goes Here
We were unfamiliar with OAUTH. It took a little bit of
investigation to figure out how to make the calls in C#.
We had trouble with claiming and communications in
the sandbox. Solved by mailinator.com
Issues we encountered
15 May 2014 BU ORCID Integration
18
Boston University Slideshow Title Goes Here
Delegates in the API and/or Permanent Write privilege
for an institution (could be revoked at any time by the
ORCID owner)
Last Updated property on the ORCID Profile
Ability to edit or delete a specific item. ORCID API
allows adding to or to replacing a section, e.g.
websites or publications, but editing or deleting a
particular item in the record
A WCF Web Service from ORCID for .NET Institutions
A unique identifier from the ORCID system for each
data point in the ORCID record
Features that would be helpful
15 May 2014 BU ORCID Integration
19
Boston University Slideshow Title Goes Here
<?xml version="1.0" encoding="UTF-8"?>
<orcid-message xmlns="http://www.orcid.org/ns/orcid" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.orcid.org/ns/orcid http://orcid.github.com/ORCID-Parent/schemas/orcid-
message/1.0.7/orcid-message-1.0.23.xsd">
<message-version>1.2_rc1</message-version>
<!-- <error-desc>No researcher found.</error-desc> -->
<orcid-profile>
<orcid-activities>
<orcid-works>
<orcid-work visibility="public">
<work-title> <title>Reasoning in evaluation: Inferential links and leaps</title> </work-title>
<work-citation><work-citation-type>formatted-unspecified</work-citation-type>
<citation>Fournier, DM (ed.). Reasoning in evaluation: Inferential links and leaps.</citation></work-citation>
<work-type>journal-article</work-type>
<publication-date><year>1995</year><month>01</month><day>01</day></publication-date>
<work-external-identifiers /></orcid-work>
<orcid-work visibility="public">
<work-title>
<title>Establishing evaluative conclusions: A distinction between general and working logic</title>
</work-title>
<work-citation><work-citation-type>formatted-unspecified</work-citation-type>
<citation>Fournier, DM. . New Directions for Evaluation. 1995; 68:15-32.</citation></work-citation>
<work-type>journal-article</work-type>
<publication-date><year>1995</year><month>01</month><day>01</day></publication-date>
<work-external-identifiers /></orcid-work></orcid-works>
</orcid-activities></orcid-profile></orcid-message>
Appendix A: Sample Message for ORCID API
15 May 2014 BU ORCID Integration
20
<?xml version="1.0" encoding="UTF-8"?>
<orcid-message xmlns="http://www.orcid.org/ns/orcid" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.orcid.org/ns/orcid
http://orcid.github.com/ORCID-Parent/schemas/orcid-message/1.0.7/orcid-message-1.0.23.xsd">
<message-version>1.1</message-version>
<!-- <error-desc>No researcher found.</error-desc> -->
<orcid-profile><orcid-bio>
<personal-details><given-names>Deborah</given-names><family-name>Fournier</family-name></personal-details>
<researcher-urls><researcher-url><url-name>Clinical and Translational Science Institute Leadership</url-name> <url>http://ctsi.bu.edu/index.php/about-
us/leadership/</url> </researcher-url>
<researcher-url><url-name>My Google</url-name><url>www.google.com</url></researcher-url>
</researcher-urls><contact-details><email visibility="limited" primary="true">[email protected]</email></contact-details>
</orcid-bio>
<orcid-activities> <orcid-works>
<orcid-work visibility="public"> <work-title> <title>Book Review of What Counts as Credible Evidence in Applied Research and Evaluation Practice</title>
</work-title>
<work-citation> <work-citation-type>formatted-unspecified</work-citation-type><citation>Fournier, DM. Book Review of What Counts as Credible Evidence in
Applied Research and Evaluation Practice. American Journal of Evaluation. 2009; 30:255-258. .</citation> </work-citation><work-type>journal-article</work-type>
<publication-date><year>2009</year><month>01</month><day>01</day></publication-date><work-external-identifiers />
</orcid-work>
<orcid-work visibility="public"><work-title><title>. New opportunities for dentistry in diagnosis and primary health care: Report of a panel of the Macy
Study</title></work-title>
<work-citation><work-citation-type>formatted-unspecified</work-citation-type><citation>Lamster, IB, Tedesco, LA, Fournier, DM, Goodson, JM, Gould, AR,
Haden NK, Howell, TH, Ship, JA, & Wong, TW. . New opportunities for dentistry in diagnosis and primary health care: Report of a panel of the
Macy Study. American Dental Education Association,. 2008; 1-5..</citation></work-citation><work-type>journal-article</work-type>
<publication-date><year>2008</year><month>01</month><day>01</day></publication-date><work-external-identifiers /></orcid-work>
</orcid-works>
<affiliations>
<affiliation visibility="public"> <type>employment</type><role-title>Assistant Provost for Institutional Research & Evaluation</role-title><organization>
<name>Boston University Medical Campus</name><address><city>Boston</city><region>MA</region><country>US</country></address>
</organization></affiliation>
<affiliation visibility="public">
<type>employment</type><department-name>Community Health Sciences</department-name><role-title>Clinical Associate Professor</role-title>
<organization> <name>Boston University School of Public Health</name><address><city>Boston</city><region>MA</region><country>US</country></address>
</organization></affiliation></affiliations>
</orcid-activities> </orcid-profile></orcid-message>
Appendix B: Sample Create ORCID Message 15 May 2014 BU ORCID Integration
21
Boston University Slideshow Title Goes Here
<?xml version="1.0" encoding="UTF-8"?>
<orcid-message xmlns="http://www.orcid.org/ns/orcid" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.orcid.org/ns/orcid http://orcid.github.com/ORCID-Parent/schemas/orcid-message/1.0.7/orcid-
message-1.0.23.xsd">
<message-version>1.2_rc1</message-version>
<!-- <error-desc>No researcher found.</error-desc> -->
<orcid-profile>
<orcid-bio>
<biography visibility="public">Deborah Fournier is Assistant Provost for Institutional Research and Evaluation at Boston
University Medical Campus and Director of Program Evaluation for the Boston University Clinical and Translational Science
Institute (BU-CTSI). She has more than 20 years of experience in applied social science research and education and social
program evaluation. She collaborates with BU-CTSI directors and researchers to evaluate processes and outcomes related to
advancing team science and improved interconnectivity of researcher networks. At the national-level, she also serves on the CTSA
Evaluation Key Function Committee, participates in the national CTSA evaluation workgroup on Bibliometrics and Social Network
Analysis, as well as the CTSA Education and Career Development and Community Engagement Key Function Committees.
</biography>
<researcher-urls visibility="public">
<researcher-url>
<url-name>Clinical and Translational Science Institute Leadership</url-name>
<url>http://ctsi.bu.edu/index.php/about-us/leadership/</url>
</researcher-url>
<researcher-url visibility="public"><url-name>My Google</url-name><url>www.google.com</url></researcher-url>
</researcher-urls>
</orcid-bio>
</orcid-profile>
</orcid-message>
Appendix C: Sample Bio Message
15 May 2014 BU ORCID Integration
22
Boston University Slideshow Title Goes Here
<?xml version="1.0" encoding="UTF-8"?>
<orcid-message xmlns="http://www.orcid.org/ns/orcid" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.orcid.org/ns/orcid http://orcid.github.com/ORCID-Parent/schemas/orcid-message/1.0.7/orcid-
message-1.0.23.xsd">
<message-version>1.2_rc1</message-version>
<!-- <error-desc>No researcher found.</error-desc> -->
<orcid-profile>
<orcid-activities>
<orcid-works><orcid-work visibility="public">
<work-title><title>Reasoning in evaluation: Inferential links and leaps</title></work-title>
<work-citation><work-citation-type>formatted-unspecified</work-citation-type>
<citation>Fournier, DM (ed.). Reasoning in evaluation: Inferential links and leaps.</citation>
</work-citation>
<work-type>journal-article</work-type>
<publication-date><year>1995</year><month>01</month><day>01</day></publication-date>
<work-external-identifiers /> </orcid-work>
<orcid-work visibility="public">
<work-title><title>Establishing conclusions: A distinction between general and working logic</title></work-title>
<work-citation><work-citation-type>formatted-unspecified</work-citation-type><citation>Fournier, DM. .New Directions
for Evaluation. 1995; 68:15-32.</citation> </work-citation>
<work-type>journal-article</work-type>
<publication-date><year>1995</year><month>01</month><day>01</day></publication-date>
<work-external-identifiers />
</orcid-work></orcid-works></orcid-activities></orcid-profile></orcid-message>
Appendix D: Sample Works Create Message
15 May 2014 BU ORCID Integration
23
Boston University Slideshow Title Goes Here
<?xml version="1.0" encoding="UTF-8"?>
<orcid-message xmlns="http://www.orcid.org/ns/orcid" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.orcid.org/ns/orcid http://orcid.github.com/ORCID-Parent/schemas/orcid-
message/1.0.7/orcid-message-1.0.23.xsd">
<message-version>1.2_rc1</message-version>
<!-- <error-desc>No researcher found.</error-desc> -->
<orcid-profile>
<orcid-activities>
<affiliations>
<affiliation visibility="public">
<type>employment</type>
<role-title>Director, Program Evaluation for the BU Clinical and Translational Science Institute</role-title>
<organization>
<name>Boston University Medical Campus</name>
<address><city>Boston</city><region>MA</region><country>US</country></address>
</organization>
</affiliation>
</affiliations>
</orcid-activities>
</orcid-profile>
</orcid-message>
Appendix E: Sample Affiliations Create Message
15 May 2014 BU ORCID Integration
24