Skip to content

Yahoo Pipes : tutoriel 9 (géoprojetez violemment vos données)

01/07/2009

Tous les tutoriels Yahoo Pipes

Depuis le temps que vous voyez passer des pipes avec affichage cartographique (voici le dernier en date), cette possibilité offerte par Yahoo Pipes ne sera pas une surprise.

Voici un peu comment s’y prendre. Supposons que vous avez une source d’information comportant une information géographique (genre Calendoc). Vous voulez que Yahoo Pipes en fasse une carte.

Il y a deux méthodes pour cela. Je vous parlerai d’abord de la plus simple, puis de ses insuffisances qui justifient parfois la seconde méthode. Enfin, je signalerai quelques problèmes persistants dans cette fonction.

1ère méthode : Module Location Extractor

Grosso modo, tout fil RSS est composé d’items. Et chaque item est composé essentiellement de trois informations :

  1. un titre
  2. un lien
  3. une « description » (contenu de l’item)

Quand vous fournissez un fil RSS à Yahoo Pipes (module Fetch Feed), si vous le faites simplement passer par Location Extactor, il ira regarder le titre et la description. S’il y reconnaît un nom de lieu (présent dans la base Yahoo Maps), il récupère la longitude et la latitude dudit lieu.

Tutoriel vidéo (screencast) Voir la vidéo

Et voir le pipe produit

Petits soucis dans le résultat

Vous remarquerez dans le résultat que certaines formations sont censées avoir lieu en Amérique du Nord ou dans la Péninsule Arabique…

Ceci est dû au fait que Yahoo Maps n’est pas franco-centré. Il aurait plutôt tendance à préférer les Etats-Unis (de manière assez aléatoire, du reste). Si bien qu’avant de lui donner un nom de lieu à géolocaliser, il est souvent préférable (quand c’est possible) de lui indiquer le pays où se trouve le lieu en question.

2ème méthode : Location Builder

Les titres des items présents dans le fil RSS de Calendoc sont sous la forme :

[nom de lieu] Intitulé de la formation

Je vais donc faire passer le fil RSS dans une boucle (module Loop), qui va isoler la valeur placée entre crochets dans le titre, pour le mettre dans un nouveau champ (que je vais appeler… Lieu). Et je vais rajouter, après le nom de la ville, les lettres « FR » pour préciser qu’il s’agit de la France (il y a des contre-exemples dans Calendoc, donc le résultat pour des villes allemandes ou belges sera peut-être moins satisfaisant).

Puis j’utiliserai le module Location Builder (intégré dans un module Loop) en lui précisant de regarder dans le champ « Lieu ».

Voir la vidéo

(au passage : je suis un peu confusionné vers la fin du screencast. Les vacances sont dans un mois et je compte sur votre indulgence)

Et voir le pipe

Problèmes récurrents et persistants

On se rend compte assez vite que tout n’est pas parfait, et qu’il faut souvent retraiter l’information initialement fournie par la source pour que Yahoo Pipes s’en satisfasse. Il faut donc passer par Extraction Builder plutôt que Extraction Locator :

  1. Indication de pays. Ce n’est pas possible quand une source mêle des informations concernant plusieurs pays. Mais si votre source concerne uniquement la France, c’est un plus de le lui indiquer
  2. Les signes diacritiques. Selon les sources, l’encodage des caractères accentués sera différemment apprécié par Yahoo Pipes. Il se peut donc qu’il soit incapable de localiser Créteil, par exemple. On est alors obligé d’utiliser le module Regex pour remplacer tous les é, les ê, les è et les ë par des « e », et de même pour toutes les voyelles possibles, les « ç » et les apostrophes. C’est très fastidieux !
  3. La langue. Si vous avez une source parlant de « République démocratique du Congo » ou de « République tchèque », Yahoo Pipes appréciera beaucoup si vous lui fournissez du « Democratique Republic of the Congo » ou du « Czech Republic ». Donc vous pouvez être obligé de rajouter une boucle (Loop) pour que le nom de lieu soit traduit, avant d’utiliser Location Builder. Vous trouverez un module Translate dans « String »
    Voir la vidéo
  4. Dernière constatation : en dépit de toutes les améliorations qu’on peut faire subire au nom du lieu pour que Yahoo Pipes le reconnaisse, il y en a toujours qu’il ne reconnaît pas. Si bien que la carte peut contenir dix noms, alors que la liste complète en contient 45. Moralité : on ne peut jamais se contenter de la carte, même si on estime que c’est bien agréable d’en avoir une…

PS : pour ces tutoriels, j’ai pris le fil RSS de Calendoc, qui ne contient que 15 items. En réalité pour une application efficace, j’aurais dû prendre l’extraction intégrale (et mise à jour dynamiquement) de Calendoc : l'<a href= »http://www.google.com/calendar/ical/rvl6rlftbhk5cheo666vnhgtlo%40group.calendar.google.com/public/basic.ics &raquo; target= »_blank »>export .ics</a> (formal <a href= »http://fr.wikipedia.org/wiki/ICal »>iCal</a&gt;) de Calendoc

Publicités
%d blogueurs aiment cette page :