Utiliser BibTeXML dans DocBook XML pour �crire des articles scientifiques

ArticleCategory: [Artikel Kategorie]

Applications

AuthorImage:[Bild des Autors]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Egon Willighagen

en to fr Georges Tarbouriech

AboutTheAuthor:[Über den Autor]

Egon a obtenu sa Ma�trise de chimie � l'Universit� de Nim�gue, et son sujet de th�se porte sur la repr�sentation mol�culaire. Il joue au basket et programme des applications en Java.

Abstract:[Zusammenfassung]

Dans cet article je montrerai comment utiliser BibTex en tant que syst�me de r�f�rence avec DocBook XML. J'ai d�velopp� des outils pour faciliter ce processus qui sont disponibles sous forme de paquetages dans la distribution JReferences.

ArticleIllustration:[Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel]

Introduction

Les utilisateurs de Latex savent � quel point BibTex est utile. C'est un outil tr�s pratique pour ajouter des r�f�rences � toute litt�rature scientifique sans se pr�occuper de l'aspect, qui sera correct de toute mani�re - par exemple, d�finir la bonne mise en page, mais sans "r�glage" manuel. Comme Latex. Encore mieux, dans la litt�rature scientifique, il est courant de num�roter les r�f�rences avec des nombres en superscript ("�l�vation � une puissance"), comme ceci1. De plus, ces nombres doivent �tre cons�cutifs. BibTex prend aussi cet aspect en charge.

DocBook devient tous les jours un peu plus mon outil de pr�dilection pour la cr�ation de texte, en raison de sa syntaxe bas�e sur XML, de ses capacit�s � cr�er des sites web (par exemple, le site CDK http://cdk.sf.net/, est enti�rement r�alis� en DocBook) et des pages de manuel. L'�tape suivante, pour moi, consistait � utiliser DocBook pour �crire des articles scientifiques. J'avais donc besoin de BibTex pour DocBook. C'est pour cela que j'ai cr�� JReferences.

JReferences en fait un peu plus que BibTex. Comme lui, il poss�de des outils de num�rotation automatique de r�f�rences � partir d'une base de donn�es texte, mais il peut faire mieux. Il supporte plus de formats (en entr�e comme en sortie), il peut �tre interfac� avec MySQL, auquel on peut acc�der par une interface PHP. Il peut aussi devenir une base de r�f�rences, comme EndNote. Toutefois, m�me s'il s'agit d'un projet libre (licence GPL), il n'a pas attir� beaucoup d'autres d�veloppeurs que moi, et le d�veloppement est donc lent. Cela ne signifie pas qu'il est inutile et je vais essayer de vous le prouver dans cet article.

A la publication de cet article, JReferences est � la version 0.7.2. C'est donc cette derni�re qui est trait�e ici.

Un article DocBook

Cet exemple se trouve dans le paquetage JReferences.

<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//JReferences//DTD DocBook JReferences Module //EN"
                         "../dtd/jreferences.dtd" []>
<article>

  <jref:mode>Number</jref:mode>

  <articleinfo>
    <title>Article Test</title>
    <author><firstname>Egon</firstname><surname>Willighagen</surname></author>
    <date> 3 May 2000</date>
  </articleinfo>

  <section>
    <title>Un paragraphe</title>
    <para>Voici un texte avec une r�f�rence <jref:cite id="Steinbeck99"/>.</para>
    <para>Et pour compliquer le test, nous ajoutons une seconde r�f�rence
      <jref:cite id="Bachrach99"/>. Et de nouveau, la premi�re r�f�rence
      <jref:cite id="Steinbeck99"/>.
    </para>
  </section>

  <jref:reflist/>

</article>

Je vais commenter cet exemple ligne par ligne. La premi�re ligne est la ligne habituelle (optionnelle) d�finissant la syntaxe du fichier; ici, il s'agit de XML. La seconde et la troisi�me ligne stipulent que le langage XML utilis� est DocBook, mais qu'au lieu de DTD, nous employons le module JReferences. DocBook XML ne conna�t pas JReferences, et se servir de cette DTD produirait des documents incorrects. Par contre, le module JReferences, reconna�t � la fois DocBook et JReferences (pour les habitu�s de DocBook, pas encore SVG ou MathML). Par cons�quent, ce module vous permet de valider votre document. L'exemple ci-dessus est un document DocBook valide.

La quatri�me ligne contient la balise de d�part de l'�l�ment de l'article. Jusque l�, �a va. A la sixi�me ligne, �a commence � devenir int�ressant : le premier �l�ment jref appara�t. L'�l�ment <jref:mode> permet d'indiquer � JReferences le type de num�ro de r�f�rence qu'il doit utiliser. Dans l'introduction j'ai d�j� signal� que normalement on utilise les nombres en superscript (�l�vation � une puissance). Il y a pourtant beaucoup d'autres possibilit�s. JReferences accepte [1], 1, et [Steinbeck99]. Ce dernier fournit le code utilis� dans la r�f�rence. L'exemple utilise la premi�re option.

Les quelques lignes suivantes sont du contenu DocBook de base et la prochaine ligne int�ressante est la 16. Dans cette ligne, la premi�re r�f�rence est cit�e. Les utilisateurs de Latex auraient �crit \cite{}; la syntaxe de JReferences est <jref:cite id="SomeID"/>. L'ID correspond � une r�f�rence dans la base de donn�es, qui sera expliqu�e ult�rieurement. Le paragraphe suivant contient deux autres citations, l'une �tant, encore une fois, la premi�re r�f�rence.

Pour inclure les r�f�rences, on utilise <jref:reflist/> � la ligne 23. Cette commande JReferences sert � les convertir en une liste de r�f�rences au format DocBook, dans l'ordre de leur citation.

La base de donn�es BibTeXML

Le syst�me JReferences r�clame une base de donn�es ressemblant aux fichiers *.bib de Latex/BibTex. JReferences est capable de s'interfacer avec BibTeXML mais aussi avec d'autres (comme MySQL). BibTeXML a �t� d�velopp� par Vidar Gundersen et Zeger Hendrikse. L'exemple de la distriburion JReferences (0.7.2) n'utilise pas encore BibTeXML, mais l'exemple de l'article poss�de un �quivalent BibTeXML :

<?xml version="1.0" encoding="UTF-8"?>
<bibtex:file xmlns:bibtex="http://www.bitjungle.com/~bibtex/">

<bibtex:entry bibtex:id="Steinbeck99">
  <bibtex:article>
    <bibtex:title>JChemPaint - Using the Collaborative Forces of the Internet to
                  Develop a Free Editor for 2D Chemical Structures</bibtex:title>
    <bibtex:author>Steinbeck, C. and
                      Krause, S. and 
                      Willighagen, E.</bibtex:author>
    <bibtex:year>2000</bibtex:year>
    <bibtex:volume>5</bibtex:volume>
    <bibtex:pages>93-98</bibtex:pages>
  </bibtex:article>
</bibtex:entry>

<bibtex:entry bibtex:id="Bachrach99">
  <bibtex:article>
    <bibtex:title>End-User Customized Chemistry Journal Articles</bibtex:title>
    <bibtex:author>Bachrach, S. and 
                      Krassavine, A. and 
                      Burleigh, D.</bibtex:author>
    <bibtex:journal>J.Chem.Inf.Comput.Sci.</bibtex:journal>
    <bibtex:year>1999</bibtex:year>
    <bibtex:volume>39</bibtex:volume>
    <bibtex:pages>81-85</bibtex:pages>
  </bibtex:article>
</bibtex:entry>

</bibtex:file>

La seconde ligne contient la balise de d�part de l'�l�ment racine <bibtex:file>. Un tel fichier contient un ou plusieurs �l�ments <bibtex:entry>. Et chaque entr�e consiste en un type de r�f�rences BibTeXML : article, livre, collection, non publi�, divers, etc. Chaque r�f�rence contient des �l�ments sp�cifiques � ce type, mais plusieurs sont communs, tels <bibtex:title> et <bibtex:year>. La distribution JReferences contient la DTD BibTeXML de mani�re � ce que tous les �diteurs XML g�rant les DTD puissent manipuler des documents BibTeXML. De plus, JReferences contient des DTD Meta pour Kate dans KDE 3.x (voir Editer des documents XML avec DocBook ) qui sont automatiquement install�s dans $HOME/.kde/share/apps/katexmlplugin.

[kate]
Editer des fichiers BibTeXML avec Kate, son plugin XML et la DTD Meta BibTeXML de JReferences.

G�n�rer une bibliographie

Consid�rons les deux fichiers exemples ci-dessus. Le document DocBook est enregistr� en tant qu'article.docbookxml. JReferences ne propose pas encore d'outil semblable au programme bibtex, mais le m�me r�sultat peut �tre obtenu par quelques commandes. La commande ci-dessous implique que JReferences est install� sur un syst�me de type Unix, comme Linux (voir plus loin) :

jref-clear --filedb
jref-set --filedb --bibtexml references.bibtexml
jref-number --filedb article.docbookxml > article-numbered.docbookxml

Le fichier obtenu, nomm� article-numbered.docbookxml est un document DocBook XML 4.1.2 valide, sans �l�ment <jref:*> et peut �tre manipul� par d'autres outils destin�s � convertir des documents XML DocBook en PDF, par exemple. (Voir Cr�er des documents PDF avec DocBook).

[result]
Le fichier PDF obtenu comportant les r�f�rences num�rot�es et une bibliographie.

C'est tout ce que vous devez savoir. Enfin, presque...

Styles de formatage

Il reste encore un point int�ressant. BibTex g�re les styles, parce que de nombreux journaux r�clament un formatage particulier pour les bibliographies. Pour l'instant JReferences ne propose que deux styles. Le premier est un format par d�faut de XML DocBook, ce qui n'est pas vraiment un style. Mais un style exig� par l'American Chemical Society (ACS) est disponible dans JReferences.

L'�l�ment <jref:reflist> poss�de un attribut @style avec lequel vous pouvez d�finir le style � utiliser en remplacement de celui par d�faut. Pour appliquer le style ACS, vous devez remplacer la ligne 23 par :

<jref:reflist style="ACS"/>

Installer JReferences

JReferences n�cessite l'installation de Java 1.3 (ou mieux), Xerces, Log4J et DocBook XML DTD 4.1.2. Certains outils r�clament des programmes additionnels, comme python (pour la conversion BibTex en BibTeXML), et Perl (pour "nettoyer" ce que produit le BibTex de EndNote).

Si votre disque contient tout ceci, JReferences peut �tre install� en tapant :

./configure --prefix=$HOME
make
make install

Si certains outils ne sont pas trouv�s, essayez les options suivantes : --with-xercesdir, --with-log4javadir et --with-sgmldir. Pour plus ample information sur ces options, tapez "./configure --help".

Le projet

JReferences a maintenant deux ans, et bien qu'il ait �t� t�l�charg� souvent, je n'ai pas beaucoup de retour. C'est-�-dire, en dehors de ma propre exp�rience. Dans les derniers mois, JReferences a �t� utilis� avec succ�s pour �crire un v�ritable article scientifique. Toutefois, comme pour n'importe quel projet libre, commentaires, rapports de bogues, correctifs, id�es et histoires de r�ussites sont les bienvenus sur le site du projet JReferences.

R�f�rences