The git repo behind my blog.

bmc.md.ignore 4.5KB

123456789101112131415161718192021222324252627282930
  1. <!--
  2. @author=Phyks
  3. @date=07082014-2315
  4. @title=Gestion d'articles scientifiques avec BMC
  5. @tags=Phyks
  6. -->
  7. Je dois stocker et retrouver de nombreux articles (scientifiques). Ce sont généralement des fichiers PDFs, qu'il faut que je garde de côté, et je dois être capable de retrouver des infos dedans. Je dois également stocker des livres numérisés en PDF et les retrouver tout pareil.
  8. Actuellement, je connais deux méthodes :
  9. 1. Le lecteur du secteur, [Mendeley](http://www.mendeley.com/) 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.) qui nécessiterait 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](http://zotero.org/) est aussi lourd, si ce n'est plus, peu ergonomique, et pas très performant. Bref, ce n'est pas une solution idéale.
  10. 2. 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 se perdre). C'est léger, fonctionnel, mais pas pratique. Et lorsqu'on rédige un document, on ne peut pas avoir facilement les données nécessaire pour citer l'article et on s'amuse alors à passer des heures sur les sites de revues pour trouver lesdites citations.
  11. Du coup, j'ai écrit un petit script en Python qui s'occupe de toutes les étapes chronophages et insupportables de la deuxième solution : [BMC](https://github.com/Phyks/BMC).
  12. 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 :
  13. * Il va récupérer le fichier PDF ou djvu, si besoin
  14. * Il va chercher et extraire le code DOI (pour les articles) ou ISBN (pour les livres) dans le fichier
  15. * 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é avec LaTeX.
  16. * 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`).
  17. 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 alors chercher également les nouvelles versions disponibles pour les articles ajoutés (typiquement sur [arxiv](http://arxiv.org/), un dépôt d'articles en [open-access](http://pablo.rauzy.name/openaccess/introduction.html#libre-acces)). 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.
  18. Lorsque vous voulez citer un article, il vous suffit de demander à BMC l'entrée Bibtex correspondante (`bmc export ARTICLE`).
  19. 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.
  20. 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 !