Citations, métriques alternatives, Open Access, data : comment extraire facilement l’information pour l’analyser

Quelles publications sont Open Access ? Combien de fois sont-elles citées ? Font-elles l’objet de reprise sur Twitter ? Ont-elles des datasets associés ? Autant de questions qui nécessitent d’interroger plusieurs sources avant de pouvoir commencer l’analyse. Mais si on ne maîtrise pas certains outils ou langages informatiques, la collecte et la compilation des données pour enrichir un corpus de publications peut s’avérer difficile.

L’objectif ici est de présenter des « extracteurs de données » très simples, principalement conçus dans Google Sheets, pour un usage immédiat ou pour être adaptés facilement à des dizaines d’autres situations.

Le lecteur pressé pourra directement accéder aux différents extracteurs et se passer de leur présentation en cliquant sur ces liens :

 

Open Access : un extracteur Unpaywall & HAL

Nous avons eu l’opportunité de présenter cet extracteur à l’occasion des journées CasuHAL 2018 au cours de l’atelier « Comment booster le taux de full-texts dans HAL«  que nous avons animé avec Romain Boistel. La démarche proposée lors de cet atelier était en quelque sorte le deuxième épisode du post du même nom que nous avions publié sur Carnet’IST en 2017.

Cet extracteur repose sur le script ImportJSON initialement publié ici, désormais maintenu via cette page, et qui, une fois déployé, met à disposition la fonction ImportJSON() dans Google Sheets. Elle permet alors d’extraire sans coder toutes les informations qu’une URL retourne au format JSON. C’est le cas de l’API d’Unpaywall, dont c’est le format de sortie unique et de celle de HAL à qui on indique dans un paramètre le format souhaité.

[On ne présente plus Unpaywall, anciennement oaDOI, dont nous avons déjà parlé ici et que nous avions testé à ses débuts ici.]

Sur la base d’une liste de DOIs, cet extracteur récupère l’information qui permettra de déterminer si la publication recherchée (via son DOI donc) est en Open Access ou pas et de livrer les détails de l’analyse.

Pour utiliser l’extracteur Unpaywall-HAL,
cliquer ici et faire une copie dans son compte Google.

Pour collecter les données nécessaires à ses propres analyses, il suffit de faire un simple copier-coller d’une liste de DOIs en colonne C. Il faut aussi saisir son mail en cellule A8 et appliquer ensuite tous les calculs en utilisant la poignée de recopie. Quelques instants de patience (plus ou moins selon le nombre de DOIs) et il suffit d’admirer le résultat !

Alimenter l’extracteur en quelques clics

 

Comment ça marche ? Premier niveau de détails

Les DOIs sont collés colonne C et leur statut Open Access est calculé colonne D, « bilan OA ».

L’API d’Unpaywall nous retourne pour chaque DOI :

  • colonne E : si la publication est en Open Access ou pas
  • colonne F : si la revue est une revue Open Access ou pas
  • colonne G : si la revue est dans le DOAJ ou non
  • colonne H : la meilleure source éventuelle du full-text (chez l’éditeur ou dans une archive ouverte)

L’API de HAL nous retourne :

  • colonne I : l’identifiant HAL du dépôt s’il existe
  • colonne J : le nombre de notices pour le DOI testé ; évidemment c’est ici l’occasion de procéder à quelques dédoublonnages dans HAL…
  • colonne K : si la publication est en OA selon Unpaywall ; HAL a effectivement intégré Unpaywall dans son interface (voir billet du blog du CCSD) sur les notices sans texte intégral afin d’offrir la possibilité à celui qui les consulte de rebondir vers une version Open Access qu’Unpaywall aurait trouvée. Et si Unpaywall ne trouve rien, HAL interroge ISTEX. ATTENTION : si l’API de HAL trouve in fine la publication dans ISTEX, la valeur indiquée comme bilan OA dans l’extracteur restera « non-OA » puisqu’ISTEX n’est pas une base Open Access.
  • colonne L : en fonction de ce qui est retournée colonne K, l’URL pointant vers le fichier est récupérée
  • colonne M : l’URL du full-text si le dépôt existe

 

Comment ça marche vraiment ? Deuxième niveau de détails

La fonction ImportJSON fonctionne de la manière suivante, avec 3 arguments :

=importJSON(URL, requête, options)

Nous choisissons noHeaders (cellule A5) comme option d’affichage des résultats sans les en-têtes. Il nous reste donc à bâtir les 2 URLs qui permettront d’interroger l’API d’Unpaywall et celle de HAL.

Unpaywall

L’URL pour interroger Unpaywall est simplement constituée de 3 parties :

URL de l'API + le DOI + votre mail

https://api.unpaywall.org/v2/DOI?email=adresse_mail

https://api.unpaywall.org/v2/DOI_en_ColonneC?email=votre_mail_en_A8

https://api.unpaywall.org/v2/10.5194/tc-10-1647-2016?email=mail@tutu.com

[Pour faciliter la lecture du fichier JSON retourné, il est conseillé d’installer une extension dans le navigateur, comme par exemple celle-ci pour Chrome.]

La fonction ImportJSON attend ensuite en deuxième argument une requête. Nous en avons 4 à formuler pour obtenir les valeurs qui nous intéressent :

  • colonne E : /is_oa
  • colonne F : /journal_is_oa
  • colonne G : /journal_is_in_doaj
  • colonne H : /best_oa_location/evidence

Par commodité, pour éviter d’avoir à les ressaisir à chaque fois, ces 4 requêtes sont saisies dans les cellules A15 à A18.

HAL

L’API de HAL fonctionne de la même manière, il faut cependant préciser le format de sortie et les champs à retourner. Le mail n’est pas nécessaire :

https://api.archives-ouvertes.fr/search/?wt=json&fq=doiId_s:(DOI)&fl=champ_attendu1,champ_attendu2

https://api.archives-ouvertes.fr/search/?wt=json&fq=doiId_s:(DOI_en_ColonneC)&fl=halId_s,fileMain_s,linkExtId_s,linkExtUrl_s

https://api.archives-ouvertes.fr/search/?wt=json&fq=doiId_s:(10.1007/s40314-013-0076-9)&fl=halId_s,fileMain_s,linkExtId_s,linkExtUrl_s

Les 5 requêtes à formuler sont renseignées dans les cellules A20 à A24 pour les colonnes suivantes :

  • colonne I : /response/docs/halId_s
  • colonne J : /response/numFound
  • colonne K : /response/docs/linkExtId_s (pour trouver un full-text dans Arxiv ou Pubmed, puis pour le statut OA qu’Unpaywall renvoie à HAL, puis éventuellement pour le full-text dans ISTEX)
  • colonne L : /response/docs/linkExtUrl_s (URL vers le document repéré éventuellement en colonne K)
  • colonne M : /response/docs/fileMain_s (URL vers le document repéré éventuellement dans HAL via son DOI)

Et, la formule en colonne D permet de déterminer si le document est accessible en Open Access en fonction de ce qui est retourné par les 2 APIs.

Pour adapter cet extracteur à d’autres besoins, il suffit tout simplement d’ajouter ou de modifier les requêtes déjà renseignées. Attention cependant lorsqu’on adapte celles de HAL : il ne faut pas oublier d’ajouter tous les champs requis en fin d’URL, mais la cellule A13 simplifie cette tâche.

Enfin, il faut veiller à ne pas dépasser les quota de requêtes autorisées par Google et par Unpaywall.

L’info vérité

Nous avons relevé de nombreuses incongruités entre le résultat direct d’Unpaywall et celui que HAL renvoie d’Unpaywall. Le CCSD nous explique qu’il ne recalcule pas le résultat d’Unpaywall tous les jours et qu’il peut donc exister un problème de synchronisation entre HAL et Unpaywall. Le mystère reste cependant entier pour certains cas qui génèrent depuis des mois le même résultat surprenant, à la fois du côté de HAL et d’Unpaywall. Voir par exemple ce DOI 10.1016/j.cemconres.2015.01.002 qui n’est pas en OA selon Unpaywall mais qui pointe vers une thèse dans Pastel selon ce que HAL renvoie d’Unpaywall…

 

Métriques alternatives, citations, datasets : un extracteur et des milliers de possibilités…

Exemple de donut Altmetric

Selon les mêmes principes et avec le même script ImportJSON, on peut imaginer une infinité d’extracteurs :

  • Métriques alternatives : Altmetric, qui fournit des métriques alternatives qu’on a l’habitude de voir sous la forme d’un donut coloré, met également à disposition une API dont les résultats sont retournés au format JSON. Il est alors très simple de mettre en œuvre un Google Sheet dynamique pour extraire certaines valeurs avec un DOI en entrée.

A noter que parmi les indicateurs livrés, Altmetric repère depuis quelques mois les brevets citant la publication examinée, ce qui peut révéler l’exploitation inattendue de certains travaux de recherche.

Pour utiliser l’extracteur Altmetric,
cliquer ici et faire une copie dans son compte Google.

 

  • Citations : Dimensions, une base bibliographique lancée début 2018 par Digital Science peut aussi être interrogée via son API, sur quelques données seulement. On peut notamment récupérer le nombre de citations.

Attention !! Les valeurs retournées pour les Top 1%, 5% et 10% sont actuellement inexploitables comme indiqué par Dimensions lorsque nous les avons interpellés sur ce point sur Twitter :

Pour utiliser l’extracteur Dimensions,
cliquer ici et faire une copie dans son compte Google.

 

  • Données associées : Scholexplorer, une infrastructure technique permettant d’identifier les liens entre publications et datasets, propose une API que nous avions déjà présentée dans ce billet sur les données. Le service s’appelait à l’époque Scholix. Toujours avec une liste de DOIs en entrée, on peut savoir rapidement dans quelle proportion des datasets sont disponibles.

Pour utiliser l’extracteur de datasets associés,
cliquer ici et faire une copie dans son compte Google.

 

Bien d’autres déclinaisons…

Nous avons eu recours à ce script à de nombreuses reprises pour extraire des données qui n’avaient rien à voir avec celles nécessaires pour faire de la bibliométrie, comme par exemple pour obtenir le nombre de followers pour une liste importante de comptes Twitter ou encore étendre des URLs raccourcies pour extraire le nom de domaine de l’URL d’origine.

 

Il existe bien sûr d’autres outils pour obtenir les mêmes résultats, mais ce script JSON nous a à la fois paru simple d’utilisation et facilement adaptable. On peut faire des choses similaires dans Excel avec notamment les fonctions SERVICEWEB et FILTRE.XML. C’est ce que nous avons aussi présenté aux journées CasuHAL avec un deuxième extracteur qui récupère les données de Sherpa Romeo produites en XML (à télécharger ici). En effet, ici la fonction IMPORTXML de Google Sheets était beaucoup trop lente pour être exploitée.

Rapidminer (comme nous l’avons montré dans ce post) ou encore OpenRefine sont sans doute aussi d’excellentes alternatives mais bien plus complexes à mettre en œuvre.

 

[Image en une : CC BY-NC-ND clemmac on Foter.com]

Citer ce billet : Bordignon F., "Citations, métriques alternatives, Open Access, data : comment extraire facilement l’information pour l’analyser," in Carnet'IST, 30/08/2018, https://carnetist.hypotheses.org/1297. Consulté en ligne le 16/12/2018.

 


Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.