Google Wave ne vous satisfait pas ? Cela tombe bien

On n’a plus l’habitude des versions beta, sauf quand ce sont des betas de bibliothèques numériques institutionnelles.

En tout cas les grandes sociétés du web nous avaient habitués à des produits quasi finis, où la motion “beta” était comme une précaution superfétatoire, comme une coquetterie de midinette (“Oh ! Je suis laide à faire peur !”).

Bref, Google Wave, c’est du vrai beta.

Il ne vous satisfait pas ? Vous voudriez pouvoir envoyer des mails avec ? Vous voudriez pouvoir accéder à des gadgets ou des bots sans avoir à les chercher sur le web, mais directement dans GWave ? Vous voudriez gérer votre profil (disponibilité) et ne pas laisser les messages s’afficher avant que vous n’ayez corrigé toutes les fautes de frappe ?

Ca tombe bien : Google Wave ne satisfait pas Google non plus. En tout cas pas en l’état. Si vous en étiez content, tel quel, vous ne seriez jamais embauché par Google (en même temps, ce n’est peut-être pas votre projet de vie).

Donc plutôt que de vous épuiser à lister vous-même tout ce qui ne va pas dans Google Wave, allez vous inspirer de la liste des idées sur le forum mis en place par Google, et votez pour celles qui vous semblent les plus importantes.

Dans les suggestions les plus plébiscitées :

  • Pouvoir faire une wave en bloquant tout ajout de nouvel intervenant (éviter l’arrivée intempestive du supérieur hiérarchique à cause d’une manipulation malencontreuse ou malveillante)
  • Enlever des intervenants d’une wave
  • Intégrer Gmail et GDocs
  • Intégrer les flux RSS
  • Transférer des images d’une wave à l’autre par Drag’n'Drop

Et je vous laisse lire le reste (il y a aussi les “hot ideas“, mais j’ignore comment elles sont distinguées des autres)

Invitations Google Wave

J’ai l’impression que, il y a trois semaines, le monde était divisé en :

  • ceux qui avaient un compte GWave
  • ceux qui ne savaient à quelle porte sonner pour obtenir une invitation.

Et désormais on trouve une autre configuration :

  • Ceux qui ont un compte GWave
  • Ceux qui n’en ont jamais entendu parler…

Bon, si Google Wave vous intéresse (c’est un sujet qu’il me plairait encore d’aborder, mais les statistiques de la DLL m’ont un peu absorbé ces derniers temps), et si vous n’avez pas encore reçu d’invitation, j’en ai 10 à fournir.

Vous pouvez m’indiquer par mail où vous envoyer une invitation.

Remarque post-liminaire

Et je renouvelle mon conseil (cf. billet précédent) : il ne s’agit pas de tester un nouveau service, il s’agit de s’en servir. Donc essayez d’utiliser GWave pour échanger avec d’autres personnes disposant également d’un compte GWave — pour faire plus vrai, essayez même de parler d’autre chose que de GWave dans vos échanges ;-) . Demandez-leur s’ils vont bien, où en est la rédaction du rapport d’activité 2008, s’ils connaissent un bar sympa dans le 5e, s’ils ont aimé Into The Wild et Trois Femmes puissantes, etc.

Les conversations se font assez facilement avec GWave, et la difficulté d’adoption ne sera pas technique : elle sera (éventuellement) intellectuelle. Reconnaîtrez-vous votre parole dans un flux de blips évoquant le mythe babélien du texte pré-existant à sa formulation par un auteur.

Les “plus” de Google Wave, vous les découvrirez au fur et à mesure. Pour l’instant vous n’en aurez pas l’usage puisque vous ne vous en servez actuellement pas dans votre messagerie (insérer du code, mettre une carte heuristique, etc.). Ca viendra peu à peu.

Je vous recommande de vous abonner au flux de Wave France, blog non-officiel mais plein de petits conseils (sur le mode des How To).

Google Wave ne sert à rien (mais pas comme vous croyez)

J’ai eu une invitation Google Wave aujourd’hui. Un immense merci au généreux mécène !

J’ai ouvert l’interface et je n’ai rien compris (ou peu s’en faut). Donc je vais en dire quelques mots, mais je préviens d’emblée que c’est sans aucune compétence particulière. Oublions un peu de la technique pour une fois (je plaisante, voyons !).

Une question piège

J’ai été frappé de lire, dans des messages sur Google wave (des wavelettes) mais aussi un peu partout sur Internet, des tentatives de réponses à la question : Bon, à quoi ça va servir ? Du reste, ce fut aussi ma première interrogation.

Généralement, même, il n’y avait que la question, et pas vraiment de réponse.

Comme j’ai l’esprit pratique, je pars du principe qu’une question à laquelle je n’ai pas la réponse est une question mal posée.

Mais revenons un peu à l’histoire de l’apparition de Google Wave.

Vous souvenez-vous ? Les premières informations sur cet outil, en juin dernier, partaient du postulat de départ : Que serait le mail si on l’inventait aujourd’hui ? Réponse de Google : ce serait Google Wave.

Si vous vous demandez à quoi pourrait vous servir Google Wave, c’est que vous envisagez d’aligner Google Wave parmi tous les outils dont vous vous servez, quotidiennement ou plus rarement, dans votre PC “in the clouds” (càd tous ces services en ligne, pour lesquels vous laissez la gestion de vos données à des serveurs lointains) : vous mettez Google Wave à côté de Google Docs, Delicious, Zotero, Youtube, etc. Et dans cette perspective vous vous demandez quel besoin Google Wave est censé venir combler.

Mais regardez mieux l’affirmation des ingénieurs de Google : la question ne doit pas être “A quoi sert Google Wave ?” mais : “Google Wave répond-il mieux que ma messagerie actuelle à mes besoins et mes usages ?

La question subsidiaire est : “Qu’est-ce qui a pu amener les ingénieurs de Google à croire que ce truc-là me conviendrait davantage pour échanger avec mes amis et/ou parents et/ou collègues ?

Quelques constatations simples

Esthétique du fragment

Comme je le disais, je n’ai que très peu exploré Google Wave et n’ai pas compris grand chose. Mais ce qui est clair, c’est que ces ingénieurs ne sont pas partis des pratiques du mail pour essayer de faire “mieux que le mail”.

L’interface qui accueille les échanges, cela ressemble plutôt à

  • du chat
  • des conversations sur Twitter
  • des commentaires sur Facebook
  • des réactions sur FriendFeed

Bref, ça ressemble à une manière croissante de converser sur Internet qui consiste à écrire quelques lignes, à attendre une réaction, à en écrire une autre, etc. cependant que d’autres intervenants peuvent revenir sur des points précédents de la conversation.

Un commentateur chez Aliocha (je ne retrouve plus le billet exact) s’étonnait que l’on n’ait pas trouvé mieux à ce jour pour afficher des commentaires que de le faire sous une forme aussi linéaire que l’ordre chronologique. Google Wave essaie de répondre à ce problème : on intervient ou on veut dans la conversation, y compris sur une partie un peu ancienne.

On peut considérer que le courriel était fondé sur la manière postale de communiquer par écrit : certains usages, certaines manières de penser, d’échanger, de concevoir à quoi doit et peut ressembler une discussion. Google Wave est une tentative (réussie ou non ? je ne sais) pour s’adapter mieux aux conceptions que peuvent avoir les internautes de ce qu’est une conversation sur internet.

Si notre cerveau a une préférence pour les échanges rapides, en temps réel, et que notre pensée se forge de cette manière (de petits paragraphes courts, auxquels on peut réagir aussitôt, sont plus faciles à lire sur un écran qu’un mail interminable), par fragments et sédiments, alors Google Wave devrait et pourrait remplacer le mail (et non se surajouter à lui).

Un mobile pour adultes

(par “mobile”, je ne parle pas des téléphones portables, mais de ces objets que l’on suspend au-dessus des lits des enfants)

Les interfaces de Facebook, Twitter, Friendfeed ou Yahoo (puisque je n’ai découvert que récemment que Yahoo s’était mis lui aussi aux “statuts”) ne permettent de publier que du texte brut. Or c’est toujours plus joli (mais aussi plus utile, souvent) quand on peut y rajouter des couleurs, des images, des vidéos, des cartes, etc.

Bref, Google Wave essaie de répondre à une autre frustration : pouvoir converser en n’associant pas seulement à la conversation des liens vers des ressources, mais les ressources elles-mêmes.

(Notez au passage que SideWiki permet lui aussi d’insérer des vidéos dans les commentaires, et certainement plein d’autres choses : après tout, pourquoi une telle limite technique ?)

Bref, Google Wave s’efforce d’intégrer tout ce que l’on pourrait vouloir un jour convoquer dans une conversation sur internet.

Qu’est-ce qu’une conversation sur internet ?

Je n’en sais trop rien. Mais je note tout de même que le mail était, dans sa démarche intellectuelle, calquée sur le modèle du courrier postal. Avec Google Wave, on se détache de cet héritage issu de la “vraie vie ” pour récupérer un peu plus des potentialités du web.

Disons surtout qu’une conversation sur internet n’a aucune raison technique de ressembler à une conversation normale : seules nos manières de la concevoir jouent un rôle.

Si réellement nous passons à Google Wave, nos manières de raisonner lorsque nous sommes sur internet se détacheront un peu plus de ce que nous sommes dans le monde réel.

Jusqu’à ce que, bien sûr, la réalité augmentée nous permette progressivement d’appliquer nos manières de penser du web à ce monde “réel”.

Mais au fait… Est-ce qu’il est judicieux d’appeler “conversation” un échange à 2, 10 ou 50, avec possibilité d’intégrer dans l’échange, comme élément de l’échange, des vidéos, des documents, des tableurs, des images, etc. Peut-être un nouveau terme devra-t-il être adopté pour désigner ce type de communication… Tiens, pourquoi pas : une wave.

En conclusion

Google Wave n’est pas censé servir à un usage précis : dans l’esprit de Google, c’est censé être l’outil d’échange par défaut, visant à remplacer la messagerie. Dois-je me demander à quoi va me servir une messagerie pour me doter d’un compte mail quelque part ? On n’en est plus là. Eh bien, Google Wave prétend déjà n’en être plus là.

Du coup, comment le tester (pour les heureux testeurs…) ? Ma foi, chacun fait comme il veut. Mais il me semble que lancer des waves dans le vide en essayant de percevoir l’intérêt, c’est passer complètement à côté.

Plutôt : passez “naturellement” par Google Wave plutôt que par votre messagerie pour contacter d’autres personnes qui, par hasard ou chance, se trouvent avoir eu aussi un compte GWave. Envoyer leur le message que vous vouliez leur envoyer par mail. Vous verrez ensuite, en cours d’échange, ce que vous permet Google Wave en comparaison à la messagerie classique.

Un exemple ? Vous pouvez répondre point par point à une série de questions, sans utiliser une couleur différente ou sans préciser qu’il s’agit de votre réponse. Ce sont de petites choses comme ça qui devraient permettre de mettre vraiment le pied dedans.

Proposer nos outils aux usagers : énoncé de la problématique — sans réponse définitive

Je décide finalement de faire un billet avec ce qui était au départ une réponse à un commentaire.

Voici le commentaire (à propos de la possibilité de proposer LibX à nos usagers) :

@Lully: j’avais proposé le Firefox pré-paramétré justement en considérant que les utilisateurs sont feignants ou incompétents en info et qu’il leur fallait tout cuit. Vu qu’ils doivent de toute façon installer un navigateur (ou faire des MAJ), autant qu’ils installent le notre avec tout dedans.
C’est une possibilité pour solutionner le problème.

Et je mets ici ma réponse.

L’idée est bonne. Quel en est le résultat ? (je ne conteste pas qu’il puisse être bon : je n’en sais rien mais des retours d’expérience m’intéressent).

Pour moi, il y a deux difficultés à résoudre :

  1. Il faut limiter au maximum la difficulté d’installation. L’idéal, c’est : 1 clic, avec éventuellement un redémarrage du navigateur (dans le cas d’une extension).
    Par exemple, quand on propose des fils RSS, on peut donner l’URL du fil + une icône pour s’abonner directement sur telle ou telle plate-forme (comme ce qui a été fait ici).
  2. Il faut convaincre le lecteur (en très peu de mots) qu’il a tout intérêt à faire ce clic, en laissant la bibliothèque installer qqchose sur son poste. C’est cela qui m’intéresse ici (même si le premier point est indispensable).

Pour le convaincre, on peut tabler sur deux catégories d’usagers :

  • soit le lecteur identifie que son caractère d’usager de la bib est quintessentiel avec son activité d’internaute. Il passe beaucoup de temps à chercher de la documentation sur Internet donc un paramétrage orienté “Bib” va lui être utile très fréquemment.
  • soit le lecteur n’est pas souvent un chercheur de documentation, mais ce qu’on va lui proposer va lui être utile pour d’autres choses aussi (ex. : dans une barre d’outils bibliothèque, on propose des services liés à la région, à la ville, etc.)

Et une troisième brèche dans laquelle on peut entrer :

  • installez ce plugin vous sera utile de temps en temps, et n’encombrera pas votre navigation quotidienne.
    Exemple : les barres d’outils prennent de la place. En revanche un script GreaseMonkey n’est pas encombrant.

Donc si on présente un outil spécifique (par un texte, une copie d’écran, une vidéo), il faudra, pour que ça marche, argumenter en ciblant un ces publics (ou chacun à tour de rôle).

Ceci n’est qu’une amorce de réflexion, et tout éclairage divergent m’intéresse.

2 remarques :

  1. j’en reviens aux difficultés que je signalais autour de la dissémination.
  2. ces billets de réflexion reposent un peu de tous les tutoriels. Pour vous (je l’espère !) comme pour moi (ça, au moins, c’est certain !)

LibX – Première approche

Honnêtement, j’ai eu du mal avec l’interface de paramétrages de LibX. Et comme je n’ai pas réussi à trouver de tutoriel simple en français, il me semble utile d’en faire un petit ici.

Pour l’instant, mon objectif avec LibX sera “simple” (au regard de toutes les possibilités que l’outil offre) : obtenir des ISBN cliquables dans les pages web que je vais rencontrer.

LibX permet aussi, par exemple, une articulation avec un résolveur de lien et un proxy (pour les ressources en ligne payantes). Mais on n’en est pas là.

Vidéo 1 (4 min) : interface LibX (présentation d’ensemble)

Vidéo 2  (5 min) : onglet Catalogs & Databases

Cet onglet est le point central de l’outil : il faut que vous sachiez comment interroger votre opac sur le critère ISBN.

Dans le meilleur des mondes :

  1. il devrait vous suffire pour cela d’aller sur votre opac, de mettre un ISBN dans le champ de recherche, et de récupérer l’URL.
  2. Ensuite, dans cette URL, vous regardez où apparaît l’ISBN, et vous remplacer la séquence de chiffres par : %i
  3. Vous retournez dans LibX, onglet Catalogs & Databases, et vous créez un nouveau Catalog
  4. Puis vous indiquez l’URL “modèle” (template)

Vidéo 3 (3′ 38) : utilisation du plugin

Vérifiez que dans le Menu contextuel, pour l’onglet ISBN, la case soit cochée.

Conclusion

Ma présentation est très confuse et j’en suis désolé.

Mais je pense que ça vaut le coup de se pencher un peu sur cet outil, car il peut rendre vraiment de grands services.

Ceux qui ont des difficultés à paramétrer le leur peuvent lever le doigt, je vais passer dans les rangs ;-)

Dernière remarque : pour l’instant, on est vraiment dans un outil pour les professionnels. Je ne vois pas comment convaincre une population de lecteurs de l’utiliser. Mais ce point-là doit tout de même être inclus dans la réflexion !

Lien vers l’Opac — And the winner is… Electre !

C’est Electre qui remporte la première manche sur le Sudoc, en fournissant un lien que j’ai mis un temps fou à repérer.

Electre permet sur chaque notice détaillée de générer un lien lançant une requête dans votre Opac, sur le critère ISBN.

En cliquant dans la colonne de gauche sur la clé à molette, puis sur Abonnement, vous avez au bas de la rubrique une zone texte à remplir intitulée : Lien Opac.

Il faut renseigner ce lien en indiquant la manière dont il faut interroger votre Opac sur le critère ISBN.

Voyez ce que j’ai écrit tout récemment sur de tels liens dans le Sudoc : le système est exactement celui-là.

  1. Vous faites une recherche dans votre opac avec un ISBN
  2. Vous copiez l’URL obtenu dans le bloc-notes
  3. Vous remplacez l’ISBN recherché par {Ibsn} (ou {Ean13} si c’est plus pertinent — faites des tests !)
  4. Vous collez le résultat dans la zone de texte sur Electre.

Et voici ce que ça donne (je l’ai paramétré il y a deux semaines, mais ne l’ai remarqué que ce matin. J’ignore si Electre a réparé un bug ou si je ne l’avais pas vu) :

Si vous avez mis dans l’URL {Isbn}, le lien sera en face de l’ISBN. Si vous avez mis {Ean13}, il sera en face de EAN.

Certains Opac posent de grosses difficultés, notamment Flora (c’est difficile à Aix-Marseille 3, et impossible avec le CCFr) et Bookline (pour Incipio, je ne sais pas) pour lesquels il faut parfois beaucoup d’inventivité pour obtenir une URL de requête sur le critère ISBN.

Aucun problème avec Koha, Aleph, HIP (SirsiDynix) et plein d’autres.

Si vous avez des difficultés pour obtenir une URL “efficace”, n’hésitez pas à me poser la question en commentaire. A noter que Damiano est aussi devenu un pro des requêtes par ISBN (merci à lui !)

Qu’est-ce qu’une API ?

[Préambule à l'usage de ceux qui seraient arrivés ici par hasard ou par Google : c'est un billet d'explications à l'usage des bibliothécaires par un bibliothécaire. Donc pas pour les développeurs, ni vraiment pour le grand public. Ceci étant posé, vous faites comme vous voulez ! ;-) ]

Ce n’est que par une fréquentation suivie avec des API que j’ai fini par comprendre ce que c’est. Comme vous n’avez pas forcément les mêmes fréquentations que moi (que Dieu vous garde !), j’ai supposé qu’une petite explication pouvait être utile.

Ce billet est aussi un préliminaire au suivant (sur le Sudoc).

Un besoin vital pour une interrogation “en masse”

Imaginons que vous êtes un utilisateur normal, et que vous voulez savoir si Amazon, PriceMinister et la Fnac peuvent vous vendre 1 livre — à quel prix et dans quel état.

Vous allez sur chacun des trois sites, vous cherchez le livre, vous triez par prix ou par état, et vous comparez les trois sites et vous choisissez le fournisseur vous proposant le livre au meilleur état possible pour le meilleur prix possible. Vous y avez passé 15 minutes. Pour un livre.

Imaginons maintenant que vous avez besoin d’acheter 30 livres (par exemple parce que vous vous apprêtez à faire une thèse). Si vous êtes d’une patience ordinaire, vous comparerez pour deux ou trois livres, et vous choisirez un seul fournisseur pour l’ensemble de la commande.

Mais l’idéal serait de disposer d’un comparateur. Soit un quatrième site propose un tel service (il va interroger les 3 sites et vous remontera les réponses avec tris communs possibles), soit vous allez utiliser les API proposées par chacun de ces services.

A quoi ressemblent les données ?

Amazon, PriceMinister et la Fnac disposent de bases de données bibliographiques auxquelles vous n’avez pas accès directement : tout ce à quoi vous avez accès, c’est une interface web, c’est-à-dire un écran qui habille l’affichage des données et leur manipulation. L’interface sert d’intermédiaire entre vous et la base de données.

Que se passe-t-il sur cette interface ? On peut exprimer la même action de différentes manières :

  1. Quand je lance une recherche “9782910227739″ dans le champ de recherche d’Amazon, je génère une liste de résultats (avec un seul item) affichant le livre Quel modèle de bibliothèque ?. Cette liste de résultats a une URL : http://www.amazon.fr/s/ref=nb_ss_w?field-keywords=9782910227739
  2. Donc si sur une page j’ai un lien hypertexte pointant vers cette page, et que je clique sur ce lien, c’est comme si je lançais une recherche dans la base. Donc cette URL est comme l’adresse web de la liste de résultats. [Il va de soi que cette page n'existe pas ailleurs que dans votre navigateur, le temps de l'affichage : elle n'est pas enregistrée sur les serveurs d'Amazon comme un document Word est stocké sur votre PC. Elle est créée à la volée].
  3. Donc en saisissant cette URL dans la barre d’adresse de votre navigateur, vous demandez à Amazon de générer du code HTML, comportant tout un tas de balises et de texte, et la partie la plus intéressante contenant les références au livre cherché (le reste de la page étant à peu de choses près commun à toutes les pages de résultats)
    <div class="productData">
    <div class="productTitle">
    <a href="http://www.amazon.fr/Quel-mod%C3%A8le-biblioth%C3%A8que-Anne-Marie-Bertrand/dp/2910227731/ref=sr_1_1?ie=UTF8&amp;qid=1245781881&amp;sr=1-1">Quel modèle de bibliothèque ?</a>
    <span class="ptBrand">de Anne-Marie Bertrand</span>
    <span class="binding"> (<span class="format">Broché</span> - 19 décembre 2008)</span>
    </div>
    <div class="newPrice">
    <a href="http://www.amazon.fr/Quel-mod%C3%A8le-biblioth%C3%A8que-Anne-Marie-Bertrand/dp/2910227731/ref=sr_1_1?ie=UTF8&amp;qid=1245781881&amp;sr=1-1">Acheter neuf</a>: 
    <strike>EUR 34,00</strike> <span>EUR 32,30</span>
    </div>
    <div class="fastTrack">Pas de stock; commandez maintenant et nous vous livrerons cet article lorsqu'il sera disponible</div>
    <div class="sss">
    <span class="sssFree">Livraison gratuite</span>
    <span class="sssLastLine"> possible (voir fiche produit).</span>
    </div>
    </div>

    Le code ci-dessus produit ce résultat :

  4. Bref, en utilisant l’URL http://www.amazon.fr/s/ref=nb_ss_w?field-keywords=9782910227739, vous générez le code ci-dessus.
  5. Et si vous changez l’ISBN dans l’URL, vous obtenez des informations bibliographiques différentes, liées à l’ISBN recherchées.
  6. Vous constatez donc que, quel que soit l’ISBN mis dans l’URL, le titre sera toujours au même endroit dans la page, dans la balise <a> elle-même incise dans la balise <div class=”productTitle”>, elle-même dans <div class=”productData”>.
  7. Donc en fabriquant des URL, vous lancez une requête à Amazon qui vous renvoie du code correspondant à l’URL envoyée, avec des informations intéressantes dedans, toujours structurées de la même manière.
  8. Pour manipuler les données “en masses”, il serait préférable d’avoir des pages web ne comportant que les informations réellement intéressantes : après tout, le reste de la page ne vous intéresse pas !
  9. Mais en fait, dans le scénario imaginé plus haut, pour chaque ISBN vous n’avez pas vraiment besoin du titre et de l’auteur, que vous connaissez — mais des prix et états d’exemplaires, informations qui ne sont pas dans cette page.

Bref :

  1. vous voulez des données nettoyées de tout ce qui est couleur, taille de caractère, etc.
  2. vous voulez tantôt des métadonnées bibliographiques classiques, tantôt d’autres types d’informations (prix, commentaires, pages de couvertures, etc.)

Finalement, utiliser des API c’est comme afficher une liste de résultats après requête, sauf que :

  • la page obtenue est en XML au lieu d’être en HTML.
  • il n’y a pas de formulaire de recherche : vous ne pouvez interroger la base que par des URL. Mais le résultat est comparable

Pour info : “API” veut dire “Application Programming Interface“. Vous voilà bien avancés !

Que veut dire “manipuler des données en masse” ?

Grosso modo, on peut trouver deux types d’utilisation de ces API :

  1. Vous avez votre propre base bibliographique (au hasard : un catalogue de bibliothèque) et vous voulez y intégrer des contenus d’autres sources
  2. Vous avez une liste de titres (sous forme de liste d’ISBN) et vous voulez extraire d’Amazon & consorts des informations sur la base.

1. Vous avez votre base bibliographique

Quand on interroge votre catalogue, le moteur utilise une feuille modèle ressemblant à ceci :

Titre : $title
Auteur : $author
Année : $annee
ISBN : $isbn

Où les mots précédés d’un $ sont des variables : selon les notices affichées, ce sera le titre, l’auteur et l’année de publication de tel ou tel document.

L’encodage sera évidemment plus complexe, et structuré en PHP, XSL ou autre. Mais cela n’a pas d’importance, on va faire comme si.

Donc dans la notice du document qui s’affiche, vous voulez qu’apparaisse la liste des autres éditions (si existantes) du même ouvrage. WorldCat propose une API intitulée getEditions : si vous structurez une URL sous la forme : http://xisbn.worldcat.org/webservices/xid/isbn/9782765406259?method=getEditions&format=xml&fl=form,year,lang,ed, WorldCat produit la liste des ISBN de toutes les éditions de l’ouvrage auquel appartient l’ISBN 9782765406259, sous la forme d’un fichier XML :

Copie d'écran - Liste d'ISBN avec l'API getEditions de WorldCat

Si vous savez qu’on peut interroger votre catalogue avec une URL de requête sous la forme : http://catalogue.bibliotheque.fr/search?isbn=9782765406259, vous allez pouvoir bricoler le code suivant qui va générer des liens vers d’autres notices.

  • Pour une notice en cours d’affichage dans votre Opac, dont l’ISBN est connu (variable $isbn), il va interroger WorldCat pour récupérer les ISBN des autres éditions
  • Et il va générer une URL de requête dans votre catalogue contenant chacun de ces ISBN
  • Ainsi pour chaque notice détaillée dans votre Opac, des liens vers les autres éditions du même ouvrage seront proposées

Précision : ce code n’existe pas, il ne correspond à rien. Je me suis inspiré de langages existants pour produire un truc à peu près compréhensible pour n’importe qui. Ce qui se trouve après les caractères # est du commentaire, non pris en compte par le programme

new variable FichierWorldcat = concat(“http://xisbn.worldcat.org/webservices/xid/isbn/”, $isbn)
# à partir de l’ISBN en cours, il structure l’URL d’interrogation vers WorldCat

for each $FichierWorldcat.rsp.isbn
# pour chaque contenu de balise “isbn” trouvée dans le fichier XML de WorldCat, il crée un lien vers votre catalogue

{ print <a href=”http://catalogue.bibliotheque.fr/search?isbn=$FichierWorldcat.rsp.isbn“>Autre édition</a>;

};

Evidemment, il serait préférable qu’un lien n’apparaisse que si le document existe réellement. Donc il faudrait que votre propre catalogue propose des API, pour que l’affichage du lien soit conditionné à la vérification d’existence d’un fichier XML dont l’adresse web serait : http://catalogue.bibliotheque.fr/api/isbn/9782765406259, par exemple. Ce fichier renverrait un certain message (infos bibliographiques, par exemple) si le livre est présent, et un autre message (balise <unknown/> par exemple) s’il n’est pas trouvé.

Bref, sur cet exemple les données de WorldCat vous permettraient de FRBRiser votre opac.

Autres exemples (rapidement)

De la même manière, en indiquant à LibraryThing, Amazon ou WorldCat un ISBN, ces bases vous proposent les données qu’ils sont capables d’associer à cet ISBN :

  • page de couverture
  • commentaires, notations, tags
  • prix (coût, mais aussi prix littéraires ou autres)
  • etc.

Les improbables API du Sudoc

<update>Les API Sudoc n’ont plus rien d’improbable, finalement. Je suis trop pessimiste et trop mauvaise langue (et j’aime me tromper !)</update>

Vous avez remarqué la fin de l’URL de WorldCat ? http://xisbn.worldcat.org/webservices/xid/isbn/9782765406259?method=getEditions&format=xml&fl=form,year,lang,ed. Le paramètre fl permet de préciser les informations à fournir comme attributs. Ici, le format, l’année de publication, la langue et le numéro d’édition.

Maintenant, imaginons que le Sudoc propose les données de son catalogue sous forme d’API.

Par exemple, si vous avez un ISBN (toujours 9782765406259), l’URL http://www.sudoc.abes.fr/api/isbn/9782765406259 génèrerait un fichier XML ressemblant à ceci :

A cela, rajoutez la possibilité d’avoir un paramètre permettant de préciser quelles informations vous voulez voir ou non figurer (le PPN, etc.) sous la forme : http://www.sudoc.abes.fr/api/isbn/9782765406259&attributs=ti,au,year,ppn,isbn,loc

Vous pourriez ainsi disposer facilement de la liste des bibliothèques proposant le même exemplaire. Mieux : vous pourriez proposer un lien vers les catalogues de ces bibliothèques (dont l’URL serait donnée dans le fichier XML produit). Mieux encore, vous pourriez, si votre bibliothèque et vos lecteurs sont à Paris, ne générer de lien que pour les bibliothèques de la région Ile-de-France.

Bref, vous pourriez faire l’économie du message standard : “Vous n’avez pas trouvé ? Allez voir dans le Sudoc”. En fait, les données elles-mêmes du Sudoc seraient visibles directement sur votre Opac.

Bon alors, ces API Sudoc, c’est pour quand ?… La réponse sera peut-être : attendez que le Sudoc soit dans WorldCat et utilisez alors les API WorldCat en filtrant sur les réponses émanant du Sudoc… Wait and see !

2. Vous avez une liste de titres (sous forme de liste d’ISBN) et vous voulez extraire d’Amazon & consorts des informations sur la base

[vous vous souvenez ? J'avais supposé deux scénarios possibles pour l'utilisation d'API, le premier étant la gestion d'un catalogue de bibliothèque en ligne et ses possibilités d'enrichissement]

L’utilisation d’API est intéressante aussi pour prospecter sur le contenu des bases bibliographiques disponibles sur le web. C’est ce qui m’a d’ailleurs amené à découvrir un peu les API WorldCat et LibraryThing.

Par exemple vous envisagez d’enrichir votre Opac avec diverses données. Vous hésitez entre Google Book Search, Amazon, WorldCat ou LibraryThing. Et vous excluez de les utilisez tous les trois parce que, pour un lecteur, voir 2 nuages de tags et une liste de mots clés (plus l’indexation Rameau), c’est cruel !

La question ne se posera pas seulement quant à la nature des contenus que chaque fournisseur, mais aussi quand au taux de recouvrement de ces bases avec votre catalogue. Ainsi, LibraryThing a peut-être beaucoup plus d’ouvrages, mais surtout en anglais — ou autres considérations de ce genre. Par ailleurs, peut-être que, pour votre collection, WorldCat vous proposera plus de commentaires mais moins de couvertures, etc.

Donc vous pouvez définir quel genre de contenus vous voulez proposer à vos lecteurs ; puis voir, pour chacun de ces contenus, quel pourcentage de vos livres chaque base contient.

C’est ce que j’ai fait avec mon échantillon de 1000 ISBN : j’ai mis cette liste dans un fichier XML, et pour chaque ISBN, j’ai généré des requêtes en API.

Que sont les API Key ?

J’ai été bloqué chez Amazon et WorldCat : il faut être enregistré (mais c’est gratuit) pour pouvoir vraiment utilisé leurs API. Lors de l’enregistrement, ces sites me fournissent un identifiant (une série de chiffres, voire un truc alphanumérique).

Chaque fois que vous voulez lancer une requête par API (sous forme d’URL contenant un ISBN), il faut rajouter quelque chose comme : “&key=1234425767897″, afin qu’Amazon ou WorldCat sache que c’est vous et pas un autre qui a fait cette requête. Cela facilite leurs statistiques et — si nécessaire — leur facturation…

Bon, il y a un autre intérêt, qui l’est aussi pour nous : une API permet aussi de manipuler les données elles-mêmes pour les modifier. Par exemple si vous avez un blog sous WordPress, certains programmes vous permettent de modifier vos articles, d’en créer de nouveaux, de rajouter des tags, etc. sans passer par l’interface en ligne : cela signifie que WordPress expose vos données sous forme de fichiers XML. Il faut donc que l’accès à ces fichiers soit conditionné à la fourniture d’un identifiant, surtout si vous voulez modifier lesdites données. D’où l’utilité de la clé.

En outre (mais j’ai l’impression que ce n’est pas systématique), une clé peut être associée à un site web. C’est-à-dire que si vous voulez enrichir vos notices de commentaires issus d’Amazon, l’URL de votre catalogue doit être indiquée à Amazon pour que celui-ci vous renvoie les résultats XML demandés.

Si bien que pour tester le contenu des bases par propulsions de listes XML d’ISBN stockées dans des fichiers sur mon PC — impossible !

Conclusion

Un informaticien (ou quelqu’un de plus compétent que moi) trouvera(it) certainement beaucoup d’erreurs et d’approximations dans ce billet, qui ne ressort que de la pratique que j’ai eu de tous ces outils.

Je les invite à réagir (avec leur indulgence coutumière) en commentaire. De toute façon, mon objectif n’est pas que toutes les personnes ayant lu ce billet soient capables de manipuler des API, mais qu’elles soient capables de comprendre ce dont on parle quand le mot arrive dans la conversation.

Je signalerai enfin que les API sont une forme de web services (ou, si vous préférez : dans les web services, on trouve notamment les API). Comme c’est le cas le plus fréquent, les deux expressions en viennent à être interchangeables.

<update après ce commentaire>Les web services sont les développements fait sur un site pour exploiter les API d’un autre site.</update>

Mais je ne développerai pas davantage sur ce terrain. <update>Et je fais bien !</update>

Construire l’après-biblio-fr : petite proposition pour la veille

Je n’ai aucune proposition construite et élaborée pour “remplacer” Biblio-fr. Il ne sert à rien d’ailleurs à mon avis de vouloir recréer un site ex nihilo en espérant reconstituer la “communauté” des 17.000 inscrits.

Ne fantasmons plus sur ce chiffre, qui ne signifie pas grand chose en soi et essayons plutôt de définir quels étaient les services que rendait Biblio-fr, et comment y répondre désormais.

J’irai plus loin (je suis fou !) : voyons comment y répondre mieux.

<add>Jean-Michel Salaün suggère ici que finalement, Biblio-fr n’est peut-être pas si mort que ça.
Je ne suis ni pour ni contre cette fermeture, je ne me réjouissais pas de sa disparition et si d’une manière ou d’une autre “on” arrive à le faire revivre, je ne m’en plaindrais pas. Disons que dans la vie en général, j’ai une tendance fataliste et résignée : j’admets qu’une information telle que “Biblio-fr ferme” ou “Pascal Sevran est mort” est par nature définitive.
Parfois je me trompe et c’est très bien ainsi, mais je n’y mets aucun parti pris ni aucune intention maligne.
Disons que, faute de connaître l’avenir, je pars d’une hypothèse d’école qui serait : “Tiens, mais que ferait-on si Biblio-fr n’existait pas ?”</add>

Dans la liste des propositions (je ne suis pas seul sur les rangs : plusieurs messages — pas les plus nombreux ! — publiés sur Biblio-fr avancent également des pistes) qui seront lancées d’ici à septembre, la plupart s’effondreront d’elles-mêmes, inadaptées pour plusieurs raisons possibles et combinables :

  • inadaptées aux besoins initiaux
  • inadaptées aux compétences techniques de leurs utilisateurs présumés (je pense à cette phrase : “Croire que tout le monde manie les fils RSS ou les agrégateurs est une illusion élitiste.” J’aurai très envie d’y revenir à l’occasion, car elle est vraie, sans doute, mais je n’arrive pas à considérer cette véracité comme une fin).
  • inadaptées car correspondant aux besoins qui avaient fait créé Biblio-fr, mais n’ont plus lieu d’être aujourd’hui

Donc la proposition que je fais ici en fera peut-être partie. En même temps, je persiste à la faire car :

  1. pour qu’à la fin, puissent émerger les “bonnes” solutions, il faut bien qu’une masse critique existe
  2. vous pouvez y suggérer des améliorations
  3. cela peut vous donner d’autres idées

Bref, je pars du besoin suivant : comment désormais se tenir au courant de l’actualité des bibliothèques, quand on ne connaissait rien d’autre que Biblio-fr ?

Donc, dans le cas présent, je ne me soucie pas des producteurs de messages, mais des lecteurs. Savoir où les dispenseurs d’infos pourront désormais publier n’est pas le plus important, finalement : sur Biblio-fr comme ailleurs, les contributeurs étaient moins importants que les lecteurs, et c’est aux lecteurs que je m’intéresse pour le moment.

La proposition est simple : si vous avez un intranet, vous pouvez y prévoir une page “Actualités du monde des bibliothèques” qui afficherait un flux RSS intégrant lui-même plusieurs flux.

La difficulté technique ne doit arrêter personne : les outils existent, pour fusionner des flux comme pour les afficher sur une page web. Et cette difficulté ne concernerait qu’une seule personne. Or (j’espère qu’) il se trouve bien une personne par SCD capable de manipuler un peu les fils RSS.

Je vous propose un pipe (qui s’étonne ? qui sourit d’un air narquois ? — au fait, ça se prononce “paÿpe”), qui fédère plusieurs sources. Au titre initial de chaque source il ajoute le nom de celle-ci :

Un module Loop intègre un module String Builder, qui concatène “[Bibliobsession]” + “Titre de l’item”

On fusionne tout ça, on trie par date de publication, et on tronque à 20 items.

J’ai préparé ce pipe avec 12 sources, ce qui n’est déjà pas si mal. Vous pouvez le cloner et l’adapter selon vos préférences.

Précision sur les sources mises par défaut :

  • j’ai sous-représenté les sources diffusant une information “technologique”, parce que ce n’est pas une préoccupation globale d’une bibliothèque, et ceux que ça intéresse ont déjà généralement leurs sources d’information sur ce sujet dans leur agrégateur.
  • Et j’ai intégré des sources institutionnelles et associatives, parce qu’elles produisent aussi une information sous cette forme.

Donc avec cet outil, vous obtenez un fil RSS intégrable dans un intranet, diffusant une information sur divers sujets. Vous n’aurez pas tous les sujets intéressant vos collègues — mais c’était déjà le cas avec Biblio-fr ! Ainsi, j’ai mis S.I.Lex, dont la richesse pédagogique sur les questions juridiques ne s’y retrouvait pas vraiment. En outre, vous pouvez aussi y intégrer le fil RSS de votre université ou de votre municipalité : ainsi vos collègues sauront enfin ce qui se passe dans un environnement un peu élargi :-) !

Yahoo Pipes propose un lien “Get as a Badge”, qui vous donne le code à insérer dans une page web “normale” pour y faire apparaître votre fil RSS.

Fournissez aussi l’adresse du fil RSS : si jamais des collègues savent ce que c’est…

“Oui, mais les mails, c’est quand même plus simple (et plus répandu) !”

Je ne le nie pas ! J’ai moi-même un très bon ami mail.

Donc à présent vous allez proposer à vos collègues un abonnement par mail à ce fil RSS. Vous allez voir, ça ressemblera beaucoup à Biblio-fr !

Créez un compte sur Feedburner (sauf si vous disposez déjà d’un compte Google : Feedburner appartient à Google et le compte du second peut resservir pour le premier).

Faites avaler le fil RSS par Feedburner, et allez dans l’onglet “Publicize”, pour activer la fonction “Email Subscription”

Voir le tutoriel vidéo

Feedburner vous donne un code à insérer dans la page web de votre intranet, pour qu’y apparaisse le formulaire d’inscription par mail au fil RSS.

Et pour finir je vous donne le code HTML d’une page très moche (sans couleurs) intégrant l’abonnement par mail et le contenu du fil RSS :

<html>
<head>
<title>Intranet – actualités</title>
</head>
<body>
<h1>Intranet – Actualités des bibliothèques</h1>

<!–Ici le formulaire d’inscription par mail–>

<form action=”http://feedburner.google.com/fb/a/mailverify” method=”post” target=”popupwindow” onsubmit=”window.open(‘http://feedburner.google.com/fb/a/mailverify?uri=ActualitsBibliothconomiques’, ‘popupwindow’, ’scrollbars=yes,width=550,height=520′);return true”>S’abonner aux actualités par mail : indiquez votre mail ci-dessous<br/>
<input type=”text” style=”width:140px” name=”email”/>
<input type=”hidden” value=”ActualitsBibliothconomiques” name=”uri”/>
<input type=”hidden” name=”loc” value=”fr_FR”/>
<input type=”submit” value=”S’abonner”/>
</form>

<!–Fin du formulaire d’inscription–>

<!–Ici le code pour insérer le fil RSS (code fourni par Yahoo)–>

<script src=”http://pipes.yahoo.com/js/listbadge.js”>
{“pipe_id”:”442cd973e9e5bae789b49ebef232e344″,”_btype”:”list”, “height”:”100%”, “width”:”40%”}
</script>

<!–Fin du code Yahoo–>

</body>
</html>

Et ce que ça donne à l’écran

Bon, c’est un peu plus joli quand le logiciel de gestion du site lui-même prévoit l’intégration de fils RSS (avec la charte graphique réutilisée). C’est le cas de Drupal, par exemple, comme dans Spip.

Voici ce que ça donne sur Confluence (logiciel de wiki) – sans le formulaire d’abonnement :
Copie d'écran - intégration d'un fil RSS sur Confluence

Voilà !

  • par ce biais vous diffusez une information sur le monde des bibliothèques (le choix des sources fera certainement l’objet de longues polémiques !)
  • vos collègues n’ont pas besoin de savoir ce qu’est un agrégateur (et vous n’avez pas besoin de les perturber en leur apprenant que les fils RSS existent, même s”ils savent — eux ou leurs enfants — utiliser des podcasts)

Si le résultat vous semble pertinent, si vous avez un peu suivi les tutoriels Yahoo Pipes, et si vous avez quelques connaissances en HTML (je m’adresse là à des personnes participant à l’enrichissement d’un intranet : logiquement ça devrait être le cas), vous ne devriez pas avoir de problème pour mettre ça en place.

Et la question technique ne doit pas vous arrêter : si vous avez un souci à une étape ou à une autre, mes coordonnées sont là.

Mais par ailleurs vous pouvez tout à fait juger que la solution proposée :

  1. est inadaptée : vous n’avez pas d’intranet !
  2. est inadaptée : ça ne permet pas du tout de retrouver la communauté Biblio-fr. Rappelez-vous que ce n’était pas mon objectif : ce que je visais, c’était permettre de disposer facilement d’une certaine actualité des bibliothèques. Constituer un des élément d’une communauté professionnelle, c’était un des autres rôles de Biblio-fr (mais ce n’en était pas une mission, ni à proprement parler un service).
  3. est inadaptée : pour retrouver la richesse du contenu de Biblio-fr (cf. ) il faut bien plus de 12 sources !
  4. est absurde : j’ai une vision exclusivement “technophile“, je suis un obsédé, et je ne vois pas que ce que je propose ne répond absolument pas au besoin de se tenir au courant de l’actualité des bibliothèques. Je ne saurai trop vous inviter à développer cette idée en commentaires (avec toute la courtoisie que l’exercice nécessite). Vous pouvez aussi en débattre sur Biblio-fr : je continue à suivre les messages par mon agrégateur.

PS : ce billet doit paraître pendant que je n’aurai pas accès à Internet. Ne m’en veuillez donc pas de ne pas répondre avant mardi :-)

PS 2 : il y a une prolongation possible de cette première proposition, pour ajouter un peu de souplesse dans un monde de brutes (pardon : dans ces sources “figées”). J’y reviendrai en début de semaine prochaine (sauf si entre temps vous m’avez montré le caractère illusoire de ce premier billet).

La dissémination monte en puissance d’un coup

La dissémination, c’est cette chose dont Bibliobsession, notamment, s’est fait un chantre définitif (en même temps que de la médiation numérique) : au lieu de rester bêtement sur nos sites internet, allons là où sont nos usagers, sur Facebook, sur MySpace, sur Twitter, etc.

Le “héros du jour

Et donc notre cher chantre a publié aujourd’hui un billet mentionnant un outil génial, bibli.othequ.es, une mashup remarquablement conçue.

Une mashup, c’est un service qui associe plusieurs services pour produire un nouveau service. Une mashup remarquablement conçue, c’est un service qui associe Google Maps, Amazon, des serveurs Z39.50 et du JavaScript pour permettre à l’internaute de sélectionner les bibliothèques de sa région pour retrouver ensuite des informations de disponibilité dans ces bibliothèques sur les sites où il va naturellement : Amazon, Alapage, Fnac.com, et bientôt plus si affinités.

On avait déjà vu des scripts GreaseMonkey qui proposaient un lien direct depuis Amazon ou Fnac.com, permettant d’interroger sa bibliothèque pour savoir si le livre existait (un “simple” parallèle à l’OpenURL, en somme).

La grande force de ce nouveau service, bibli.othequ.es, c’est l’affichage direct des disponibilités des exemplaires sur ces sites commerciaux, au lieu d’un simple lien d’interrogation.

Le service est plus abondamment présenté par Bibliobsession, je n’y reviens pas. J’y ai fait aussi un certain nombre de commentaires, pour signaler ce qui me semble être des limites fonctionnelles à repousser pour un meilleur usage de l’outil. Je ne répèterai pas non plus.

Mais l’apparition de cet outil permet de poser une vraie question : j’ai le sentiment que face à des possibilités d’outils aussi remarquables, nous n’arriverons jamais à associer un service à la hauteur. Je veux dire par là que je n’arrive pas à concevoir de scénario où moi, bibliothécaire, j’orienterai correctement le lecteur de ma bibliothèque vers ce site pour qu’il en ait un usage aisé et rapide.

Je suis bien d’accord qu’une fois sur le site, le mode d’emploi en est très aisé. Mais :

  1. il faut que l’internaute accepte ce mode d’emploi (c’est-à-dire que depuis le site de sa bibliothèque, il accepte d’aller sur un autre site pour faire ce que lui dit celui-ci).
  2. il faut que sur le site de ma bibliothèque je situe ce service par rapport à tous les autres que je pourrais proposer.

Un portail non documentaire

Donc une fois que nous avons fait en sorte :

  • d’avoir monté un blog
  • d’être correctement référencés sur bibli.othequ.es (en ayant mis en évidence le profil de son serveur Z39.50)
  • d’avoir créé un compte Facebook avec un contenu riche
  • d’avoir créé un univers Netvibes
  • d’avoir créé un compte Twitter
  • d’avoir développé une barre LibX
  • d’avoir acheté un résolveur OpenURL
  • etc.
  • etc.

Que se passe-t-il sur notre site web institutionnel ? Quelle place et quelle forme pour signaler cette dissémination ?

Le diaporama de Perrine Helly sur le web 2.0 en BU mentionne le cas de la BU de Bretagne Occidentale, qui a renoncé monter de portail, c’est-à-dire de ne pas chercher à centraliser l’accès à leurs ressources.

Mais il me semble à l’issue de tout ce processus que la dissémination doit finalement mener à un portail. Non pas un portail documentaire, un portail de contenus, mais bien un portail de services : un point d’accès unique affichant, de manière plus ou moins dynamique mais nécessairement très visible (et pas seulement comme une simple “boîte à outils” ou une liste de liens) que la bibliothèque est dans une stratégie de dissémination, qu’elle est déjà ailleurs, que bientôt elle sera partout.

Bref, donner à entendre à l’usager que là où il va, la bibliothèque y sera déjà, qu’il l’y retrouvera sous une forme ou sous une autre. Je ne serais pas étonné si finalement, dans le lointain débat qui m’opposait à D. Bourrion (D. pour Dominique, paraîtrait-il ;-) 1), il l’emporte finalement et que les sites de bibliothèques, pour leur partie “Services” du moins, ressemble à une page POSH (ou Netvibes).

Il me semble que ce n’est qu’en diffusant un tel message que le lecteur pourra accepter d’aller sur un site comme bibli.othequ.es, avec l’idée que ce n’est que pour mieux retrouver sa bibliothèque plus tard.

Donc entre recherche unifiée et dissémination, les bibliothèques se dirigent vers un grand écart de regroupement des contenus et de dispersion des services. Bref, il faut se reposer pas mal de questions, histoire de décider vers quoi nous allons plutôt que de nous y retrouver par hasard.

P.S.

Par rapport au site lui-même, je me demande si on pourrait à terme attendre la même chose d’un serveur OpenURL : ne pourrait-il un jour fournir une API sur la disponibilité des documents, permettant de l’afficher sur un site en plus du lien ?

Et le site de Damiano Albani répond à cette frustration des extensions comme OpenURL Referrer, qui ne permettent de pointer que vers une bibliothèque à la fois.

1. Non, c’est bien Daniel. Merci à @Risu pour avoir déniché cet article d’Arabesques, qui ne nous rajeunit pas.