27 octobre 2017

Briefly, what's a DOI?

  • DOI for Digital object identifier
  • Unique identifier for digital objects (movies to scientific articles)
  • At publication stage, each publishers has the responsability to ask for a DOI
  • ISO 26324:2012

Retrieve data from DOI

How can I take advantage of DOI?

  • crossref offers web service to retrieve metadata from DOI.
  • rcrossref is a R package based on this web service.

Retrieve data

Install the package

install.packages('rcrossref')
library('rcrossref')
vecDOI <- c('10.1111/brv.12359','10.1649/0010-065X-68.2.343','10.1890/14-1858.1')

Get the bibtex from DOI

Bibtex is a suitable format (supported by Mendeley) which contains all the metadata of an article.

bib1 <- cr_cn(vecDOI[2], format='bibtex', style = "apa")
bib1

[1] "@article{Brousseau_2014,= {10.1649/0010-065x-68.2.343},= {https://doi.org/10.1649%2F0010-065x-68.2.343},= 2014,= {jun},= {Coleopterists Society},= {68},= {2},= {343–344},= {Pierre-Marc Brousseau and Dominique Gravel and I. Tanya Handa},= {First Record In Canada {ofOnthophilus} {pluricostatusLeConte} (Coleoptera: Histeridae) and a New Mention for the Rare {SpeciesLordithon} niger(Gravenhorst) (Coleoptera: Staphylinidae)},= {The Coleopterists Bulletin}}"

Get the bibtex from DOI

Bibtex is a suitable format (supported by Mendeley) which contains all the metadata of an article.

bib1 <- cr_cn(vecDOI[1], format='bibtex', style = "apa")
bib1

Diverse format available:

rdf-xml, turtle, citeproc-json, citeproc-json- ish, text, ris, bibtex (default), crossref-xml, datacite-xml,bibentry, or crossref-tdm

Get the bibtex from DOI

Looping of the DOI vector

lsf <- lapply(vecDOI, cr_cn, format='bibentry')

Get the author of each articles

lsaut <- lapply(lsf, function(x) x$author)
lsaut[1]
R>>  [[1]]
R>>   [1] "W. Daniel Kissling"         "Jorge A. Ahumada"          
R>>   [3] "Anne Bowser"                "Miguel Fernandez"          
R>>   [5] "Néstor Fernández"           "Enrique Alonso Garc\\'\\ia"
R>>   [7] "Robert P. Guralnick"        "Nick J. B. Isaac"          
R>>   [9] "Steve Kelling"              "Wouter Los"                
R>>  [11] "Louise McRae"               "Jean-Baptiste Mihoub"      
R>>  [13] "Matthias Obst"              "Monica Santamaria"         
R>>  [15] "Andrew K. Skidmore"         "Kristen J. Williams"       
R>>  [17] "Donat Agosti"               "Daniel Amariles"           
R>>  [19] "Christos Arvanitidis"       "Lucy Bastin"               
R>>  [21] "Francesca De Leo"           "Willi Egloff"              
R>>  [23] "Jane Elith"                 "Donald Hobern"             
R>>  [25] "David Martin"               "Henrique M. Pereira"       
R>>  [27] "Graziano Pesole"            "Johannes Peterseil"        
R>>  [29] "Hannu Saarenmaa"            "Dmitry Schigel"            
R>>  [31] "Dirk S. Schmeller"          "Nicola Segata"             
R>>  [33] "Eren Turak"                 "Paul F. Uhlir"             
R>>  [35] "Brian Wee"                  "Alex R. Hardisty"

Get the journal of each articles

lsjnl <- lapply(lsf, function(x) x$journal)
lsjnl[1]
R>>  [[1]]
R>>  [1] "Biological Reviews"