Pour faire fonctionner Blacklight en mode OPAC de nouvelle génération d’abord, il a fallu répondre à 3 questions :
- comment importer toutes les notices du SIGB dans l’index Solr ?
- comment obtenir les données d’exemplaires (donner la disponibilité) ?
- comment gérer les services et l’accès au dossier lecteur ?
Paramétrage de l’index Solr et procédure d’import
Blacklight n’est à proprement parler que l’interface qui permet de gérer l’affichage des données et les services au lecteur. Celui qui fait tout le boulot de traitement des données, c’est le moteur Solr. Il s’agit donc de lui faire avaler des données au format MARC ISO2709 afin qu’il puisse les indexer et les proposer sous forme de facettes, par exemple.
Indexation
La version standard de Blacklight proposée en téléchargement fournit une configuration de base opérationnelle. Mais comme c’est un produit développé aux États-Unis, le format par défaut est le MARC21. Donc, au minimum, pour une BU française, le travail consiste à remplacer les étiquettes de champs MARC21 par des étiquettes UNIMARC. Plutôt facile de mettre 200 là où on trouve 245 ! Mais quand on aborde les notions d’auteurs secondaires ou de titres complémentaires, on se rend compte que les deux formats ont une manière de voir les choses bien différente.
Pour obtenir des facettes intéressantes, il faut réaliser des mappings comme celui-ci, qui concerne le type de document :
# format mapping
# leader 06-07
map.format.aa = Article ou communication
map.format.ai = Ressource à mises à jour
map.format.ac = Recueil
map.format.am = Livre
map.format.as = Revue
map.format.lm = Ressource électronique
# leader 06
map.format.b = Texte
map.format.b = Manuscrit
map.format.c = Partition musicale
map.format.d = Partition musicale
map.format.e = Carte ou plan
map.format.f = Carte ou plan
map.format.g = Vidéo
map.format.i = Enregistrement sonore non musical
map.format.j = Enregistrement musical
map.format.k = Image
map.format.l = Support informatique
map.format.m = Ressource multimédia
# 007[0] when it doesn't clash with above
#map.format.h = Microforme
#map.format.q = Partition musicale
# none of the above
map.format = Indéterminé
Pour la facette « Sujets », nous avons utilisé les mots-clés RAMEAU en séparant les subdivisions : tout ce qu’on trouve en $a ou $x constitue une vedette « thème » tandis que les $y et $z sont distribués « région » et « période ».
Importation automatique
Comme on veut disposer de données bibliographiques à jour, il faut mettre en place deux procédures automatiques : une pour exporter la base catalographique du SIGB, une autre pour importer les données dans l’index Solr.
Nous avons demandé à notre fournisseur de SIGB (GFI) de créer une procédure d’export de toutes les notices au format ISO2709. Donc, tous les jours, l’ensemble du catalogue est mis à jour.
Ensuite, nous avons développé un script shell qui permet, toutes les nuits, d’effacer l’index et d’importer le fichier ISO généré par AbsysNET. Après avoir longtemps buté sur la question des notices supprimées dans le SIGB, nous avons en effet choisi d’effacer tout l’index avant import. Cela permet de ne pas avoir à gérer d’import différentiel (i.e. seulement les nouvelles notices) ni d’avoir à retraiter les notices modifiées ou supprimées. En effet, il nous a semblé impossible d’extraire des indicateurs fiables pour identifier les notices à traiter : pas de données dans le label de notice UNIMARC (position 5 concernant le statut de la notice).
Connexions pour les données d’exemplaire et du lecteur
AbsysNET comprend un serveur Z3950 qui permet d’interroger la base Oracle. C’est sur ce serveur que l’on s’appuie pour interroger en temps réel la base des exemplaires et connaître leur disponibilité.
La page Blacklight qui affiche la notice détaillée d’un document intègre une requête Z3950. Le serveur Z3950 d’AbsysNET renvoie une réponse XML qu’il suffit de mettre en forme à sa guise. Nous affichons donc les données d’exemplaires en tableau et indiquons par une icône rouge ou verte si le document est disponible, c’est-à-dire non emprunté, dans telle ou telle bibliothèque du réseau.
En ce qui concerne le dossier lecteur et les services associés, nous utilisons un connecteur développé par GFI. Connu sous le nom de zabnetarch (car conçu pour fonctionner avec les portails Archimed), ce connecteur permet d’interroger les données du fichier lecteur et d’interagir avec les services permis par les politiques de prêt.
On peut ainsi intégrer des boutons pour demander un prêt (et générer l’impression d’un bulletin), réserver un exemplaire, prolonger un emprunt et fédérer toutes les informations dans une page « mon compte ».
Personnalisation de l’interface
Nous n’avons pas passé de temps sur la partie graphique du catalogue. Nous nous sommes contentés pour le moment d’utiliser le thème standard de Blacklight. La mise en forme nous a semblé bonne et nous n’avons pas fait de cet aspect du projet une priorité.
Nous avons travaillé essentiellement à la traduction de l’interface et des libellés, avec le souci de sortir du jargon bibliothéconomique. Ce n’est pas toujours facile d’y parvenir… Ce même souci de lisibilité nous a conduits à simplifier autant que possible la lecture des notices. Il a fallu faire des choix quant aux champs à afficher. La tension est forte entre la clarté de la présentation et l’exhaustivité de l’information donnée. Compte tenu des remarques des uns et des autres, ce travail se poursuit, d’ailleurs.
Pour illustrer le catalogue, nous avons utilisé les API Google Books qui permettent d’afficher les vignettes de couverture des ouvrages. Après quelques déboires dus à la requête sur l’ISBN (Google digère mal les tirets), nous avons traité les notices de manière à obtenir systématiquement un EAN. Le taux d’affichage des vignettes s’en est trouvé amélioré. Mais c’est encore insuffisant. Notre catalogue est peu illustré, nous le voyons bien avec notre page d’accueil qui recense les nouveautés.
Faute d’un taux de couverture suffisant, nous avons provisoirement affiché nos titres dans un cadre représentant un livre. Nous obtiendrions certainement de meilleurs résultats si on utilisait les API d’Amazon. Mais ici comme ailleurs, le débat reste vif entre les tenants de l’efficacité (plus de vignettes grâce aux API Amazon) et les défenseurs du petit commerce (non à la publicité pour le géant d’internet). Il faudra bientôt trancher.
Configuration de Solr
Dès les premiers tests, il est apparu que les résultats donnés par Solr ne nous convenaient pas. Il a fallu bien se documenter sur son fonctionnement avant d’en saisir les mécanismes et de pouvoir agir sur le calcul de pertinence.
Le plus difficile pour un bibliothécaire est de rompre avec la rigidité des sacro-saints opérateurs booléens. Certes, ils sont utilisés par le moteur mais pas seulement. C’est tout un système de pondération qui peut être paramétré. Le moteur est tendu vers un objectif : donner des résultats. Il n’aime donc pas répondre qu’il ne trouve rien.
Tout l’équilibre réside dans le fait de trouver les termes demandés tout en suggérant d’autres pistes. Solr donne la priorité aux premiers termes saisis et à leur place dans la notice. Le premier résultat de la liste sera toujours la notice qui contient tous les mots saisis dans son titre. Si ce n’est pas le cas, alors le moteur revoit ses exigences à la baisse : des mots placés dans le corps de la notice, moins de mots retrouvés, etc. Et puis si vraiment il n’y a aucune concordance possible, Solr fait des suggestions.
Là encore, les mécanismes sont complexes et tout est différent d’une langue à l’autre. Solr doit être paramétré pour le français afin qu’il puisse analyser les structures de mots pour corriger une faute d’orthographe ou étendre ses recherches à une famille de mots.
Nous avons beaucoup de connaissances à acquérir dans ce domaine pour optimiser le comportement du moteur.
Et maintenant ?
Notre catalogue est en place, sur un mode OPAC de nouvelle génération puisqu’il n’intègre que les ressources imprimées gérées par le SIGB. Il s’agit maintenant de travailler à l’indexation de nos ressources électroniques. Certaines sont déjà présentes : les livres électroniques pour lesquels nous disposons de fichier de notices au format ISO2709 sont indexés directement par import.
Mais le gros des ressources devra faire l’objet d’autres traitements. La base de connaissance SFX pourrait être importée au format CSV et fonctionnerait avec des liens open url. D’autres ressources dont les éditeurs proposent des échanges via le protocole OAI-PMH nécessiteront le développement d’un moissonneur.
Bref, nous avons du pain sur la planche !