Tasca #5253
tancatExtracció automàtica de la base de dades de Crossref a partir de l'API
Descripció
Ara ja tenim una extracció automàtica d'informació bibliogràfica de Scopus a partir del doi (#4614). Però, a partir dels errors que hem estat rebent, hi ha una certa quantitat de registres que no hi són a Scopus però sí a la base de dades de dois (https://doi.org). Perquè, de fet, la web https://doi.org no només serveix de repositori d'adreces permanents (i curtes) que redirigeixen a la web oficial (típicament de l'editor), sinó que també conté una base de dades bibliogràfica que és accessible via api. Perquè, a hores d'ara, ja sabem que per registrar un doi, cal informar d'una certa quantitat d'informació bibliogràfica, que típicament aporta l'editor.
Aquesta tasca és per avaluar la possibilitat d'aprofitar aquesta informació quan no existeix el registre a Scopus (per exemple) però sí a https://doi.org. Estic pensant de posar-ho com una casella opcional a https://ddd.uab.cat/dois.py (amb un valor predeterminat de sí o no, ja ho concretarem).
He trobat unes quantes fonts d'informació de com extreure-la (majoritàriament a partir de la primera entrada i estirant del fil de les referencies):
- https://stackoverflow.com/questions/10507049/get-metadata-from-doi
- http://www.doi2bib.org/ (servei web perquè es pugui fer la consulta sense utilitzar l'api)
- https://github.com/davidagraf/doi2bib (programa que hi ha al darrera del servei anterior)
Al final de l'entrada de stackoverflow.com, hi ha aquesta frase, que no estic segur de quina importància té, ja que les proves que estic fent funcionen sense haver-nos-hi registrat:
CrossRef has an API, which you can use with an API key that can be obtained free of charge from http://www.crossref.org/requestaccount/.
Fitxers
FJ Actualitzat per Ferran Jorba fa aproximadament 7 anys
- S'ha afegit relacionat amb Tasca #4614: Extracció automàtica de la base de dades de Scopus a partir de l'API
FJ Actualitzat per Ferran Jorba fa aproximadament 7 anys
Cristina, com ho veus?
CA Actualitzat per Cristina Azorin fa aproximadament 7 anys
Ho veig molt bé, molt complementari al formulari de Scopus actual. No acabo de veure la casella opcional si això vol dir que la gent ha de fer una cerca prèvia a Scopus (que sospito que no faran), potser sí veig l'opció de que carreguin DOI's via Scopus i si el resultat dona un 'no trobat' els tornin a demanar amb aquesta nova opció.
FJ Actualitzat per Ferran Jorba fa aproximadament 7 anys
És que no m'he explicat gens bé. La casella opcional seria per fer una pregunta de l'estil (la redacció és millorable, evidentment):
- Si el registre no existeix a Scopus, voleu importar la informació bibliogràfica que hi ha a de l'editor a la base de dades https://doi.org?
I, segurament, deixar-la marcada per defecte amb un Sí, però si per alguna cosa alguna vegada interessa que no, que només es vol Scopus, que al menys hi hagi la possibilitat de decidir-ho.
CA Actualitzat per Cristina Azorin fa aproximadament 7 anys
- Assignat a ha canviat de Cristina Azorin a Ferran Jorba
ok
FJ Actualitzat per Ferran Jorba fa aproximadament 7 anys
Només perquè ara ho tinc fresc: segons la capçalera http, no només canvia la presentació (línia a línia o tot junt), sinó també la codificació dels diacrítics:
$ curl -LH "Accept: application/x-bibtex" https://doi.org/10.3390/foods7090137
@article{Espinosa_Pesqueira_2018,
doi = {10.3390/foods7090137},
url = {https://doi.org/10.3390%2Ffoods7090137},
year = 2018,
month = {aug},
publisher = {{MDPI} {AG}},
volume = {7},
number = {9},
pages = {137},
author = {Diana Espinosa-Pesqueira and Maria Hern{\'{a}}ndez-Herrero and Artur Roig-Sagu{\'{e}}s},
title = {High Hydrostatic Pressure as a Tool to Reduce Formation of Biogenic Amines in Artisanal Spanish Cheeses},
journal = {Foods}
$ curl -LH "Accept: text/bibliography; style=bibtex" https://doi.org/10.3390/foods7090137
@article{Espinosa_Pesqueira_2018, title={High Hydrostatic Pressure as a Tool to Reduce Formation of Biogenic Amines in
Artisanal Spanish Cheeses}, volume={7}, ISSN={2304-8158}, url={http://dx.doi.org/10.3390/foods7090137},
DOI={10.3390/foods7090137}, number={9}, journal={Foods}, publisher={MDPI AG}, author={Espinosa-Pesqueira, Diana and
Hernández-Herrero, Maria and Roig-Sagués, Artur}, year={2018}, month={Aug}, pages={137}}
Encara que inicialment el primer sigui més clar, per la codificació dels diacrítics, ja en utf-8, és millor agafar la segona forma.
FJ Actualitzat per Ferran Jorba fa quasi 7 anys
- S'ha afegit Fitxer unixref.xml unixref.xml
Una de les entrades de https://stackoverflow.com/questions/10507049/get-metadata-from-doi porta a https://stackoverflow.com/questions/30904755/extract-abstract-full-text-from-scientific-literature-given-doi-or-title, i allà hi ha una manera alternativa d'obtenir les metadades. Per exemple, del registre d'exemple en BibTeX ja utilitzat abans:
http://api.crossref.org/works/10.3390/foods7090137
Aquesta entrada de stackoverflow posa encara una altra sintaxi:
$ curl -LH "Accept:application/vnd.crossref.unixref+xml" http://dx.crossref.org/10.3390/foods7090137
Adjunto el resultat (unixref.xml), perquè és llarg.
FJ Actualitzat per Ferran Jorba fa més de 6 anys
Més documentació (oficial): https://github.com/CrossRef/rest-api-doc
CA Actualitzat per Cristina Azorin fa aproximadament 6 anys
- Paraula clau s'ha establert a NC
CA Actualitzat per Cristina Azorin fa aproximadament 6 anys
- Paraula clau ha canviat de NC a NCR
FJ Actualitzat per Ferran Jorba fa més de 5 anys
Això de l'api de Crossref és un monstre de proporcions considerables. Un botó:
https://github.com/CrossRef/rest-api-doc/blob/master/README.md
A més, té alguna relació que no acabo d'entendre amb doi.org. En tot cas, són dues apis diferents, una senzilla (doi.org) i una altra que cal estudiar millor per saber què ens convé. Però, per tenir una certa informació sobre sobre la validesa dels nostres dois, amb el registre bibtex de doi.org, amb registres en format bibtex, sembla que en tenim prou.
Sigui com sigui, com que ara mateix m'interessava validar uns dois de registres nostres, he començat a a recol·lectar els registres bibtex de doi.org, començant pels que el programa https://ddd.uab.cat/idregistres.py detecta com a possibles duplicats. Aquests ja els tinc tots, i ara va recol·lectant els altres, mica a mica.
El resultat dels que ja estan recol·lectats es pot veure fent la cerca per text lliure (que en aquest cas vol dir doi) a https://ddd.uab.cat/idregistres.py, p. ex: https://ddd.uab.cat/idregistres.py/search?q=10.1002/1878-0261.12547
En aquest cas podem veure que aquest doi el tenim a dos registres duplicats (mea culpa), podem veure en el registre breu també que el títol a doi.org es el mateix, i a sota, el registre complet tal com el donen en bibtex. De moment suficient per confirmar o desmentir un doi.
Amb això he après també que no és suficient per importar registres com a alternativa a Scopus, però m'ha ajudat a posar cada cosa en el seu lloc.
FJ Actualitzat per Ferran Jorba fa més de 5 anys
- Estat ha canviat de Creada a En curs
De moment continuem recollint els registres bibtex de doi.org, de 10 en 10 cada 10 minuts (per no sobrecarregar el seu sevidor). Ara ja en portem més de 6.000, dels 26.500 dois que tenim al DDD.
De moment aquesta informació (m')haurà de servir per confirmar o posar en dubte alguns dois que tenim al DDD. Pel que fa a l'alternativa a Orcid, ja veig que existeix, però utilitzant els serveis de crossref.org. Malhauradament, el que m'hagués agradat més, el seu servidor oai, no és gratuït:
CA Actualitzat per Cristina Azorin fa més de 5 anys
- Data de venciment s'ha establert a 18-12-2020
- Prioritat ha canviat de Normal a Baixa
FJ Actualitzat per Ferran Jorba fa més de 5 anys
- Estat ha canviat de En curs a Tancada
Ja els tenim tots, i es van actualitzant diàriament.
CA Actualitzat per Cristina Azorin fa més de 5 anys
- Paraula clau s'ha suprimit (
NCR)