Aller au contenu principal

Vérifier la présence de ses ISBN dans Amazon (et GBS)

01/07/2009

Je sais, vous allez me prendre pour un piper fou, et à chaque nouveau billet, vous dire : "Bon, il commence à radoter avec ses machins."

Ce n’est pas que de ma faute : récemment, quelqu’un (non, pas Marlène, pour une fois) m’a poussé dans mes retranchements sur ce que j’arrivais ou non à faire avec Yahoo Pipes. Bref, ces derniers jours j’ai développé des compétences et découvert les "pipes d’appui" (la terminologie est de moi et n’est pas fixée : je vous laisse rebaptiser ça comme vous voulez, éventuellement en vous inspirant d’autres domaines).

Le principe est "simple" : je crée un pipe, mais celui-ci n’a d’intérêt que lorsqu’il est intégré dans un autre pipe.

Ainsi, j’ai créé un pipe qui, pour un ISBN donné, va lancer une requête dans Amazon : avec l’ISBN indiqué, il construit une URL de requête et ouvre la page des résultats chez Amazon) :

  1. S’il trouve l’ISBN, il sort le résultat : "Nombre d’ISBN trouvés : 1" (même s’il a plusieurs résultats pour un même ISBN, il ne sort que le chiffre 1)
  2. S’il ne trouve pas l’ISBN, il ne sort rien du tout.

Ce pipe n’a aucun intérêt : si vous voulez savoir si un ISBN se trouve ou non chez Amazon, vous allez sur le site d’Amazon et vous le cherchez.

Sauf que par dessus, j’ai construit un autre pipe : on lui donne une liste d’ISBN (les ISBN sont sans tirets, et ils sont séparés les uns des autres par des tirets). Et pour chaque ISBN, il applique le pipe précédent.

Ca se passe ici : j’ai fait glissé un de "mes pipes" à l’intérieur du module Loop, et j’ai coché "Emit results" pour que le résultat de la boucle, ce soit les pipes-relais mis bout à bout.

  • Quand l’ISBN produit un item, il sort un item
  • Quand il ne produit rien, il en sort rien
  • Et à la fin, le second pipe décompte le nombre d’items (donc le nombre d’ISBN reconnus)

Ca ne vous évoque rien ? C’est une sorte d’API Amazon : il transforme les données HTML d’Amazon en données XML plus manipulables.

Pourquoi est-ce que j’ai fait ça ? Parce que pour utiliser les API Amazon, il faut avoir une clé Amazon et utiliser les API en question pour un site web. Moi, j’en ai besoin en local, ponctuellement. J’avais pu tester les API LibraryThing pour constater qu’ils couvraient 30% de notre catalogue (sur un échantillon de 1000 ISBN). Je n’avais pas pu le faire pour Amazon.

Désormais je sais qu’Amazon couvrirait 94% de nos notices. Pour être plus précis : Amazon a identifié 94% de nos ISBN. En l’état, cela ne me dit pas quel pourcentage de couvertures il peut me proposer, ou de tables des matières, résumés, commentaires, etc. Il faudrait que j’affine l’analyse des réponses que le site donne dans ses listes de résultats.

Donc j’ai fait plusieurs autres pipes :

Rq : j’ai dû entrer les ISBN par paquets de 200 (donc en 5 fois), car Yahoo Pipes n’arrivait pas à tout traiter d’un coup. Voici ce que ça donne :

1000 ISBN en 5 fois

1er jeu

2e jeu

3e jeu

4e jeu

5e jeu

Nombre d’ISBNs trouvés

190

192

187

188

191

Nombre de couvertures retrouvées

102

141

118

124

129

Nombre de livres "feuilletables"

0

0

29

30

14

En comparant les écarts d’une colonne à l’autre (fonction écart-type d’Excel), on constate que pour contrôler seulement la présence des notices, 200 notices auraient été suffisantes. Mais j’ai bien fait d’utiliser mon échantilon de 1000 ISBN pour les couvertures et les feuilletages, car il y a de grandes disparités.

Conclusions :

  • Amazon contient 94,8 % de nos notices
  • Amazon peut proposer des couvertures pour 61,4% de nos livres
  • Amazon peut proposer 7,3% de nos livres en feuilletage

Ce qu’il faut en retenir ?

  1. Qu’après plusieurs étapes encore, je pourrai vous entretenir de la manière d’utiliser ces pipes-relais (par exemple : convertir un numéro de département en son nom, via la liste donnée sur Wikipedia comme source d’information).
  2. Que vous pouvez déjà tester votre propre catalogue pour voir si ça vaut le coup d’utiliser Amazon comme fournisseur de contenus enrichis : en entrant une liste d’ISBN dans ce pipe.
  3. Après examen de ce à quoi ressemble une page de résultat, je ne peux pas savoir si Amazon me fournira pour un ISBN donné un résumé et une table des matières. Mais je peux considérer (ou plutôt : je me résigne à me contenter de ce) que le feuilletage induit un résumé et/ou une table des matières.
  4. Que je produirai sans doute les mêmes outils pour les sites que je n’ai pas pu tester par API (pour cause d’API Key) : WorldCat, Google Books, …

En fait, j’ai déjà fait celui pour Google Books — vérification  de la présence de notice, couverture, et extraits. Mais à plusieurs reprises il a refusé de répondre après plusieurs requêtes : il a sans doute remarqué que les serveurs de Yahoo le bombardaient un peu trop de questions et que ça ressemblait à du hacking.

Bref, j’ai finalement réussi à l’utiliser, mais je vous préviens tout de même du problème. Voici les résultats

ISBN dans Google Books

1er jeu

2e jeu

3e jeu

4e jeu

5e jeu

Nombre d’ISBNs trouvés

185

184

187

189

186

Nombre de couvertures retrouvées

92

22

26

36

33

Nombre de livres avec extraits

70

22

26

34

33

Donc en % par rapport à notre collection, ça donne :

  • GBS a reconnu 93,1% de nos ISBN
  • GBS peut fournir 20,9% des couvertures de ces livres
  • GBS peut fournir des extraits pour 18,5%  de ces livres

Tableau comparatif GBS – Amazon

Amazon

Google Book Search

Nombre d’ISBNs trouvés

94,8%

93,1%

Nombre de couvertures retrouvées

61,4%

20,9%

Nombre de livres avec extraits/feuilletage

7,3%

18,5%

Le nombre d’ISBN reconnus est équivalent (alors que pour les seules nouveautés, GBS n’avait que 76% de nos notices). Amazon a beaucoup plus de couvertures disponibles, et GBS un peu plus d’ouvrages disponibles sous forme d’extraits. Quel service voudrez-vous privilégier ?

Pourquoi pas les couvertures chez Amazon et les enrichissements textuels chez Google ?

PS : pour ceux qui ne voient pas comment, d’une liste d’ISBN en ligne, produire des ISBN sur la même ligne et séparés par des tirets, une petite vidéo.

About these ads
7 Commentaires
  1. 01/07/2009 17:13

    Très impressionnant ! En lisant ton titre, j’ai cru que tu nous proposais un outil de dissémination proche de celui de Damiano, en fait en lisant ton billet, j’ai compris qu’il s’agit d’un outil de "benchmarking sur échantillon" (ou en français d’analyse comparative sur un échantillon).

    Très intéressant, il faudrait pouvoir faire la même chose avec les web services d’Electre pour les couvertures de livres et sur une base plus grande. (1000 c’est un peu faible non pour des catalogues souvent de plusieurs dizaines des milliers de titres ?)

    Bravo à celui qui t’a poussé dans tes retranchements ! ;-)

  2. 02/07/2009 09:17

    Cela m’est apparu définitivement impossible avec Electre : on ne peut pas faire d’URL de requêtes avec leur technologie ASP. En outre, comme les requêtes se passent depuis les serveurs Yahoo, je doute que leurs IP soient reconnues par Electre.
    Une base plus grande ? oui, mais il y faut de la patience, alors ! En fait, après vérification, je crois que ce n’est pas un problème de performance chez Yahoo Pipes : l’outil pourrait peut-être accepter plus de mille ISBN. Le problème vient de la transmission des données : une requête à Yahoo se fait sous forme d’URI, et il trouve qu’avec 1000 ISBN (11.000 caractères !) cet URI est trop long.

    Cela dit, comment déterminer ce qui serait une masse critique pour un échantillon valide. La statistique assure qu’au delà d’un certain échantillon, les observations sont redondantes et n’apportent plus rien. J’ignore quel sera le seuil pour un catalogue de bibliothèques.

    J’ai oublié de préciser dans tout ça que, bien évidemment, seules les notices avec ISBN peuvent être concernées par de telles API. Ainsi, dans notre catalogue de 250.000 notices bibliographiques, il n’y en a que 131.000 qui ont un ISBN (environ 50%). Donc si Amazon m’assure avoir 61,4% de couvertures pour mes livres, cela signifie que le lecteur verra une notice sur 3 seulement parée d’une illustration.

  3. Stéphanie permalien
    02/07/2009 11:39

    J’ai voulu tester ton pipe Amazon, et ça m’a pris plus d’une heure …
    Non pas parce que le pipe fonctionne mal, ah non, lui il est performant, en 5 minutes c’est réglé. Mais parce qu’avant il m’a fallu faire une liste propre d’ISBN, et que mon SIGB (AbsysNet pour ne pas le citer) n’est vraiment pas coopératif :
    - langage propriétaire,
    - impossible de faire des requêtes type "is not null" (en sql)
    - impossible d’interroger un $ spécifique dans une zone : c’est toute la zone ou rien
    - impossible d’extraire uniquement un $ de la zone ISBN (à moins de perdre encore du temps à paramétrer un nouveau format d’export)
    Si bien qu’après deux plantages du SIGB et la suppression des $ inutiles dans ma liste/ des ISBN comprenant d’étranges signes cabalistiques/ des tirets de mes ISBN, j’ai obtenu 800 enregistrements passés en 4 fois dans ton pipe.
    Et je suis étonnée de l’écart que j’observe entre mes résultats et les tiens pour ce qui est des couvertures :
    - ISBN trouvés : 96.2%
    - couvertures : seulement 48.7% contre plus de 61% chez toi
    - feuilletage : plus de 10%

  4. 02/07/2009 14:26

    @Bibliobsession : finalement, à la réflexion, la manipulation suivante devrait être possible (après modifications de mon pipe) :
    1. je stocke en ligne un fichier contenant 10.000 ISBN (ou plus si affinité)
    2. je donne au pipe modifié l’URL du fichier d’ISBN
    3. il va ouvrir le fichier, et pour chaque ISBN trouvé il applique le test à Amazon et Google.
    Je vais voir et je vous tiens au courant.

  5. 02/07/2009 14:45

    @Stéphanie : désolé pour la prise de tête que tu t’es collée. Pour être honnête, ce n’est pas à moi qu’est revenu l’insigne plaisir d’extraire les ISBN de GEAC.
    Cela me semble logique que d’une bibliothèque à l’autre, n’ayant pas les mêmes collections (par ex. : une bibliothèque où la recherche est très présente aura un fonds anglophone plus important. Une bibliothèque très forte en sciences humaines aura un plus grand nombre de documents des années 60-70, donc avec ISBN mais moins souvent dans Amazon que les livres plus récents).
    C’est d’ailleurs pour ça que j’ai publié ce pipe : parce que les résultats diffèreraient sans doute.

    Mais effectivement, je suis étonné que tu aies moins de couvertures et plus de feuilletages.

  6. 02/07/2009 17:58

    J’ai pu faire ce qui a été décrit au commentaire 4. Donc vous pouvez tester plus de 200 ISBN de la manière suivante :
    1. vous extrayez de votre SIGB une liste d’ISBN
    2. vous les collez dans un fichier HTML, de telle sorte que chaque ISBN soit entre des balises <p> et </p>
    3. Vous stockez le fichier sur un serveur, disponible en ligne (pas sur un intranet, donc : il faut que les serveur de Yahoo y aient accès)
    4. Vous rentrez l’URL du fichier HTML dans ce pipe

    Si vous n’avez pas de liste d’ISBN sous la main, vous pouvez utiliser ce fichier : http://cavalie.ovh.org/1000_ISBN.html en guise de test.

    Toutefois j’ai été obligé de rajouter dans le pipe une "troncature" : il ne prend que les 800 premiers ISBN du fichier, car au-delà le pipe plante.
    C’est plus rapide que 200 par 200, mais ce n’est pas encore par dizaines de milliers, hélas ! Donc est-ce réellement un plus, à partir du moment où on ne peut travailler que sur des échantillons ?

  7. mylène permalien
    07/06/2010 16:58

    Bonjour,

    J’essaie de tester les API Amazon… Je galère !
    J’ai bien obtenu une clé. Mais il faut la combiner avec la clé secrète pour obtenir la signature et je ne m’en sort pas.
    Je cherche juste à afficher les couvertures des livres dans le catalogue de ma bibliothèque…
    J’ai réussi à faire obtenir une prévisualisation GoogleBooks grâce à vos articles, mais rien à faire avec Amazon.
    Aussi je sollicite votre aide !!

Les commentaires sont fermés.

Suivre

Recevez les nouvelles publications par mail.

Joignez-vous à 97 followers

%d bloggers like this: