Comme annoncé cet été dans un billet du Fil’Abes, un nouveau service a été mis en production : la géolocalisation des exemplaires des documents décrits dans le catalogue Sudoc. Ce billet se propose d’expliciter comment il a été conçu techniquement. A vos boussoles !
Une condition : des notices RCR enrichies
Pour mettre en place ce service, il a tout d’abord fallu recueillir les coordonnées GPS des établissements documentaires afin de les injecter de façon automatisée dans les notices descriptives des bibliothèques (=notices RCR). Au préalable, deux nouvelles zones -longitude et latitude- avaient été ajoutées dans le format des notices RCR afin de pouvoir y indiquer les coordonnées GPS. Ne disposant que des adresses postales, un script SQL a été conçu afin d’extraire les adresses des bibliothèques de la base de données, ce en formulant des requêtes HTTP de ce type : http://maps.googleapis.com/maps/api/geocode/json?region=fr&sensor=false&address=ADRESSE_DE_LETABLISSEMENT
Pour cela, c’est l’API Geocoding de Google Map qui a été utilisée, une API bien pratique dont le fonctionnement est explicité sur Google Developers. Cette API renvoie un fichier JSON dans lequel il est simple d’extraire les coordonnées GPS afin d’enrichir les notices RCR.
Après cette première mise-en-œuvre automatisée, il appartient aux coordinateurs et responsables CR de renseigner ces informations lors de la création de toute nouvelle notice RCR.
La Géolocalisation côté code
Sur le catalogue Sudoc public, à partir de l’onglet « Où trouver ce document ? » situé au-dessus de chaque notice bibliographique, un lien utilisant l’identifiant de la notice (=numéro PPN) est généré : http://www.sudoc.fr/geolocalisation/?ppn=017150590
Pour parvenir à ce résultat, plusieurs web services développés par l’ABES sont utilisés :
- le web service « MultiWhere » appelé afin d‘extraire la liste des établissements possédant l’exemplaire ainsi que leurs coordonnées GPS
- deux web services d’IdRef qui ont été conçus afin de recueillir des informations détaillées concernant l’établissement :
- une API Solr qui permet d’extraire le PPN de la notice de l’établissement à partir de son numéro RCR : http://www.idref.fr/Sru/Solr?q=rcr_t:250562102&fl=ppn_z
- la récupération des données de la fiche d’autorité de l’établissement au format UNIMARC/XML : http://www.idref.fr/050943057.xml
- le lien profond (deep link) intitulé « Disponibilité », pointant vers l’exemplaire situé dans le catalogue de l’établissement : il peut être récupéré en consultant le web service « MultiLinkRcr ». Ce service, qui répond au format JSON, prend en paramètre la liste des numéros RCR des établissements que l’on veut consulter. Le lien profond se trouve dans la zone « racinedeeplinkpsi » : http://www.sudoc.fr/services/multilinkrcr/490072101,290192101,951272104
Comment réutiliser la géolocalisation Sudoc dans vos développements ?
Deux possibilités s’offrent aux développeurs qui souhaitent intégrer ce web service de géolocalisation à leurs développements :
- par le biais d’une iFrame
- en créant directement un lien vers l’URL du service. Celui-ci fonctionne grâce à l’identifiant des notices Sudoc (= le numéro PPN), passé en paramètre de l’URL : http://www.sudoc.fr/geolocalisation/?ppn=142864811
Rappel : en fonction des informations dont on dispose, plusieurs services permettent de trouver l’identifiant Sudoc d’une notice (PPN). La liste de ces services ainsi que leur documentation est accessible sur la page « Pour les développeurs » du site de l’ABES.