Yahoo pipes, pour fabriquer son usine à gaz

Préambule

Avant, je lisais un peu en diagonales les billets de Lully concernant Yahoo pipes. Bon, les pipes, c’est des machins qui permettent de manipuler les flux. Certes. De fusionner des flux RSS. Pourquoi pas. Ce serait même ça qui fait tourner le Bouillon. Très bien, mais à moi, à quoi ça me sert ? Par acquis de conscience, je suis allé voir, et bien sûr, je n’ai rien compris. Après des efforts désespérés, j’étais parvenu à réinventer un LibX Amazon qui existait déjà depuis longtemps. Fort de cette expérience, avant toute chose, j’ai donc visionné attentivement les tutoriels vidéos présentés sur Bibliothèques [reloaded], et j’ai fini par comprendre que l’outil pouvait s’avérer intéressant. Et même particulièrement prometteur. Bon, et un brin obsessionnel, aussi : dès qu’on s’y plonge, on perd un peu de vie sociale, beaucoup d’heures de sommeil, et on gagne un air ténébreux et fatigué quand on rumine dans le (mauvais) bus en se demandant où est-ce que ça peut bien bloquer.

Un problème : l’absence d’Isbn

On trouve des bibliographies sur internet qui ne présentent pas d’Isbn. Je vous l’accorde, ce n’est pas trop grave comme problème : sélection, clic droit, recherche par mots du titre, nom d’auteur ou tous les mots grâce à LibX. C’est juste un peu lent quand le Sudoc rame, et que le titre est long. On peut toujours se bricoler un LibX qui renvoie à Amazon par mots et au Sudoc par l’Isbn, et rebondir ainsi de l’un à l’autre. Mais ça reste long, et on se retrouve avec un LibX qui a tellement d’options qu’il en devient difficilement maniable.

L’idée était donc, à partir d’un flux, d’aller récupérer l’Isbn sur Amazon (le Sudoc est trop lent et fait planter mes pipes) par une recherche par mots. Et, avec cet Isbn, d’aller vérifier  la présence du livre dans nos collections. J’ai donc tenté de créer le pipe qui pourrait faire ça pour moi. Et au début, j’étais plein d’espoir.

Le pipe et son fonctionnement

Le pipe, le voici.

En gros, il propose un champ « auteur » et un champ « titre », parce que c’est souvent le plus pertinent pour trouver un livre, mais il va de toutes façons concaténer les deux, désaccentuer les caractères, et retirer tout ce qui n’est pas un chiffre ou une lettre. Ensuite, il va passer ce critère de recherche « nettoyé » dans un autre pipe.

C’est lui qui va lancer la recherche sur Amazon et récupérer l’Isbn-10 de sa première proposition. Il va aussi récupérer la couverture et enregistrer les quelques mots du titre qu’Amazon associe au lien vers l’article. Ce pipe inclut un troisième pipe qui va retrouver l’Isbn-13 (Amazon n’utilise que l’Isbn-10 pour ses liens).

Enfin, ce qui en sortira passe dans un dernier pipe qui, grâce aux Isbn, va vérifier la présence des document sur le Sudoc. Pour restreindre la recherche à une bibliothèque, il suffit d’entrer le code de celle-ci dans le champ correspondant.

Un tentative d’exploitation

Ce pipe ne servant pas à grand-chose tout seul, je l’ai intégré dans un autre pipe. Celui-ci tente, sur les pages de résumé de comptes-rendus et de notes de lecture de CAIRN (comme celle-ci), de reconnaitre une bibliographie et les ressources qui la composent. Ensuite, il ne reste plus qu’à les passer à la moulinette du chercheur d’Isbn. En théorie.

Les failles

Première faille, les bibliographies de CAIRN ne sont pas toujours mises en forme de la même manière, ni prévues pour être exploitées par une machine. Le pipe identifie les titres en italique entre des balises <em> : avec une autre mise en forme, il ne fonctionne pas.

Ensuite, la proposition jugée la plus pertinente par Amazon n’est pas toujours un livre. Le code alpha-numérique ne ressemble alors pas à un Isbn, le pipe est alors réglé pour ne renvoyer aucun résultat pour cette recherche.

De même, le premier livre proposé n’est pas toujours le bon. C’est pourquoi je récupère la couverture et les mots du titre utilisés dans le lien interne du libraire, que j’affiche dans les résultats. Cela permet (souvent) d’identifier les mauvaises réponses. C’est en tout cas plus lisible qu’un Isbn.

Plus technique : certaines pages de description d’article sur Amazon semblent trop longues pour être analysées par Yahoo pipes à cause des suggestions, commentaires, etc. Donc, impossible de récupérer à coup sûr l’Isbn-13. J’ai donc dû bricoler un sous-pipe pour convertir l’Isbn-10 en Isbn-13  de la façon la plus moche du monde : il fabrique dix Isbn-13 potentiels et envoie une recherche Amazon pour chacun d’entre eux. Celui qui renvoie sur l’Isbn-10 a gagné.

Enfin, l’Isbn présent sur le Sudoc pouvant être l’Isbn-10, l’Isbn-13 ou les deux, j’ai dû faire en sorte que la recherche porte sur l’un ou l’autre de ces deux termes. Ça n’a l’air de rien mais ça n’était pas le plus facile.

En  fin de compte

Le projet était ambitieux, et le résultat n’est pas tellement concluant. J’ai inclus dans le pipe un compteur de notices identifiées et d’Isbn proposés, qui s’affiche en premier résultat – on peut donc voir très vite si ça vaut le coût de commencer à utiliser les résultats. Après quelques tests, ça a l’air de fonctionner avec environ une notice sur deux. Ce qui est bien mais pas top.

Et comme les résultats ne s’affichent pas directement sur les comptes-rendus, il faut passer d’un onglet à l’autre, ça n’est pas forcément le plus pratique. Voire même imprimer la page de résumé (c’est tellement 20ème siècle), y rayer les ressources déjà présentes dans la bibliothèque d’après le pipe, y cocher les ressources sélectionnées d’après les comptes-rendus, et utiliser l’Isbn fourni par le pipe pour les commander.

Autre souci, et de taille : pour les éditions critiques d’une œuvre le premier résultat d’Amazon aura une présentation très similaire à n’importe quelle édition de la même œuvre. En gros, oui, c’est bien Germinal, mais je ne suis pas sûr qu’il s’agisse de l’édition que je cherche, et pour le coup c’est le matériel critique qui m’intéresse, plus que le texte original déjà présent dans nos collections.

Enfin, même si c’est un détail, l’Autolink de LibX ne fonctionne pas sur les résultats Yahoo pipes, eux-mêmes étant présentés comme des liens. C’est à dire que les Isbn ne sont pas cliquables, même si LibX les reconnait par sélection et clic droit.

Bref, l’outil créé n’est pas bouleversant d’efficacité. L’avantage, c’est le caractère clonable et bricolable des pipes. Avec une autre bibliographie, plus formatée, et présentant des ressources moins ambiguës (moins rééditées), il devrait être facile de se fabriquer un pipe aux fonctions similaires. En tout cas, Yahoo pipes peut certainement faciliter certaines tâches fastidieuses de pointage, en les automatisant. Pour ma part, je n’en ai pas fini avec cet outil.


3 réflexions sur « Yahoo pipes, pour fabriquer son usine à gaz »

  1. A la première lecture de ton billet, je n’ai pas tout compris.
    En fait, j’ai besoin de le reprendre à l’envers (càd de partir de la page Résumé de Cairn, puis de remonter de pipe en pipe).
    Et pour comprendre peu à peu le fonctionnement (même si je comprends l’idée d’ensemble), je commence par une question simple :
    Dans le pipe qui avale la page Cairn (source) pourquoi tes loop permettant de définir item.title et item.auteur sont-ils redoublés ?
    Précision sur ma question (car peut-être ai-je tout de même compris l’objectif) : dans un Loop avec String Regex, tu peux mettre plusieurs Rules (il y a un petit + à côté du mot « Rules »), et récupérant à chaque ligne le résultat de la ligne suivante.

  2. Pour chercher 1 ref dans le sudoc et savoir si la bib l’a ou pas, je n’ai pas trouvé mieux que le script sudoc+ de @symac… peut-être est-ce là qu’il y a quelquechose à bricoler avec les païpes si on veut « industrialiser » le processus ?

  3. @ Lully : Ils sont redoublés pour éliminer les interférences dues aux titres de collections en italique. Pourquoi ne sont-ils pas unis sur le même Loop ? Parce que :
    – Au début je n’étais pas sûr de comprendre l’ordre de traitement des consignes Regex. J’ai même mis du temps à comprendre la différence entre l’opérateur Regex et le string du même nom.
    – J’ai rajouté ces consignes comme des rustines, après avoir découvert des résultats imprévus. Un peu bourrin, mais tant que ça marche…
    – J’ai eu la flemme de « nettoyer » la présentation des pipes (et un peu peur d’abimer aussi : je ne suis pas sûr de tout piger)
    Mais effectivement, le dédoublage des loop est superflu et sert uniquement à alourdir le pipe :)

    @Marlène : Sudoc + est super bien, mais pour l’adapter ou s’en inspirer pour d’autres sites, faudrait y connaître quelque chose en JavaScript, ce qui n’est pas du tout mon cas. Ceci dit, oui, clairement, rien n’est plus simple et rapide qu’un script userscript ou une extension de navigateur. Mais bon, on parle beaucoup de @symac, mais est-ce qu’il est si fort que ça ? Ah oui … :)

Laisser un commentaire

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