Communication : Unpaywall, un miroir et une API à l’Inist-CNRS

unpaywall website

 

 

Unpaywall dans l’écosystème ezPAARSE-ezMESURE

 

 

Bonjour,

 

Nous sommes heureux de vous annoncer la mise en place d’un nouveau service dans l’écosystème d’ezPAARSE/ezMESURE : un miroir de la base de données Unpaywall, accessible via une API dédiée.

Il s’agit de l’accès aux mêmes données que la base Unpaywall déjà disponible gratuitement et publiquement sur https://unpaywall.org/

Unpaywall, c’est quoi ?

Unpaywall est fourni sous licence libre MIT et expose des métadonnées riches sur les contenus en accès ouvert de plus de 50.000 éditeurs et archives ouvertes. L’objectif principal est que ce contenu numérique soit facile à trouver pour en faciliter l’accès aux chercheurs. On peut accéder aux données d’Unpaywall par une extension Google Chrome ou Firefox.

Parmi les 130 millions d’articles scientifiques référencés par Unpaywall, sa base contient plus de 28 millions de références en accès ouvert.

Les chercheurs peuvent interroger la base de données avec le DOI d’un article pour savoir s’il est publié en Open Access et sur quelle plateforme d’édition scientifique. En effet, un même article, ou différentes versions d’un même article, peuvent être disponibles en ligne derrière une barrière payante chez un éditeur et de façon gratuite chez un autre. Source : article wikipédia 

ezPAARSE et le middleware Unpaywall

L’équipe ezTEAM a développé un middleware pour ezPAARSE qui permet d’interroger l’API Unpaywall lors d’un traitement d’un fichier de logs.

Ce middleware enrichit les événements de consultations (ECs) générés avec des informations sur le caractère “Open Access” de chaque article consulté sur une plateforme payante à un instant T. On peut ainsi connaître la part d’articles disponibles gratuitement sur l’ensemble des consultations. Cela peut être très utile pour les négociateurs. 

Le middleware Unpaywall a été testé longuement et sur de grandes quantités de données d’usage par nos partenaires de la bibliothèque Nationale du Luxembourg / Consortium.lu quand le miroir ezUnpaywall n’était pas encore en place. Il sera bientôt mis en production et accessible à toutes les instances* d’ezPAARSE, une fois mises à jour.

* Après accord avec ourresearch.org

 

Quelles sont les informations Open Access fournies par Unpaywall ?

unpaywall champs récupérés

Quand on interroge l’API Unpaywall avec le DOI d’un article de périodique, on reçoit, en plus des métadonnées bibliographiques habituelles (titre du périodique, ISSN, date de publication, etc.), 4 informations importantes : 

  • oa_status (green, gold..)
  • is_oa (l’article est en Open-Access)
  • journal_is_oa (le journal est en Open-Access)
  • journal_is_in_doaj (le journal figure sur le portail des journaux en Open-Access)

 

Une information de date de mise à jour est aussi fournie : c’est le champ “updated”. Les périodiques et les articles en Open Access peuvent changer de statut en cours d’année. 

Un traitement de logs avec un enrichissement Unpaywall ne sera pertinent que pendant la période comprise entre deux mises à jour du contenu de la base. 

Pourquoi développer une base “miroir” et une API dédiée pour Unpaywall à l’Inist-CNRS ?

Le retour d’expérience de nos collègues de la BNL nous montre que le traitement de logs est très long quand on interroge l’API publique d’Unpaywall. Le nombre de requêtes est en outre limité à 100.000 par jour.

Ces limitations sont incompatibles avec une intégration du middleware dans un traitement courant des logs dans ezPAARSE. A titre d’exemple, les seules logs journaliers du portail BibCNRS sont déjà trop volumineuses…

Pour y remédier Unpaywall propose un export (snapshot) de sa base de données :

database snapshot unpaywall

C’est un export complet de toute la base de données, qui contient une grande partie des DOI déjà référencés par Crossref : la base en compte plus de 100 millions à ce jour. 

Chaque DOI est relié aux métadonnées bibliographiques ainsi qu’aux informations sur le caractère Open Access des items référencés, ainsi que les URLs des articles disponibles gratuitement sur les plateformes. Le fichier pèse plus de 85 Go et, comme c’est une base évolutive ouverte, les mises à jour peuvent être téléchargées chaque semaine (sur abonnement payant). Elles contiennent toutes les modifications apportées à la base au cours de la semaine écoulée, et en particulier : les informations Open Access à jour, les nouveaux DOI, etc.

L’objectif de l’équipe ezMESURE a donc été de créer une base “miroir” Unpaywall opérée à l’Inist-CNRS, capable de communiquer avec le middleware spécifique pour enrichir les ECs dans le cadre d’une mise en production automatisée. 

ezUnpaywall

Léo Felix a rejoint l’équipe ezTeam au printemps 2020 pour développer ce projet que nous avons baptisé “ezUnpaywall”. Le projet complet et documenté est disponible sur notre dépôt Github : https://github.com/ezpaarse-project/ezunpaywall 

Différents choix techniques ont été évalués par Léo et validés par l’équipe ezTEAM. Dans un premier temps les données ont été stockées dans une base PostgreSQL, sur le modèle de la base Unpaywall de référence. Nous avons finalement opté pour un stockage dans le moteur d’indexation et de recherche Elastic, déjà bien maîtrisé par l’équipe pour les autres briques de la chaine ezPAARSE/ezMESURE.

shema ezunpaywall v2

La nouvelle API, nommée ezUnpaywall, possède son propre environnement de développement qui reproduit à l’identique la base Unpaywall d’origine. De nombreux tests ont été réalisés et consacrés en particulier aux paramétrages du cluster Elastic dédié, pour en optimiser les temps de réponse et la capacité à tenir la charge.

Vers des enrichissements Open Access pour ezPAARSE et des temps de traitement courts

Le portail BibCNRS génère de volumineux fichiers de logs qui sont ensuite quotidiennement traités par ezPAARSE à l’Inist-CNRS. L’enrichissement des ECs se fait principalement grâce à l’API Crossref qu’on interroge avec des DOI. Ces enrichissements Crossef consomment un temps considérable au regard de l’ensemble des traitements.

Depuis plusieurs mois, nous avons constaté que l’API Crossref (très sollicitée) ne répondait pas toujours correctement et provoquait même régulièrement l’interruption de nos traitements. Le middleware Crossref a été adapté pour répondre plus efficacement aux requêtes et être utilisé en mode payant par les utilisateurs abonnés (voir notre article Le middleware Crossref évolue pour les détails).

Une étape supplémentaire est prévue : celle de prioriser les informations issues du miroir ezUnpaywall afin de minimiser les appels vers CrossRef et ainsi gagner encore en temps de traitement.

Une fois les tests finalisés et validés, ce comportement sera disponible pour toutes les instances ezPAARSE des organismes membres du consortium Couperin.org

En bonus : une interface d’interrogation de l’API

Là aussi dans le cadre de la souscription des organismes à Couperin.org, une interface Web publique est disponible pour utiliser l’API depuis son navigateur. 

interface ezunpaywall

Il suffit de glisser-déposer un fichier au format tableur CSV qui comporte une colonne “DOI” pour récupérer un fichier résultat enrichi avec les données Unpaywall.

A terme, l’usage du miroir Unpaywall n’est pas uniquement réservé au projet ezPAARSE-ezMESURE, il sera amené à s’ouvrir en fonction des retours utilisateurs et des accords passés avec ourresearch, à l’origine de la mise à disposition de ces données.

 

Dominique Lechaudel, Thomas Porquet, Léo Felix et Frédéric Truong.