Le nouveau catalogue public de la Bpi : chantier de conception
Pour son nouveau catalogue public, la Bpi a conçu un outil unique et sur-mesure.
Le 22 septembre 2020, la Bpi a mis en production une nouvelle interface publique pour son catalogue. S’achevait ainsi le travail de plus de cinq années.
Ce vaste chantier a été suivi par une équipe projet de sept personnes travaillant à la Bpi : quatre bibliothécaires du service Données et accès (Département Lire le monde) et trois développeurs du service Etudes et projets (Département des systèmes d’information). La première partie des travaux, consistant en une refonte complète de l’infrastructure et du mode de récupération des données, a été menée en interne ; la seconde, la conception d’une interface graphique, a été réalisée avec l’intervention d’un prestataire extérieur.
Historique du projet
En 2015, l’obsolescence du catalogue est constatée. S’engage alors un projet visant à le moderniser. Trois objectifs sont fixés : la simplification de la chaîne de données et de l’interface, l’amélioration de l’accès aux ressources électroniques et la mise en conformité du catalogue avec la réglementation de l’accessibilité numérique.
La Bpi hésitant entre un outil standard fourni par un éditeur et une conception sur mesure, une assistance à maîtrise d’ouvrage est demandée. Cette dernière a tranché que, du fait de la singularité de sa collection, la Bpi ne pouvait utiliser un outil clé en main. Un recueil des besoins auprès de collègues de nombreux services a donc été réalisé, afin de définir les points essentiels sur lesquels se concentrer. Puis, en 2016, des ergonomes indépendants ont été sollicités pour fournir des maquettes répondant aux attentes ; l’accessibilité des maquettes a ensuite été validée par un expert accessibilité.
Un travail sur l’infrastructure et le schéma de données
Ce chantier, réalisé entre 2017 et 2019, a été effectué en interne par trois développeurs, à la demande de l’équipe Catalogue public du service Données et Accès. Il a touché l’infrastructure et le schéma de données, soit la partie cachée du catalogue. La précédente version se composait de deux bases de données différentes, d’un logiciel peu fonctionnel servant entre autres pour l’harmonisation des données ou la définition des moissons, et d’un CMS qui n’était plus maintenu depuis plusieurs années. L’infrastructure devait donc être simplifiée, afin de mieux contrôler toutes les étapes et réduire les temps de traitement. Toutefois, la Bpi souhaitait conserver un principe de la version antérieure : le mélange, dans les mêmes tables de la base de données, des notices produites en interne et de celles venant de sources externes, ceci afin qu’elles ressortent uniformément sur l’interface publique. Dans un même temps, elle voulait aussi enrichir et diversifier ces mêmes données.
La simplification de l’infrastructure est passée par le développement d’un unique “moissonneur” multifonctionnel.
Cet outil sert avant tout à la récupération des données internes ou externes, dans une base de données SQL, en s’appuyant sur des mappings entre les champs sources et les champs des tables internes. Le travail a surtout consisté à augmenter la quantité et la variété des données récupérées. Pour les notices internes, davantage de zones et de sous-zones de l’Unimarc ont été isolées dans les tables, permettant un affichage plus précis de certaines données comme la note sur les récompenses, les titres uniformes, les titres en relation, les titres d’ensemble ou les autres éditions. De plus, ont été prises en compte les zones créées ces dernières années pour la mise en place de la Transition Bibliographique [voir article https://pro.bpi.fr/preparer-son-catalogue-a-la-tran/] : la zone de l’adresse 214, la forme du contenu 181 et le type de médiation 182. En parallèle, des pré-filtrages ont été installés pour écarter les notices inactives ou incomplètes. Pour les notices externes, des champs ont été prévus pour récupérer spécifiquement des données OAI ou Kbart.
Ce moissonneur a aussi permis de diminuer la durée des collectes, et de diversifier les formats et donc les sources : dans la précédente version, seules les données OAI pouvaient être moissonnées ; à présent, ont été ajoutées les données issues de fichiers Kbart – et prochainement, celles via Json et via Onyx. Le bon déroulement de ces actions est contrôlable depuis un back-office, mais aussi grâce à des alertes et des reportings réguliers.
Au sein du moissonneur, les données sont également traitées. Ainsi, les notices présentes dans les entrepôts ou fichiers externes qui ne font pas partie des abonnements contractés par la Bpi sont filtrées grâce à un module d’exclusion. D’autre part, les données sont partiellement transformées : les intitulés des langues, des supports et des types de document sont harmonisés, fonction indispensable pour unifier les données exposées sur le catalogue sachant que les entrepôts et fichiers récupérés utilisent des normes de catalogage et des vocabulaires différents. En outre, un identifiant unique est attribué à toutes les notices Bpi ; cet identifiant est exploité pour construire des ARKs servant d’URL pour toutes les notices détaillées. Ces mêmes types d’identifiants sont établis aussi pour les notices moissonnées pour lesquelles les URL sont des permaliens. Enfin, le moissonneur gère l’indexation des données dans un indexeur Solr, nécessaire à la recherche des documents.
C’est aussi en interne que les différents web-services, qui sont utilisés pour alimenter les résultats de recherche de l’interface publique, et qui retournent les résultats au format XML, ont été développés. Ces web-services répondent spécifiquement à chacun des types de recherche souhaités par la Bpi, en recherche simple et recherche avancée.
Enfin, avec l’aide du service Production informatique (DSI), une authentification unique à tous les sites et applications de la Bpi a été établie, en se basant sur un même annuaire LDAP. Les profils d’accès aux ressources électroniques depuis le catalogue ont aussi été simplifiés, en les restreignant à trois : un profil “interne”, correspondant aux postes fixes virtualisés disponibles pour les usagers au sein de la bibliothèque, qui permet d’accéder à l’ensemble du catalogue et des liens d’accès, un profil “wifi” pour les postes professionnels et les appareils connectés via le wifi interne avec moins de ressources payantes disponibles, et enfin un “externe”, pour tous les postes distants, qui donne toujours accès à l’ensemble du catalogue mais uniquement aux liens des ressources libres.
Travail sur l’interface publique
La seconde partie du chantier, qui a eu lieu en 2019 et en 2020, a consisté à offrir une interface publique au nouveau catalogue. La fourniture et le développement de cette interface, permettant la restitution visuelle des web-services, a été confiée à un prestataire extérieur. Ce dernier était accompagné par un expert accessibilité numérique, tandis que la Bpi travaillait avec un autre prestataire chargé de l’audit de l’accessibilité.
Parmi les exigences techniques, la solution proposée devait être compatible avec les dernières versions des principaux navigateurs du marché (Firefox, Safari, Internet Explorer/Edge et Chrome). Contrairement à précédemment, l’interface ne devait pas non plus dépendre d’un CMS pour l’affichage des données, mais utiliser les langages standards du web. C’est pourquoi, les différentes pages, conçues par la Bpi avec l’aide d’un graphiste indépendant, devaient tout d’abord être livrées au format HTML exempt de tout JavaScript. Nous avons ainsi disposé des patrons des pages, afin de tester la validité des rendus sur plusieurs navigateurs et vérifier leur accessibilité. Ce n’est que dans un second temps que le JavaScript, servant à la partie dynamique du site, a été ajouté. Enfin, après validation de tout le graphisme, le code a été rédigé en PHP permettant de gérer les appels aux web-services et l’authentification aux comptes utilisateurs. La conception du site s’est étalée sur dix-huit mois, et se poursuit, après la mise en production de l’interface, pour des évolutions et de la maintenance. Chaque étape du développement a été validée par la Bpi à la suite de points projet avec le prestataire et a subi une expertise d’accessibilité. La procédure d’intégration a été documentée et approuvée en partenariat avec la direction du DSI de la Bpi. De plus, avant la mise en production, il y a eu un transfert d’expertise : la société a livré le site à la Bpi laquelle a, à présent, la main sur l’ensemble des éléments qui le composent.
Durant les mois qui ont précédé sa mise en production, l’interface a été testée par des utilisateurs bibliothécaires internes, des usagers de la Bpi et des utilisateurs accessibilité, afin d’avoir des retours sur les différentes fonctionnalités et sur l’ergonomie de cette interface. Un accompagnement des utilisateurs a aussi été mis en place, peu après la mise en production, avec des formations pour les collègues de la bibliothèque et des permanences pour présenter la nouvelle interface aux usagers.
XÉtant un service public, nous ne faisons aucun usage commercial des données collectées lors de votre navigation. Nous utilisons les cookies ou technologies similaires pour accéder uniquement à des données personnelles non sensibles stockées sur votre terminal, que nous traitons afin de réaliser des statistiques, mesurer les performances du site, ou permettre des accès à des ressources externes.
Vous pouvez à tout moment revenir sur vos choix en utilisant le lien "Personnaliser". En savoir plusRefuserAccepterPersonnaliser
Politique de confidentialité & cookies
Gestion de vos préférences sur les cookies
Ce site utilise des cookies pour améliorer votre expérience de navigation. Ces cookies sont classés en trois catégories : fonctionnel, statistiques et marketing.
Veuillez retrouver notre politique de gestions de données personnelles et de cookies : page "Politique de confidentialité"
Ces cookies nous permettent de réaliser des statistiques de mesures d’audiences et de performances en analysant le volume et la source du trafic sur notre site. Ces cookies permettent également d’analyser de façon anonyme le comportement des visiteurs de notre site afin de mesurer et d'améliorer les performances de notre site et de nos campagnes en ligne.
Le recueil de votre consentement n’est pas requis, nous utilisons un logiciel d’analyse d’audience (Matomo) configuré selon les recommandations de la CNIL pour bénéficier de l’exemption de consentement.
https://www.cnil.fr/fr/cookies-et-autres-traceurs/regles/cookies-solutions-pour-les-outils-de-mesure-daudience
Cookie
Durée
Description
_pk_id.*
13 mois
Ce cookie est installé par l'outil d'analyse Web Matomo.
Le cookie _pk_id est utilisé pour stocker des détails sur l'utilisateur tels que l'identifiant unique (ID).
Les cookies créés par Matomo commencent par : _pk_ref, _pk_cvar, _pk_id, _pk_ses.
Pour plus d'informations sur les cookies de Matomo : https://fr.matomo.org/faq/general/faq_146/
_pk_ses.*
30 minutes
Ce cookie est installé par l'outil d'analyse Web Matomo.
Ce cookie _pk_ses de courte durée est utilisé pour stocker temporairement les données de la visite.
Les cookies créés par Matomo commencent par : _pk_ref, _pk_cvar, _pk_id, _pk_ses.
Pour plus d'informations sur les cookies de Matomo : https://fr.matomo.org/faq/general/faq_146/
Les cookies fonctionnels sont utiles au bon fonctionnement du site. Cette catégorie inclut uniquement les cookies qui garantissent les fonctionnalités de base et les éléments de sécurité du site Web. Ces cookies ne stockent aucune information personnelle.
Cookie
Durée
Description
AWSALBAPP-*
7 days
Série de cookies déposés par AWS. Cookies "Application Load Balancer" utilisés pour garantir de bonnes performances du site Web.
cookielawinfo-checkbox-analytics
1 year
Défini par le plugin GDPR Cookie Consent, ce cookie enregistre le consentement de l'utilisateur pour les cookies de la catégorie « Analytics ».
cookielawinfo-checkbox-fonctionnel
1 year
Défini par le plugin GDPR Cookie Consent, ce cookie est utilisé pour stocker le consentement de l'utilisateur pour les cookies de la catégorie « Fonctionnel ».
cookielawinfo-checkbox-marketing
1 year
Ce cookie est défini par le plugin GDPR Cookie Consent pour stocker le consentement de l'utilisateur pour les cookies de la catégorie « Marketing ».
cookielawinfo-checkbox-necessary
11 months
Ce cookie est défini par le plugin GDPR Cookie Consent. Les cookies sont utilisés pour stocker le consentement de l'utilisateur pour les cookies dans la catégorie «Nécessaire».
cookielawinfo-checkbox-non-necessary
11 months
Ce cookie est défini par le plugin GDPR Cookie Consent. Les cookies sont utilisés pour stocker le consentement de l'utilisateur pour les cookies dans la catégorie «Non nécessaire».
CookieLawInfoConsent
1 year
CookieYes définit ce cookie pour enregistrer l'état du bouton par défaut de la catégorie correspondante et le statut du CCPA. Cela fonctionne uniquement en coordination avec le cookie principal.
JSESSIONID
session
New Relic utilise ce cookie pour stocker un identifiant de session afin que New Relic puisse surveiller le nombre de sessions pour une application.
PHPSESSID
session
Ce cookie est natif des applications PHP. Le cookie stocke et identifie l'ID de session unique d'un utilisateur pour gérer les sessions utilisateur sur le site Web. Le cookie est un cookie de session et sera supprimé lorsque toutes les fenêtres du navigateur seront fermées.
ROUTEID
session
Ce cookie est utilisé pour diriger les utilisateurs vers le même serveur.
ts
1 year 1 month 1 day
PayPal définit ce cookie pour permettre des transactions sécurisées via PayPal.
usprivacy
1 year 1 month
Cookie défini par Dailymotion pour stocker la chaîne de consentement CCPA (informations obligatoires sur un utilisateur final étant ou non un consommateur californien et exerçant ou n'exerçant pas son droit statutaire).
viewed_cookie_policy
11 months
Le cookie est défini par le plugin GDPR Cookie Consent et est utilisé pour stocker si l'utilisateur a consenti ou non à l'utilisation de cookies. Il ne stocke aucune donnée personnelle.
__cf_bm
1 hour
Ce cookie, défini par Cloudflare, est utilisé pour prendre en charge Cloudflare Bot Management.
Les cookies analytiques sont utilisés pour comprendre comment les visiteurs interagissent avec le site. Ces cookies génèrent des informations mesurables sur le nombre de visiteurs, le taux de rebond, la source du traffic etc.
Cookie
Durée
Description
browser_id
5 years
Ce cookie est utilisé pour identifier le navigateur du visiteur lors de sa nouvelle visite sur le site Web.
CONSENT
2 years
YouTube installe ce cookie via des vidéos YouTube intégrées et enregistre des données statistiques anonymes.
vuid
1 year 1 month 4 days
Vimeo installe ce cookie pour collecter des informations de suivi en définissant un identifiant unique pour intégrer des vidéos sur le site Web.
_ga
1 year 1 month
Google Analytics définit ce cookie pour calculer les données des visiteurs, des sessions et des campagnes et suivre l'utilisation du site pour le rapport d'analyse du site. Le cookie stocke les informations de manière anonyme et attribue un numéro généré aléatoirement pour reconnaître les visiteurs uniques.
_ga_*
1 year 1 month
Google Analytics définit ce cookie pour stocker et compter les pages vues.
Les cookies publicitaires sont utilisés pour procurer une expérience optimale aux visiteurs du site avec des publicités et des campagnes marketing pertinentes. Ces cookies traquent les visiteurs à travers les sites et collectent leurs informations pour générer des publicités personnalisées.
Cookie
Durée
Description
NID
6 months
Google installe le cookie à des fins publicitaires ; limiter le nombre de fois où l'utilisateur voit une annonce, de manière indésirable
désactiver les publicités et mesurer l'efficacité des publicités.
S
1 hour
Cookie utilisé par Yahoo pour fournir des publicités, du contenu ou des analyses.
scribd_ubtc
10 years
Scribd définit ce cookie pour recueillir des données sur le comportement des utilisateurs sur plusieurs sites Web et maximiser la pertinence des publicités sur le site Web.
test_cookie
15 minutes
doubleclick.net définit ce cookie pour déterminer si l'utilisateur le navigateur prend en charge les cookies.
VISITOR_INFO1_LIVE
6 months
Ce cookie est défini par Youtube. Utilisé pour suivre les informations des vidéos YouTube intégrées sur un site Web.
YSC
session
Ces cookies sont définis par Youtube et sont utilisés pour suivre les vues des vidéos intégrées.
yt-remote-connected-devices
never
YouTube définit ce cookie pour stocker les préférences vidéo de l'utilisateur à l'aide de vidéos YouTube intégrées.
yt-remote-device-id
never
YouTube définit ce cookie pour stocker les préférences vidéo de l'utilisateur à l'aide de vidéos YouTube intégrées.
yt.innertube::nextId
never
YouTube définit ce cookie pour enregistrer un identifiant unique afin de stocker des données sur les vidéos de YouTube que l'utilisateur a vues.
yt.innertube::requests
never
YouTube définit ce cookie pour enregistrer un identifiant unique afin de stocker des données sur les vidéos de YouTube que l'utilisateur a vues.
Les autres cookies correspondent à des fonctionnalités non-obligatoires et à des cookies qui sont en cours d'analyse et qui n'ont pas encore été classés dans une catégorie.
Cookie
Durée
Description
COMPASS
1 hour
La description de ce cookie n'est pas disponible actuellement.
cook_lang
1 year 1 month 4 days
Le cookie Cook_lang stocke la langue dans laquelle le site Web est affiché.
dmvk
session
Le cookie dmvk est défini par Dailymotion pour enregistrer des données sur le comportement des visiteurs sur le site Web.
fonts-loaded
session
La description de ce cookie n'est pas disponible actuellement.
GFE_RTT
5 minutes
Cookie tiers, déposé par Google. Utilisé pour mettre en œuvre le contenu via Google Docs : docs.google.com.
l
1 month
La description de ce cookie n'est pas disponible actuellement.
lang
session
Le cookie v1st est défini par TripAdvisor pour collecter des détails sur la manière dont les visiteurs utilisent le site Web, en affichant les avis des utilisateurs, les récompenses et les informations reçues sur la communauté TripAdvisor.
pll_language
1 year
Polylang définit ce cookie pour mémoriser la langue dans laquelle l'utilisateur sélectionne lorsqu'il revient sur le site Web et obtient le
informations linguistiques lorsqu’elles ne sont pas disponibles d’une autre manière.
v1st
1 year 1 month 1 day
Le cookie v1st est défini par TripAdvisor pour collecter des détails sur la manière dont les visiteurs utilisent le site Web, en affichant les avis des utilisateurs, les récompenses et les informations reçues sur la communauté TripAdvisor.
VISITOR_PRIVACY_METADATA
6 months
Ce cookie est défini par Youtube. Stocke l'état de consentement des cookies de l'utilisateur pour le domaine actuel.