> Place centrale > L'informatique à l'EPFL > DIT > publications > FI spécial été du 31 août 2010 > Version PDA accueil

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

Multivio – solution HTML5 pour visionner des documents

 

Miguel MOREIRA

pour la version html complète cliquez ici

La consultation de documents sur Internet

Les internautes, en tant que consommateurs de contenus, ont l’habitude de retrouver des documents facilement accessibles sur la toile, souvent même sans se poser la question de leur provenance – un clic sur un lien leur suffit, même s’il provient simplement d’une liste de résultats sur un moteur de recherche, l’important étant, pour eux, que le document s’affiche à l’écran.
De leur côté, les fournisseurs de ces mêmes contenus ont des besoins spécifiques par rapport à la façon de les organiser et de les mettre à disposition. Si pour un auteur (un chercheur, par exemple) il est relativement aisé de rajouter un lien sur sa page Web personnelle menant à son article, pour une école ou une bibliothèque il s’agit de le faire pour des collections entières de documents qui doivent être disposées de façon systématique sur une plate-forme dédiée, permettant aux internautes de rechercher et de naviguer aisément le long de ces contenus.

On distingue ici les termes document et fichier. Alors que ce dernier désigne spécifiquement un fichier informatique (PDF, JPEG, MPEG, TIFF, etc.) le premier désigne plutôt une ressource documentaire, telle qu’un livre, une thèse ou un article, qui peut être composée de plusieurs fichiers.

Les serveurs de documents numériques

Pour cela ces institutions emploient des logiciels ou des services capables non seulement de mettre les documents à disposition des usagers, mais aussi de les organiser par collections et de gérer les métadonnées correspondantes, c’est-à-dire les informations qui décrivent chaque document, tels que le titre, les auteurs, la date, la maison d’édition, etc. Cela revient donc à constituer ce qu’on appelle couramment un serveur de documents ou une bibliothèque numérique. Ces services sont munis d’un catalogue bibliographique permettant des opérations de recherche ou de navigation (browsing) le long des collections. C’est l’exemple de la plate-forme Infoscience de l’EPFL (fig. 1) et de la Bibliothèque numérique RERO DOC (fig. 2). Des milliers de serveurs de documents existent actuellement au niveau mondial et de nouveaux se mettent en place régulièrement.

Les limitations des interfaces de consultation traditionnelles

À l’heure actuelle, ces documents se trouvent, dans la très grande majorité des cas, sous forme de fichiers PDF. Lorsqu’un utilisateur souhaite consulter un tel document il clique simplement sur le lien correspondant et le fichier s’ouvre devant lui à l’aide d’un logiciel dédié, par exemple Adobe Reader, Aperçu (Mac OS) ou KPDF (Linux), installé sur le poste de l’utilisateur, parfois sous forme de plugin externe rajouté au navigateur. Ce geste est devenu tellement courant qu’on n’y pense même pas. Et le même principe s’applique pour d’autres types de fichiers que le PDF, chacun d’entre eux faisant appel à un outil approprié.

Les fichiers multiples

Cette approche est relativement satisfaisante pour les documents individuels, composés d’un seul fichier. Mais elle est limitée en présence de documents structurés et composés de plusieurs fichiers, comme des périodiques, collections, livres multivolumes et autres types de regroupements, obligeant l’utilisateur à ouvrir séparément chacun d’entre eux sans pouvoir les mettre en perspective.

L’obligation de télécharger le fichier complet

Un autre problème associé à l’approche du téléchargement simple se manifeste lorsque la taille du contenu à télécharger est considérable, et ceci, de deux manières :

  1. dans le cas où l’utilisateur ne possède pas une ligne Internet à haut débit (temps d’attente trop long) et
  2. lorsque les données téléchargées sont taxées au volume, comme c’est habituellement le cas pour les dispositifs mobiles (Smartphones) reliés à une connexion fournie par un opérateur de téléphonie.

Il est courant de voir des fichiers PDF de 100 Mb et plus à télécharger, notamment lorsqu’il s’agit du résultat de numérisation de documents imprimés. De quoi faire exploser bon nombre de forfaits mensuels avec un ou deux téléchargements !

La perte du résultat de recherche

Lorsque le document à consulter a été retrouvé à la suite d’une opération de recherche dans le catalogue respectif, l’expression recherchée devrait être présentée et mise en évidence à l’intérieur du document à l’endroit où elle a été retrouvée, permettant à l’utilisateur de s’y diriger directement. Or, avec l’approche du téléchargement simple il est obligé, une fois le document ouvert, de répéter la même opération de recherche, cette fois-ci dans le logiciel de consultation employé.

Multivio : une solution open source

Avec l’objectif d’améliorer la consultation d’objets numériques, RERO a lancé en 2008 le projet Multivio. Son but est de développer une application Web permettant d’être couplée avec des serveurs de documents et de fonctionner comme couche de présentation de contenus numériques à l’intérieur du navigateur. L’application est conçue comme un module indépendant, mais pouvant s’adapter au contexte dans lequel il s’intègre.
Une telle solution évite le recours à des logiciels tiers et permet de présenter des documents structurés de façon conviviale et optimale du point de vue du transfert de données.

Le projet

Multivio est cofinancé par RERO et la Confédération puisqu’il est l’un des 20 projets faisant partie de E–lib.ch : Bibliothèque électronique suisse, projet de coopération et d’innovation de la Conférence universitaire suisse pour la période 2008-2011. À noter que l’EIA-FR participe au développement dans le cadre d’un accord avec RERO. À la fin de la période prévue de financement (avril 2011) le projet se poursuivra selon le modèle open source traditionnel.
Multivio n’est pas le seul projet à se développer dans ce domaine. Citons comme exemples similaires, mais répondant à des besoins un peu différents, DFGViewer et l’outil Quick View intégré récemment par Google dans les résultats de son moteur de recherche.

Mode de fonctionnement

Prenons un exemple pour illustrer le mode de fonctionnement de l’application : la bibliothèque numérique RERO DOC propose désormais à ses utilisateurs la possibilité de consulter ses documents à l’aide de Multivio (de façon expérimentale).
La figure 4 montre un extrait de liste de résultats de recherche sur RERO DOC où l’on peut voir, associés au premier résultat, à la fois le lien direct vers le fichier PDF et un lien multivio. Le lien Texte intégral correspond à la situation usuelle, c’est-à-dire l’ouverture du fichier PDF selon la méthode configurée sur le poste de l’utilisateur. Le lien multivio, lui, montre le même document, mais à l’aide de l’interface Multivio directement intégrée dans le navigateur et utilisant des technologies de base : HTML + JavaScript + CSS. Aucun plugin ou application externe n’est requis dans ce cas.
En regardant le deuxième résultat dans la même figure on s’aperçoit que le document en question (un article, en l’occurrence) est composé de deux fichiers PDF. Dans ce cas de figure, le lien multivio offre à l’utilisateur la possibilité de consulter les deux simultanément comme s’il s’agissait d’un seul, ce qui est logique compte tenu du fait qu’ils font tous les deux partie du même document.
Multivio peut être utilisé de façon indépendante comme outil pour visionner le contenu d’un seul fichier ou alors couplé à une source de contenus (un serveur de documents) qui fait appel à lui dès qu’il s’agit de présenter un document à l’utilisateur.

Le cas le plus intéressant : les contenus composés

Le contenu à présenter peut être simple ou composé. Voici comment ces deux cas se distinguent.

Fichier isolé

L’URL source, celui qui est fourni au départ à l’application, mène directement à un fichier (PDF, image, vidéo ou autre) ; c’est le cas le plus simple. Multivio convertit alors simplement le fichier en un format directement lisible par le navigateur (ex : un PDF est décomposé en images de façon optimale), analyse sa structure interne si elle est présente (table des matières) et extrait son contenu textuel pour permettre des opérations de recherche. Le contenu est ensuite présenté à l’utilisateur.

Document composé

Au lieu de mener vers un fichier, l’URL source pointe sur une fiche des métadonnées qui décrivent l’ensemble du document et qui elles-mêmes contiennent les URL des fichiers de contenu. Dans ce cas de figure, Multivio explore l’ensemble de ces URL, récupère les fichiers correspondants, fait les traitements nécessaires sur chacun d’entre eux (voir ci-dessus), les met ensemble selon une organisation logique et présente le tout à l’utilisateur de façon homogène, permettant sa consultation ainsi que la navigation et la recherche à l’intérieur.

Métadonnées comme point de départ

Les formats de métadonnées les plus couramment utilisées pour la description de documents sont : Dublin Core, MODS et MARC21, essentiellement des métadonnées bibliographiques, mais qui peuvent contenir aussi des liens d’accès au contenu numérique, sous forme de liste. Par exemple, lorsqu’une thèse de doctorat est composée de fichiers différents pour le corps principal du document et pour les annexes, comme des données expérimentales ou des démonstrations multimédias, les métadonnées qui décrivent l’ensemble de la thèse contiendront la liste de fichiers en question.
Il existe aussi des formats de métadonnées structurelles, dont METS est l’exemple le plus commun, qui permettent de décrire la structure interne d’un document et à partir de points spécifiques de cette structure pointer vers des fichiers de contenu numérique. Cette approche est couramment utilisée pour décrire des livres numérisés, en assemblant les images obtenues à partir de l’opération de scanning selon une structure logique.

Indépendamment de ce qu’il reçoit en entrée – contenu simple ou composé – Multivio explore la structure interne du document et le type de contenu de chacune des sous-parties est automatiquement détecté, s’il n’est pas indiqué explicitement.

Fonctionnalités

La première version publique de Multivio (0.2.0) permet la consultation de fichiers PDF et images, supporte la navigation de structures hiérarchiques, affiche les miniatures des pages et permet de faire zoom sur le contenu affiché.

La phase officielle du projet se déroule jusqu’à mars 2011. L’équipe de projet travaille aux fonctionnalités manquantes, notamment :

Serveur et client : chacun son rôle

L’application est composée d’une couche serveur et d’une couche client. Le client est un ensemble de fichiers statiques HTML, JavaScript et CSS qui sont chargés dans le navigateur de l’utilisateur et qui contiennent l’ensemble de la logique de l’application, fonctionnant sur une page Web unique. Celle-ci fait appel au serveur uniquement pour le traitement de contenus, par exemple la demande de la structure du document, d’une page particulière d’un document textuel ou d’un niveau de zoom particulier pour une page en cours de visionnement. En résumé le serveur fait le travail le plus lourd ou celui qui, au stade actuel de la technologie, ne peut pas être exécuté par un navigateur.
La séquence habituelle d’opérations lors de l’utilisation de Multivio est montrée dans la figure 8.

  1. L’utilisateur demande à consulter un document.
  2. Le navigateur transmet la demande au serveur Multivio.
  3. Celui-ci récupère le contenu et les métadonnées (si elles sont présentes) à partir de la source de contenus.
  4. Les contenus sont retournés en brut depuis la source.
  5. Le serveur effectue les opérations nécessaires, notamment : parsing de la structure initiale à partir des métadonnées, extraction de la liste de fichiers qui forment le document et extraction de la structure interne de chacun de ces fichiers (ex : les tables des matières des fichiers PDF) ; il rassemble enfin le tout dans une structure unifiée.
  6. Envoi du contenu à l’utilisateur sur son navigateur de façon optimisée et fragmentée (uniquement le contenu requis et selon le besoin).

Les technologies employées

L’essentiel de la couche client est développé avec SproutCore, un framework JavaScript très performant et qui permet de tirer parti de fonctionnalités spécifiques à la norme HTML5 . SproutCore permet aussi la création aisée d’interfaces tactiles. Accessoirement JQuery, jquery.com, un autre framework JavaScript, est utilisé comme appoint pour certains aspects particuliers de l’interface utilisateur.
La couche serveur est développée en Python et intègre certaines librairies logicielles dédiées à des tâches spécifiques, par exemple Poppler, pour la manipulation de fichiers PDF et PIL, pour le traitement d’images. Selon les besoins futurs de Multivio en termes de types de contenu à traiter d’autres librairies pourront y être intégrées.

Caractéristiques principales

Open source

Le code source de Multivio est disponible à l’adresse www.multivio.org sous licence open source GPLv3, tant la couche client que la couche serveur. La participation communautaire à l’extension de l’application sera la bienvenue.

Modulaire et extensible

L’architecture de Multivio a été conçue dès le départ pour être ouverte et modulaire, avec l’objectif de permettre le plus facilement possible d’étendre ses fonctionnalités à l’avenir sans bouleverser la structure de base de l’application. Sont notamment visés le support de nouveaux formats de fichiers de contenus et de types de métadonnées, ainsi que l’ajout de nouvelles composantes à l’interface utilisateur.

Support de structures arbitraires

Multivio est ouvert à tout type de structure hiérarchique, indépendamment du langage avec lequel elle est décrite. Chacun peut donc créer une procédure de parsing pour extraire de ses propres données une arborescence qui puisse être présentée à l’utilisateur. La syntaxe structurelle de Multivio est très simple. Le modèle de données central, appelé CDM est constitué essentiellement d’une liste de fichiers et d’une arborescence dont chaque noeud pointe vers l’un des fichiers de la liste ou vers une position spécifique à l’intérieur de l’un d’entre eux, et ceci en format JSON. Des informations plus détaillées à ce sujet peuvent être obtenues sur www.multivio.org.

Légèreté

Le contenu à afficher est optimisé par la couche serveur, si nécessaire. Multivio est ainsi capable d’afficher des contenus de très grande taille : il a été testé jusqu’à environ 1 GB de fichiers PDF contenus dans un même document, présentés simultanément (virtuellement) à l’utilisateur de façon très légère, puisque seul le contenu nécessaire est envoyé sur le poste client. Par exemple, pour un fichier PDF, les pages sont envoyées à mesure que l’utilisateur demande à les visionner, et de même pour la liste de miniatures des pages ainsi que pour les parties les plus profondes de la structure du document.

Serveur Multivio public

RERO met à disposition depuis avril 2010 un serveur de démonstration de Multivio à usage public demo.multivio.org, permettant le feedback de la part des utilisateurs et des institutions intéressées. Ce démonstrateur permet à chacun de tester Multivio avec ses propres documents, soit manuellement à l’aide d’un petit formulaire acceptant une URL, soit directement depuis son propre catalogue ou serveur de documents, à l’aide d’une URL paramétrable qui actionne l’appel à Multivio.
L’utilisation du serveur public est entièrement libre, avec comme seules réserves l’absence de garantie de support et de disponibilité du service ainsi qu’une limitation dans la taille des documents admis. Les institutions intéressées peuvent installer et paramétrer leur propre instance, si elles le souhaitent, mais cette instance publique leur offre désormais une solution d’interface de présentation pour leur serveur de documents.

Pour plus d’informations



Glossaire

CDM
Core Document Model
EIA-FR
École d’ingénieurs et d’architectes de Fribourg
HTML5
norme pas encore entérinée mais déjà partiellement implémentée dans plusieurs navigateurs, qui offre des fonctionnalités telles que le support natif de contenus multimédias dans HTML/JavaScript (évite le recours à des plugins externes) et le stockage local de données dans le navigateur du client.
parsing
technique qui consiste à analyser un flux de caractères, fourni en entrée. Il est utile pour tester l’existence de données, pour manipuler un flux de données et pour extraire des informations choisies de ce flux de données.
RERO
réseau de bibliothèques de Suisse occidentale