Capítulo 9 Consulta de fuentes bibliográficas
En este apartado vamos a consultar dos fuentes de datos bibliográficas que disponen de APIs que se pueden interpelar desde R: Crossref y Unpaywall.
9.1 Crossref
Crossref es una organización dedicada a enlazar metadatos de publicaciones académicas. Para interactuar con su API vamos a utilizar el paquete rcrossref
. Lo primero, como siempre, es instalar el paquete y llamarlo.
library(rcrossref)
La función cr_works()
permite buscar documentos por DOI. Podemos buscar directamente algunos DOIs o guardarlos previamente en un objeto para buscarlos todos conjuntamente como haremos a continuación.
<- c("10.1038/s41598-019-57002-9",
dois "10.1155/2019/4146362",
"10.1186/s13100-019-0197-9",
"10.1038/s41598-019-56941-7",
"10.1177/1087054719894378")
<- cr_works(dois) referencias
La siguiente es otra manera de hacer lo mismo con una única función.
<- cr_works(dois=c("10.1002/leap.1347",
referencias "10.1108/OIR-09-2019-0291",
"10.1353/pla.2020.0031",
"10.1016/j.acalib.2018.07.012"))
La información contenida en el objeto referencias
está organizada en tres partes (meta, data y facets), pero la más interesante es la denominada data. Usaremos la función pluck()
del paquete purrr
para extraer esta información y guardarla en un nuevo objeto. Para concatenar las funciones usaremos un pipe %>%
. Se trata de un operador que toma el resultado de una acción para convertirlo inmediatamente en el input de la siguiente.
library(purrr)
library(tidyverse)
<- cr_works(dois) %>%
referencias2 ::pluck("data") purrr
De entre la información disponible, vamos a extraer tres campos: título, doi e issn.
<- referencias2 %>%
referencias3 ::select(title, doi, issn) dplyr
Veamos algunos ejemplos de búsquedas por campos guardando los resultados en un nuevo objeto.
<- cr_works(query = "ecologia")
ecologia <- cr_works(flq = c(query.author = "urbano")) urbano
Y un par de ejemplos de consultas que nos devuelven el resultado en la consola.
cr_citation_count("10.1002/leap.1099")
## doi count
## 1 10.1002/leap.1099 32
cr_journals(issn = "1575-5886")
## $meta
## NULL
##
## $data
## title
## 1 BiD textos universitaris de biblioteconomia i documentaci<U+FFFD>
## publisher issn last_status_check_time
## 1 Edicions de la Universitat de Barcelona 1575-5886 2021-11-03
## deposits_abstracts_current deposits_orcids_current deposits
## 1 TRUE FALSE TRUE
## deposits_affiliations_backfile deposits_update_policies_backfile
## 1 FALSE FALSE
## deposits_similarity_checking_backfile deposits_award_numbers_current
## 1 FALSE FALSE
## deposits_resource_links_current deposits_ror_ids_current deposits_articles
## 1 FALSE FALSE TRUE
## deposits_affiliations_current deposits_funders_current
## 1 FALSE FALSE
## deposits_references_backfile deposits_ror_ids_backfile
## 1 TRUE FALSE
## deposits_abstracts_backfile deposits_licenses_backfile
## 1 FALSE FALSE
## deposits_award_numbers_backfile deposits_open_references_backfile
## 1 FALSE TRUE
## deposits_open_references_current deposits_descriptions_current
## 1 TRUE FALSE
## deposits_references_current deposits_resource_links_backfile
## 1 TRUE FALSE
## deposits_descriptions_backfile deposits_orcids_backfile
## 1 FALSE FALSE
## deposits_funders_backfile deposits_update_policies_current
## 1 FALSE FALSE
## deposits_similarity_checking_current deposits_licenses_current
## 1 FALSE FALSE
## affiliations_current similarity_checking_current descriptions_current
## 1 0 0 0
## ror_ids_current funders_backfile licenses_backfile funders_current
## 1 0 0 0 0
## affiliations_backfile resource_links_backfile orcids_backfile
## 1 0 0 0
## update_policies_current open_references_backfile ror_ids_backfile
## 1 0 1 0
## orcids_current similarity_checking_backfile references_backfile
## 1 0 0 0.08088235
## descriptions_backfile award_numbers_backfile update_policies_backfile
## 1 0 0 0
## licenses_current award_numbers_current abstracts_backfile
## 1 0 0 0
## resource_links_current abstracts_current open_references_current
## 1 0 0.1875 1
## references_current current_dois backfile_dois total_dois
## 1 0.1666667 96 272 368
##
## $facets
## NULL
9.2 Unpaywall
Unpaywall es una extensión de navegador para localizar versiones en acceso abierto de artículos científicos. Para consultarlo desde R utilizaremos el paquete roadoi
.
library(roadoi)
Haremos una consulta sobre la disponibilidad de los artículos cuyos DOIs teníamos guardados en el objeto mis_dois. Aunque la consulta es libre, nos pide que nos identifiquemos con nuestro correo electrónico.
<- roadoi::oadoi_fetch(dois = dois, email = "borrego@ub.edu") dois_oa
Consultamos los campos en los que está organizada la información que hemos recuperado. Para conocer el significado puedes consultar la página web de Unpaywall.
names(dois_oa)
## [1] "doi" "best_oa_location" "oa_locations"
## [4] "oa_locations_embargoed" "data_standard" "is_oa"
## [7] "is_paratext" "genre" "oa_status"
## [10] "has_repository_copy" "journal_is_oa" "journal_is_in_doaj"
## [13] "journal_issns" "journal_issn_l" "journal_name"
## [16] "publisher" "published_date" "year"
## [19] "title" "updated_resource" "authors"
Del objeto con la información podemos eliminar los documentos para los que no existe una versión en acceso abierto.
<- dois_oa %>% dplyr::filter(is_oa == TRUE) dois_oa2
9.3 Ejercicio 9. Extracción de datos de Crossref y Unpaywall
Realiza una búsqueda en Scopus sobre algún tema o autor de tu interés. Descarga los DOIs de los primeros diez resultados (o escoge diez resultados que te interesen). A continuación, busca en Crossref estos 10 artículos y extrae sus títulos. Finalmente, determina, a través de Unpaywall, si están disponibles en acceso abierto.