Survivre à sa bibliographie de thèse

25 Mai 2014

Cet article est un brouillon.

This article is a draft.

La bibliographie (principalement primaire, mais pas uniquement) de ma thèse promettant d’être conséquente (1113 références à l’heure où j’écris), j’ai essayé de concevoir un flux de travail permettant de la gérer au mieux, que je présente ici.

La gestion de bibliographies, et tout particulièrement en sciences «humaines» est un problème extrêmement complexe : ce que je décris n’est certainement pas la Vérité Révélée, mais de la description d’une pratique (plutôt: d’un état d’une pratique) qui répond à des besoins spécifiques en histoire contemporaine des sciences, mais peut sans doute être adaptée à pas mal de domaines.

Les contraintes

Le processus que je cherche à établir doit répondre à un certain nombre de contraintes, que je peux résumer en trois séries : celles qui portent sur le mode de création des références, celles qui portent sur le modèle de données, et enfin celles qui portent sur le stockage de données et l’automatisation.

La totalité des gestionnaires de bibliographie existants satisfont aux contraintes, très basiques à vrai dire, de création des références : il doit être possible de saisir directement des références, ou des les importer depuis (au moins) des pages web convenablement balisées ; de leur associer des fichiers PDF (ie l’article ou le livre pointé par la référence) et des annotations personnelles (ce dernier point est moins évident).

Mais je tiens aussi beaucoup à ce que le modèle de données (ie, les champs disponibles) soit aisément extensible et pas entièrement spécifié a priori, pour deux raisons : d’une part, parce que certaines sources ne rentrent pas aisément dans les “cases” des outils de gestion de biblio destinés aux sciences “dures” ; d’autre part parce qu’il peut être intéressant d’associer d’autres informations à une référence que sa simple description bibliographique. J’y reviens plus loin. De plus, le modèle de données doit gérer des “autorités”, c’est-à-dire qu’un nom d’auteur ou de revue (par exemple !) ne soit pas une chaîne de caractères mais une entité unique à laquelle réfèrent tous les documents écrits par cet auteur ou publiés dans cette revue. Les outils qui satisfont ces deux points sont bien plus rares.

Enfin, il est important que la base de données résultante puisse être transcodée sans pertes d’informations, afin de ne pas être dépendant d’un logiciel spécifique. Dans l’idéal, cette base de données utilisera un format au mieux ouvert, au pire pleinement documenté. Si la base utilise un format propriétaire mais qui autorise l’export sans pertes, il est alors indispensable qu’il fournisse une interface de programmation permettant d’accéder aux données. Ces deux critères répondent à un double impératif : celui d’indépendance vis-à-vis d’une solution technique, et surtout celui d’automatisation. (Benjamin Bayart emploie l’expression extrêmement juste de logiciel libérateur, qu’il contraste avec «logiciel libre» pour désigner un logiciel qui satisfait ces exigences).

Enfin, les grosses bases de données étant particulièrement exposée à ce que des modifications destructrices massives passent inaperçues un certain temps, il est indispensable de pouvoir sauvegarder autant de versions successives de la base qu’il est nécessaire, si possible de façon plus intelligente qu’en la dupliquant : la gestion de versions successives ne peut pas se contenter de copies incrémentales, mais doit autoriser aussi la comparaison de deux états distincts face à face. Si possible enfin, être accessible depuis internet sans logiciel spécifique serait un plus (depuis un poste en accès libre en bibli, par exemple)

Des processus plutôt que des applications

Les applications habituelles de gestion de bibliographie sont, well, calamiteuses (et je suis poli). Il me semble que c’est un domaine où le modèle de l’application intégrée ne fonctionne tout simplement pas: si ça correspond au modèle nécessaire, c’est très bien, mais il suffit d’un truc qui manque ou ne fonctionne pas comme espéré, et c’est fichu.

Pour m’en assurer, et non sans un certain masochisme, j’ai testé Papers et Sente, qui se sont avérés des catastrophes. Papers particulièrement, dont j’ai testé la version 3, est une calamité: l’affichage tend à se désynchroniser de la base de données1, certains champs ne sont pas annulables (ça veut dire qu’une fois qu’ils ont une valeur, ils peuvent en changer, mais il ne peuvent plus jamais ne pas avoir de valeur, ce qui est violemment absurde)

Solution technique

L’objectif à terme est de n’utiliser que Tkacz comme gestionnaire de bibliographie ; mais le développement de Tkacz est loin d’être assez avancé pour cela.

Dans l’attente, j’utilise une solution qui mélange pas mal d’outils avec une efficacité raisonnable : BibDesk, Zotero et Git.

En gros

Zotero permet l’identification automatique des références (et évite donc de la saisie), BibDesk est le gestionnaire principal, et Git permet de conserver chaque version de la biblio et assure sa sauvegarde sur un serveur distant. Il protège donc de deux catastrophes majeures : l’écrasement total accidentel, et de pire, l’énorme erreur accidentelle (c’est très facile de ne pas se rendre compte que l’on vient de supprimer 500 références, et sans suivi des versions, il sera alors trop tard).

BibDesk manipule nativement des fichiers au format BibTex, qui est le format utilisé notamment pour la gestion de bibliographies en LaTeX. Ce choix peut sembler étonnant, vu le petit nombre d’utilisateurs de LaTeX en dehors de ces sciences que l’on dit dures, mais il a plusieurs arguments en sa faveur :

  • BibTex est un format basé sur le texte, à l’instar des (bien plus récents) formats XML. Par conséquent, il est rarissime qu’une petite erreur suffise à l’endommager, ce qui est toujours un risque avec des bases de données stockées dans des formats binaires.
  • Il est extrêmement souple, et se plie plus facilement aux exigences parfois étranges de la citation de sources historiques (dans mon cas).
  • C’est un format simple à lire, écrire et manipuler, ce qui permet de scripter énormément d’opérations qui seraient fastidieuses autrement.

Autres outils testés

J’ai principalement testé Papers3 et Sente, sans être convaincu. Papers s’est révélé très instable, a un comportement parfois plus qu’erratique (modifications non sauvegardées, ou non répercutées à l’affichage sans qu’on sache vraiment si elles sont sauvegardés, certains champs ne peuvent jamais être remis à zéro…)2, modèle de donnéées non extensible, format propriétaire, pas de versions, synchronisation uniquement via DropBox. Enfin, l’auto-identification des références à partir d’un PDF ou d’informations partielles est globalement une catastrophe. Sente est meilleur sur certains points, son format est extensible bien que propriétaire, l’identification marche un peu mieux…


  1. Ce point seul est éliminatoire : un gestionnaire dont je ne comprends pas ce qu’il fait me semble trop peu sûr pour des informations importantes

  2. Ce point seul est éliminatoire : un gestionnaire dont je ne comprends pas ce qu’il fait me semble trop peu sûr pour des informations importantes