FLASH INFORMATIQUE FI



Sous le capot d’infoscience...




Frédéric GOBRY


L’information scientifique est composée, d’une part, des articles, rapports, thèses, projets, cours produits par les chercheurs, les enseignants et les étudiants de l’EPFL, et d’autre part de l’ensemble des ressources disponibles sous la forme de périodiques, d’ouvrages, qu’ils soient électroniques ou en format papier. Historiquement, cette masse d’informations qui constitue le patrimoine de l’École est disponible de manière assez fragmentée : les dépositaires en sont souvent chacun des laboratoires, ou l’une des cinquante bibliothèques sur le site. L’objectif d’infoscience est de regrouper, rendre accessible et valoriser cette masse de données, en collaboration avec ceux qui la crééent.

Les origines

Le cœur d’infoscience, c’est le logiciel CDSware, développé au CERN [1], et utilisé intensivement dans tous leurs projets pour mettre à disposition de la communauté scientifique plus de 500 000 publications, des documents multimédias, des archives, des monographies,... Heureusement pour nous, ce système est développé de manière ouverte, et rendu disponible sous la licence GPL. C’est ce qui nous permet aujourd’hui de partir d’une base solide, sur laquelle nous construisons (en partenariat avec l’équipe du CERN) les fonctionnalités spécifiques du projet infoscience. D’un point de vue technique, CDSware est construit sur les briques open-source suivante :

  • Python [2] comme langage de développement principal, avec l’appui des bibliothèques Numeric [3] et Psyco [4]
  • MySQL comme base de données pour assurer la persistance des informations
  • WML [5], un langage permettant de coller des bouts de scripts venant de plusieurs langages différents, et de générer des pages Web à partir de templates. Historiquement, le logiciel a vécu une phase en PHP, et certaines pages utilisent encore ce langage, en attendant d’être ré-écrites en Python. CDSware propose un très grand nombre de pages permettant d’effectuer la plupart des tâches d’administration depuis un navigateur Web, ainsi qu’un certain nombre d’utilitaires en lignes de commande, en particulier pour le traitement de données par lots. Les plus curieux iront voir la page http://infoscience.epfl.ch/hacking/modules.html qui contient un résumé des modules qui composent l’application.

Une bête de recherche

Même si la page principale du site n’est pas aussi dépouillée que celle de son grand frère, CDSware a pour objectif de fournir une philosophie de recherche à la Google : à la différence de systèmes de recherche de bibliothèque, qui proposent souvent de chercher par titre, auteur,... l’utilisateur peut ici se contenter de saisir un ou plusieurs mots-clés et de suivre les propositions du système si la requête est infructueuse. La recherche est effectuée dans tous les champs de données disponibles, et peut même être étendue au contenu des articles pour lesquels on dispose d’une version électronique. L’objectif que s’est fixée l’équipe de développement est de toujours obtenir une réponse en moins d’une seconde, indépendamment de la complexité de la requête de l’utilisateur. Hormis dans quelques cas particuliers, l’objectif est tenu pour une base qui contient jusqu’à un million de documents, et ce, avec un serveur unique. Ceci est dû en particulier à la construction d’un grand nombre de caches (pour les pages les plus courantes ainsi que pour les notices bibliographiques formatées), et à l’utilisation d’index liant tout mot à un vecteur booléen des documents qui le contiennent : ce vecteur permet d’effectuer de manière extrêmement rapide des opérations logiques pour combiner les termes de recherche. Par exemple, dans la recherche suivante :

        author:boudec -energy +abstract:routing

... les mots boudec, energy, et routing sont cherchés dans les index correspondants (index des auteurs, index global et index des abstracts, respectivement), ces résultats partiels sont récupérés sous la forme de (longs) vecteurs indiquant pour chaque document s’il contient le terme recherché, et finalement une opération logique combine ces résultats partiels pour donner la liste définitive. Dans la réalité, un certain nombre d’autres opérations sont effectuées, en particulier pour limiter les résultats de recherche à une collection (en effectuant cette recherche dans la collection I&C, seuls les documents classés dans cette collection apparaîtront).

Spécificités locales

CDSware est un outil extrêmement malléable, et permet à chaque site qui l’installe de définir un grand nombre de paramètres d’organisation, d’affichage,... mais pas encore suffisamment pour l’adapter complètement aux besoins qui ont été définis à l’EPFL. Nous sommes donc en train de séparer plus fortement encore les aspects d’interface et le moteur de recherche afin de pouvoir intégrer infoscience avec l’authentification des utilisateurs (le service tequila). Lorsque cette phase sera terminée, il sera possible aux utilisateurs d’avoir des données permanentes sur le serveur, et de lier infoscience avec d’autres données, comme les pages people@EPFL.

Un autre développement spécifique concerne la possibilité d’exporter les données d’infoscience dans les formats BibTeX et EndNote XML. Il suffit d’effectuer une recherche, de cliquer sur un des deux liens BibTeX ou EndNote, et voilà, le contenu de la page de recherche est immédiatement intégrable dans un rapport ou un article, via ces deux outils répandus.

Ces développements sont pour le moment spécifiques à l’EPFL, mais seront incorporés à la base de code CDSware, en fonction des intérêts de chaque partie.

Vivre avec ce qui existe déjà

En parlant de formats de données, un autre élément spécifique concerne la possibilité de récupérer les données existant dans des bases locales aux laboratoires. Le format natif de CDSware s’appelle MARC21 [6] et est un standard établi depuis 30 ans dans le domaine des bibliothèques. C’est un format extrêmement détaillé (qui permet par exemple de définir, pour une URL, les heures auxquelles le serveur est accessible... On sent malgré tout un certain bagage historique là-dedans), mais qui n’est pas très répandu dans le cercle des bases de données bibliographiques. Il est donc nécessaire de transcoder des données provenant de nombreuses sources, ayant des niveaux de description très variés, et en limitant au strict minimum les pertes d’informations. Nous avons donc mis au point un certain nombre de moulinettes, également écrites en Python, qui réutilisent le plus possible de code entre elles (pour analyser les noms d’auteurs, les dates,...). On peut distinguer deux familles de moulinettes :

  • celles qui traitent de formats ayant une sémantique définie plus ou moins clairement : c’est le cas du format XML d’EndNote et de BibTeX, pour lesquels la notion d’auteur, de volume, d’année, est définie une fois pour toutes indépendamment de la base de données. Dans cette situation, les variantes entre les moulinettes servent à tenir compte de données supplémentaires ou d’erreurs systématiques, mais ces adaptations sont en général assez rapides.
  • celles qui traitent de bases de données uniques, même si elles reposent sur des systèmes similaires, par exemple deux bases de données capables d’exporter en XML. La réutilisation de code dans ce cas est nettement plus limitée.

Ouverture au monde

Indépendamment des possibilités déjà évoquées d’exporter des données aux formats BibTeX et EndNote par l’interface Web, il est à noter que CDSware est très facile à piloter via de simples URL et quelques scripts. Par exemple, pour générer une liste de publications HTML dans une page Web personnelle depuis une machine Unix, on peut utiliser un script basé sur l’exemple suivant :

#!/bin/sh -e
author="boudec"
query="http://infoscience.epfl.ch/export.py?f=author&p=${author}&fm=bibtex"
wget -O - "${query}" > bibliography.bib
bibtex2html bibliography.bib

Une intégration plus complète est laissée à titre d’exercice au lecteur... Lorsque les utilisateurs pourront stocker leurs données personnelles sur le serveur, il sera alors possible d’écrire des requêtes similaires pour une liste de publications sélectionnées à la main par exemple. Ce type de fonctionnalités permettra de faciliter la gestion de listes de publications pour des projets, des axes de recherche,...

Et demain ?

L’application évolue au rythme d’une version officielle tous les deux mois environ. Nous avons commencé le troisième cycle de développement qui donnera lieu à la version M3 - Morgon au début de l’année 2005. Il est important pour nous qu’infoscience devienne votre application, celle sur laquelle on peut se reposer et qui permet de gagner du temps. Vous pouvez contacter l’équipe à l’adresse infoscience@epfl.ch, afin de nous communiquer vos suggestions. Vous pouvez également suivre à tout moment l’état du projet grâce au blog (http://blogs.epfl.ch/infoscience), pour les nouvelles au fur et à mesure qu’elles arrivent, ainsi que par le biais de notre wiki (http://kispc2.epfl.ch/infoscience/), qui propose plutôt une vue globale des tâches en cours. À bientôt !

[1] voir http://cdsware.cern.ch /

[2] voir http://python.org/

[3] Numeric est une bibliothèque de calcul matriciel (cf. http://www.pfdubois.com/numpy/)

[4] Psyco est un compilateur just-in-time pour python (cf. http://psyco.sourceforge.net/)

[5] Website Meta Language (cf http://thewml.org/)

[6] Voir http://www.loc.gov/marc/bibliographic/



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.