Gestion d’articles scientifiques avec BMC
Posted on 02 January 2015 in Research • 4 min read
Lorsqu’on fait de la recherche scientifique (ou de la veille), on est très vite amener à stocker de très nombreux articles en PDFs. On ne s’en sert pas forcément à tous les coups, mais il est essentiel de pouvoir les retrouver et s’y référer simplement. De même, de plus en plus d’ouvrages sont disponibles en formats numériques, et il est également utile de les stocker pour pouvoir les retrouver et les citer facilement. Bref, il faut un moyen simple de :
- Stocker des fichiers PDF et DJVU.
- Les retrouver facilement.
- Exporter des citations dans un format correct, pour pouvoir les citer au besoin (BibTeX etc.).
Actuellement, je connais deux méthodes :
- Utiliser un logiciel tout-en-un de gestion bibliographique comme le leader du secteur, Mendeley, propriétaire, qui permet d’importer ses PDFs sans y réfléchir. Il s’occupe de tout trier, de récupérer les informations dans les bases de données en ligne (auteurs, titre, revue, etc.), ce qui nécessiteraient une recherche dans le PDF voire de l’OCR autrement. On peut annoter ses documents, pour se rappeler qui est quoi, et il peut générer automatiquement les citations qui vont bien, dans le format voulu, quand on écrit un article ou un rapport. C’est top, mais c’est propriétaire et payant pour certaines fonctions avancées. Une grande partie du monde de la recherche l’utilise, mais c’est pas parfait quand même. Et c’est lourd et très (trop) complet, en cherchant à faire un réseau social autour de la recherche. Son concurrent open-source, Zotero est aussi lourd, si ce n’est plus, peu ergonomique, et pas très performant. Bref, ce n’est pas une solution idéale.
- De l’autre côté, de nombreux chercheurs ont juste un dossier
~/Papers
et mettent tous leurs PDFs en vrac dedans. Certains tiennent un index, avec plus ou moins de succès, ou renomment les fichiers (et il faut alors garder toujours le même masque si on ne veut pas s’y perdre). C’est léger, fonctionnel, mais pas pratique. Trop contraignant à la longue. Et lorsqu’on rédige un document, on ne peut pas avoir facilement les données nécessaires pour citer l’article et on passe alors des heures sur les sites de revues pour trouver lesdites citations.
Du coup, j’ai écrit un petit script sans prétention en Python qui s’occupe de toutes les étapes chronophages et insupportables de la deuxième solution : BMC.
Le principe est très simple : on lui donne un dossier où stocker les articles (typiquement ~/Papers
) et un masque de renommage pour renommer les fichiers PDFs. Quand on veut ajouter un fichier PDF à sa collection, on lui dit de le faire (bmc import fichier.pdf
ou bmc download URL
) et il s’occupe de tout :
- Il va récupérer le fichier PDF ou djvu, si besoin
- Il va chercher et extraire le code DOI (pour les articles) ou ISBN (pour les livres) dans le fichier
- Grâce à ce code, il va automatiquement récupérer les données bibliographiques associées, qu’il va stocker au format
bibtex
, pour être facilement réutilisé avecLaTeX
. - Finalement, il va stocker le fichier à importer dans le répertoire d’import et ajouter les données bibliographiques à un fichier d’index (
index.bib
).
Comme ça, tout se fait tout seul sans qu’on y pense. Il peut utiliser d’éventuels proxy (y compris SOCKS) pour récupérer les articles (si vous travaillez chez vous mais que votre institution vous fournit un proxy pour télécharger des articles par exemple). Il peut aussi chercher les nouvelles versions disponibles pour les articles ajoutés (typiquement sur arxiv, un dépôt d’articles en open-access). Il peut aussi comparer l’état actuel de votre index et de votre répertoire de stockage, pour identifier d’éventuels problèmes (articles non ajoutés par le script ou articles mal supprimés). On peut aussi ajouter un tag sur chaque fichier, qui se retrouvera alors classé dans un sous-répertoire, pour organiser ses articles par projet.
Lorsque vous voulez citer un article, il vous suffit de demander à BMC l’entrée Bibtex correspondante (bmc export ARTICLE
).
Comme il utilise des technos établies (citations Bibtex pour l’index + stockage en fichiers), il n’y a aucun risque de perdre ses données si le script n’est plus maintenu, ou n’est plus compatible. Tout sera toujours accessible, comme ce que vous auriez fait à la main. Et vous pouvez vous passer du script et aller vous-même chercher dans l’index l’entrée qui vous convient.
Enfin, j’espère ajouter prochainement de nouvelles fonctionnalités, selon ce qui est le plus demandé : recherche dans la base de données (qui est d’ores et déjà possible en faisant une recherche dans le fichier d’index, recherche de doublons, recherche de version publiée pour les articles en open-access, …). N’hésitez pas à me faire des retours !