LIBREAS.Library Ideas

Rebuilding ORCID profiles with R

Posted in LIBREAS aktuell by libreas on 29. November 2012

With the launch of ORCID, users have submitted ideas to improve the ORCID Registry. Requests, that are are shared on the Support Home Page include:

or refer to the current state of publication listings.

As suggested by Gudmundur Thorisson, there are already services into place which may allow to address these issues. To demonstrate the usefulness of these services and APIs, I rebuilt ORCID publication listing in R. Since I don’t have an ORCID (yet), I used Martin Fenners profile as an example:

First, I queried Sciencecard for the DOI for each publication claimed in a ORCID profile.

library(RJSONIO)

tt <- fromJSON("http://sciencecard.org/api/v3/users/0000-0003-1419-2405?info=summary")

doi <- c()
for (i in 1 : length(tt$user$articles)) {
  doi.tmp <- tt$user$articles[[i]]$article$doi
  date.tmp <- tt$user$articles[[i]]$article$publication_date
  doi <- c(doi,doi.tmp)
}

In the next step, the CSL representation and metadata provided via DOI content negotiation are fetched.

library(httr)
library(XML)
library(RJSONIO)

my.cites <- data.frame()
for (i in doi) {
   csl.tmp <- content(GET(paste("http://dx.doi.org/",i, sep=""),  add_headers(Accept = "text/x-bibliography;style=mla")))
   doi.xml <- GET(paste("http://dx.doi.org/",i, sep=""), 
                    add_headers(Accept = "Accept: application/vnd.crossref.unixref+xml;q=1, application/rdf+xml;q=0.5"))
   doc <- xmlTreeParse(doi.xml, useInternal = T)
   year.tmp <- as.numeric(xpathSApply (doc,"//publication_date//year",xmlValue) [1])
   tmp <- data.frame(csl.tmp,year.tmp,i)
   my.cites <- rbind(my.cites,tmp)
   
}

my.cites <- my.cites[unique(my.cites$i),]

my.cites <- my.cites[rev(order(my.cites$year.tmp)),]

Executed within a brew template, it is easy to reuse this information to set up an alternative web profile for publications claimed in ORCID, that are deduplicated, ordered chronological and displayed in a reference style convention.

After calling

library(brew)
brew("sciencecard.brew","sciencecard.html")

a webprofile built with R can be made available online

The brew template is available on github:gist. A first R package for ORCID is provided by rOpenSci.

Najko Jahn

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: