Retour à la table des matières


PubMed, XML, Perl et techniques bibliographiques artisanales

Objet:
Décrire quelques astuces pour utiliser la technologie XML pour valoriser une petite bibliothèque, spécialement une petite collection de revues de biologie médicale, ou de médecine.

Pourquoi:
Il est difficile pour du personnel nouveau, ou du personnel de passage, d'exploiter au mieux une petite bibliothèque où les articles et documents ne sont pas indexés.
La technique décrite ici permet de constituer une liste informatisée des titres d'articles de revues: exemple

Première remarque:
Le travail de dactylographie qui consiste à indexer tous les titres d'articles d'une revue est un travail considérable.
En théorie, ce travail n'a à être fait qu'une fois, et peut par contre profiter potentiellement à tous les abonnés à la revue.
Première interrogation:
Ce travail d'indexation doit être fait au moins par les bibliothèques universitaires de médecine. Rendent-t'elles leur travail public ?
J'ai été incapable de trouver la réponse à cette question pour la France, par contre les Etats Unis ont mis en ligne un impressionnant outil qui s'appelle PubMed.

Ce que peut faire PubMed pour aider à valoriser une petite collection de revues de Biologie médicale (ou de médecine)

PubMed indexe certaines revues françaises. C'est une indexation orientée pour un public anglo-saxon, néammoins, le libellé en français des titres est indexé.
La seule revue que j'ai retenu est la revue "les annales de biologie clinique".
Travaux pratiques (L'ensemble de la manipulation est fonctionnelle en janvier 2003):

Maintenant, double cliquer sur ce fichier abc2001.xml, il devrait s'ouvrir dans votre navigateur.
Examiner la structure. C'est du XML (définition on-line).
On peut appliquer une transformation XSLT (définition on-line) pour modifier l'affichage de ces données.

Pour cela:

Il est évidemment possible de faire ces opérations pour n'importe quelle revue française indexée dans Pubmed.
Il est possible de modifier le format de sortie en modifiant le fichier pubmed.xsl
Pour obtenir un fichier html plus compact, on peut traiter le fichier par un processeur xslt séparé, plutôt qu'à la volée par le processeur xslt intégré aux versions récentes des navigateurs.
Par exemple avec xsltproc sous linux:
la commande
yves:~$ xsltproc -o abc2001.htm pubmed.xsl abc2001.xml
produit un fichier html (abc2001.htm) beaucoup plus compact que le fichier xml initial

De la même façon sous windows (95, 98, NT, ou 2000)), on peut utiliser saxon en ligne de commande dos
C:\> saxon -o abc2001.htm abc2001.xml pubmed.xsl
(le programme saxon, les fichiers abc2001.xml et pubmed.xsl doivent tous être dans le même répertoire (pour simplifier))
(testé avec instant-saxon 6.5.2 sous windows 98)

Pour en savoir plus sur XML et XSLT, une excellente introduction est le premier chapitre du livre "Comprendre XSLT". Ce chapitre, "L'introduction à XML/XSLT", proposé en téléchargement sur le site de l'auteur, donne aussi une vue d'ensemble sur ces techniques.

Et pour les revues qui ne sont pas référencées dans PubMed ?

Malheureusement, comme déjà signalé en introduction, je n'ai pas connaissance d'un travail coordonné, ou plus ou moins coordonné, au niveau national ou international en dehors de PubMed aux Etats-Unis (n'hésitez pas à m'écrire si je suis dans l'erreur).

La revue "Les Feuillets de Biologie" est une revue médicale en Français qui n'est pas référencée dans PubMed (en réalité, UN article de 1984 y est référencé).
Heureusement, les collègues du laboratoire du Centre hospitalier du Carbet à la Martinique ont pris l'initiative d'indexer tous les articles de cette revue depuis 1990 dans un tableau Excel ©.

Excel© est un choix pratique pour effectuer un tel travail, toutefois dans certains cas ce format ne convient pas. En effet:

Voici donc quelques transformations possibles pour obternir une autre présentation de ce travail.

La première chose à demander est une version CSV (définition on-line) du fichier Excel©.
Le format CSV est un format qui présente les données séparées par des virgules.
Il suffit de faire "Enregistrer sous" et de sélectionner le format "csv" dans Excel©.

Ensuite, il faut faire subir quelques traitements à ce fichier, grâce à des scripts Perl (définition on-line).

Perl est un langage de programmation interprété optimisé pour le traitement de textes. C'est un logiciel libre.
Au moins une version de Perl existe pour Windows http://aspn.activestate.com/ASPN/Downloads
Perl est installé en standard sur toutes les distributions Linux.

Travaux pratiques:

Une technique intéressante est de modifier la feuille de style xsl pour obtenir une liste qui décrit précisément le contenu de sa propre bibliothèque:
par exemple, si on dispose d'une collection des "Feuillets de biologie" qui comprend:

Voici la feuille de style mabib.xsl:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


<xsl:output method="html" doctype-public='-//W3C//DTD HTML 4.01//EN'/>

<xsl:template match="indexFeuillBiol">
<html>
<head>
<style type="text/css">
.rouge {color :red}
.green {color :green}
.blue {color :blue}
.center {text-align: center}
</style>
<title>Index des Feuillets de biologie</title>
</head>
<body>

<h1 class="center">Index des Feuillets de biologie 
<br/>
Laboratoire
<br/>
Hôpital F. Dunan
</h1>
<p/>
<hr/>



<xsl:apply-templates select="entrée"/>



</body>
</html>
</xsl:template>



<xsl:template match="entrée">


<xsl:if test="(Année &gt; 1997
or Numéro = 190
or Numéro = 216
or Numéro = 217
or Numéro = 218
or Numéro = 219
)">

<div>

<xsl:value-of select="TitreArticle"/>

<br/>
<small class="green">
Feuill Biol, Numéro: <xsl:value-of select="Numéro"/> - <xsl:value-of select="Mois"/> <xsl:text> </xsl:text> <xsl:value-of select="Année"/>
</small>
<br/>
<small>
<xsl:if test="string(Mots-clésPrincipaux)">
Mots-clés:
</xsl:if>
<span class="rouge">
<xsl:value-of select="Mots-clésPrincipaux"/>

<xsl:if test="string(Mots-clésSecondaires)">
,
<xsl:value-of select="Mots-clésSecondaires"/>
</xsl:if>

</span>
</small>
<hr/>
</div>

</xsl:if>

</xsl:template>

</xsl:stylesheet>

Les modifications significatives sont en rouge.

L'expression "&gt;" est équivalente au symbole ">".
Ce symbole doit être écrit de cette façon pour ne pas être interprété comme une partie de balise par le navigateur ou le programme qui va analyser le texte.

En double-cliquant sur le fichier fb.xml, avec le fichier mabib.xsl dans le même répertoire, on obtiendra la même présentation que précédemment, mais le contenu du fichier affiché dans le navigateur correspondra EXACTEMENT au contenu de la bibliothèque.

Il reste à faire

Décrire une technique permettant de fusionner relativement automatiquement les fichiers indexant différentes revues en un seul gros fichier récapitulatif.


Retour à la table des matières
12/09/2003
rev 1.1
adresse mail
Valid HTML 4.01!