orcid outreach conference 2014 best practices technical

25
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

Upload: peterflynn2509

Post on 23-Aug-2014

478 views

Category:

Internet


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: ORCID Outreach Conference 2014 Best practices technical

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

Page 2: ORCID Outreach Conference 2014 Best practices technical

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

Page 3: ORCID Outreach Conference 2014 Best practices technical

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

Page 4: ORCID Outreach Conference 2014 Best practices technical

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

Page 5: ORCID Outreach Conference 2014 Best practices technical

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

Page 6: ORCID Outreach Conference 2014 Best practices technical

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

Page 7: ORCID Outreach Conference 2014 Best practices technical

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

Page 8: ORCID Outreach Conference 2014 Best practices technical

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

Page 9: ORCID Outreach Conference 2014 Best practices technical

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

Page 10: ORCID Outreach Conference 2014 Best practices technical

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

Page 11: ORCID Outreach Conference 2014 Best practices technical

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

Page 12: ORCID Outreach Conference 2014 Best practices technical

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

Page 13: ORCID Outreach Conference 2014 Best practices technical

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

Page 14: ORCID Outreach Conference 2014 Best practices technical

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

Page 15: ORCID Outreach Conference 2014 Best practices technical

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

Page 16: ORCID Outreach Conference 2014 Best practices technical

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

Page 17: ORCID Outreach Conference 2014 Best practices technical

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

Page 18: ORCID Outreach Conference 2014 Best practices technical

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

Page 19: ORCID Outreach Conference 2014 Best practices technical

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

Page 20: ORCID Outreach Conference 2014 Best practices technical

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

Page 21: ORCID Outreach Conference 2014 Best practices technical

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

Page 22: ORCID Outreach Conference 2014 Best practices technical

<?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, &amp; 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 &amp; 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

Page 23: ORCID Outreach Conference 2014 Best practices technical

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

Page 24: ORCID Outreach Conference 2014 Best practices technical

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

Page 25: ORCID Outreach Conference 2014 Best practices technical

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