Allons au musée en train

Troisième épisode de notre feuilleton « Enrichir des données avec Antidot Information Factory » : après avoir transformé un fichier Excel en une application de recherche, puis intégré des photos librement disponibles sur le web, nous allons maintenant ajouter une information supplémentaire pour chacun de nos musées : la gare SNCF la plus proche.

Et ce qu’il y a de bien avec l’Open Data, c’est qu’on y trouve pléthore d’informations bien utiles. Ainsi, la liste des gares de la SNCF est disponible, tout comme celle des aéroports et des stations de métro (mais pas encore pour toutes les villes…). Pour notre exemple, nous nous focaliserons uniquement sur les gares.

De la même façon que pour la liste des musées de France, les gares ont leur fichier Excel sur data.gouv.fr. Une différence importante : ce fichier contient déjà les coordonnées de géolocalisation de chaque gare :

excel_railstations

Reste à rapprocher ces lignes Excel de nos musées. L’idéal serait d’avoir un web service répondant aux requêtes telles que « Quelle est la gare la plus proche de ce point (X,Y) ? ». On y enverrait les coordonnées du musée obtenues par l’enrichissement géographique et on aurait ainsi la gare recherchée.

Un fichier Excel n’est pas un web service, bien entendu, mais heureusement nous pouvons le créer assez facilement. En effet, un service de recherche tel que celui des musées peut être vu différemment que l’on soit un être humain (via une appli web ou mobile) ou une machine (via un web service). Le moteur de recherche AFS répond en effet aux requêtes reçues dans les formats techniques tels que XML et JSON qui sont les standards d’interopérabilité applicative sur le web.

Ainsi, le fichier Excel des gares de France devient un service de recherche géolocalisé en suivant les mêmes étapes que pour les musées :

railstation_paf_chain

 

  • transformation XML du fichier Excel

 

  • séparation de chaque ligne

 

  • indexation géolocalisée

 

  • déploiement

 

 

 

Une fois ce service de recherche de gare déployé, nous allons l’utiliser dans la chaine de traitement des musées pour obtenir la gare la plus proche. Pour cela, on réutilise le module d’appel de web service en se basant sur les paramètres d’appel d’un service de recherche AFS.

Ainsi, une requête telle que :

/search?afs:service=2013&afs:feed=RailroadFR
&afs:filter=geo:dist(45.76,4.86)<10000
&afs:sort=geo:dist(45.76,4.86),ASC

renvoit un flux XML des gares SNCF situées à moins de 10 km du point (45.76, 4.86), triées par distance croissante avec ce point.

Nous pouvons alors utiliser ce service de recherche comme un web service pour trouver la gare la plus proche de chaque musée.

Pour cela, nous rajoutons un nouveau module de requête web service à la chaine de traitement sur les données des musées :

paf_chain

Il se paramètre ainsi, toujours dans le Back Office d’Antidot Information Factory :

railstation_filter_param

Il suffit alors de relancer la chaine de traitement et le tour est joué : dans la fiche signalétique de chaque musée apparaît la gare la plus proche :

web_museum_3

Cela semble un peu magique, non ?

One thought on “Allons au musée en train

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *