LibX Sudoc ? M'enfin !?! 1/2

Par Bibolabo

[Attention ! Ce billet est un peu long et traite d'un sujet un peu plus pointu que d'habitude... Âmes sensibles s'abstenir ! ;-)]
Cela fait quelques temps déjà que je voulais créer un plugin LibX pour le Sudoc (et je n'étais pas la seule ;-)). C'est maintenant chose (presque) faite. LibX est une extension de recherche pour catalogue de bibliothèque à installer sur son navigateur préféré (Firefox ou Internet Explorer).
Chapo s'était occupé de créer celui du catalogue du SCD de Metz.
Pour mieux comprendre à quoi sert (de façon générale) ce plugin, je vous invite à lire le tuto PDF ou à visionner le tuto animé réalisés pour l'occasion si ça n'est pas déjà fait.
Je conseille aussi à ceux qui ont envie de se lancer dans la création de ce plugin, de lire les articles de Lully consacrés à ce sujet. Il propose des tutoriels synthétiques et efficaces expliquant la façon d'opérer ainsi que des approches s'adaptant à différents objectifs d'utilisation (première approche, LibX et Zotero pour les acquéreurs ici et , LibX et proxy).
Pour le Sudoc j'ai utilisé la solution proposée pour les URL complexes.
  • Parce que le Catalogue Sudoc n'est pas dans la liste des "Manual configuration". Il fallait donc ajouter un "bookmarklet"/une URL servant de modèle :


  • l'URL de recherche multicritères du Sudoc n'était pas adaptée au modèle LibX proposé par défaut.
Dans la réponse à la question 11 des FAQ de LibX, la syntaxe préconisée dans ce cas est "%JOIN". En voici le modèle :
"%JOIN{connector}{type1|value1}{type2|value2}{....}"
Où, le "type" correspond à un code d'option de recherche (par exemple : a pour auteur, t pour titre, etc.) et "value" correspond à l'équation de recherche du catalogue correspondant à l'option de recherche indiquée (exemple pour le Sudoc : {a|&ACT0=&IKT0=1004&TRM0=%a}, %a étant remplacé par le terme de recherche lors du lancement d'une requête. 1004 correspond à l'index des noms auteurs du Sudoc).
Elle m'a donnée un peu de fil à retordre mais j'ai fini par y arriver...
Après quelques essais infructueux je me suis décidée à faire appel à l'aide en ligne [bouton "Help me with" dans l'onglet "My Editions"]. Manque de chance (?) pour moi, j'ai reçu une réponse quelque peu laconique avec un lien me renvoyant vers le paragraphe des FAQ que j'avais déjà consulté ! Et M... !
J'ai donc repris ma réflexion, en me disant que j'étais de toute façon sur la bonne voie, avec l'aide ponctuelle d'un collègue compréhensif (merci Pierre ;) !).
Il s'agissait d'abord de comprendre la logique d'affichage et les codes des requêtes utilisés dans l'URL du catalogue pour une recherche multicritères. Exemple d'URL pour une recherche Auteur : Baudelaire et Titre : fleurs.
http://www.sudoc.abes.fr/DB=2.1/SET=4/TTL=2/CMD?ACT=SRCHM&ACT0=SRCH&MATCFILTER=Y&MATCSET=Y&NOSCAN=Y&PARSE_MNEMONICS=N&PARSE_OPWORDS=N&PARSE_OLDSETS=N&IMPLAND=Y&screen_mode=Recherche&IKT0=1004&TRM0=baudelaire&ACT1=*&IKT1=4&TRM1=fleurs&ACT2=*&IKT2=1016&TRM2=&ACT3=*&IKT3=7&TRM3=&SRT=YOP&ADI_TAA=&ADI_LND=&ADI_JVU=&ADI_MAT=B&ADI_MAT=T&ADI_MAT=F&ADI_MAT=O&ADI_MAT=A&ADI_MAT=M&ADI_MAT=N&ADI_MAT=G&ADI_MAT=V&ADI_MAT=I&ADI_MAT=K&ADI_MAT=Y&ADI_MAT=X&ILN_DEP_BIB=DEP&NOT_USED_ADI_BIB=
Puis, il fallait éliminer le "superflux" ne pouvant être intégré (les différents critères de pertinences par exemple) sans nuire à l'interrogation principale.
http://www.sudoc.abes.fr/DB=2.1/SET=4/TTL=2/CMD?ACT=SRCHM&ACT0=Recherche&IKT0=1004&TRM0=baudelaire&ACT1=*&IKT1=4&TRM1=fleurs&ACT2=*&IKT2=1016&TRM2=&ACT3=*&IKT3=7&TRM3=
Enfin, il fallait recréer cette logique avec la méthode %Join. Il est préconisé dans l'aide d'utiliser l'URL encoding mais cela ne fonctionnait pas pour le Sudoc, jai donc gardé l'encodage ASCII. Je n'ai pas mis non plus d'opérateur booléen, inutile dans notre cas également.
4 requêtes sont possibles, simultanées ou non : Mots auteur (a) ; Mots du titre (t) ; Tous les mots (Y) ; ISBN (i). Au final j'obtiens cet URL Template :
http://www.sudoc.abes.fr/DB=2.1/SET=3/TTL=2/CMD?ACT=SRCHM%JOIN{}{a|&ACT0=&IKT0=1004&TRM0=%a}{t|&ACT1=*&IKT1=4&TRM1=%t}{Y|&ACT2=*&IKT2=1016&TRM2=%Y}{i|&ACT3=*&IKT3=7&TRM3=%i}
Pour créer un plugin le plus propre possible j'ai d'abord utilisé la possibilité de créer ses propres "Bookmarkletsearch options".

Je ne sais pas pourquoi mais ça n'a jamais fonctionné correctement (toujours aucune réponse de l'équipe LibX sur ce point mais il est bien précisé dans les FAQ, question 10, que l'aide n'est que partielle pour les catalogues personnalisés). J'ai donc fini par prendre les options paramétrées en les traduisant en français (bouton "Change"). J'ai aussi changé l'ordre d'apparition en utilisant le "drag and drop" (glisser / déposer) préconisé dans cet encart (a pour auteur, t pour titre, y pour tous les mots, etc.).
Résultat, quand on affiche la barre d'outils dans le navigateur :

Sauf que... dans le Sudoc il existe deux index distincts pour les ISBN et les ISSN. LibX ne proposant qu'un modèle commun ISBN/ISSN, j'ai donc décidé de prendre le modèle proposé pour les ISBN seulement et j'ai "détourné" un autre modèle (celui des recherches d'articles) en le renommant ISSN et en lui faisant correspondre le code index ISSN (8) : {d|&ACT4=*&IKT4=8&TRM4=%d}. Ce truc a fonctionné avec l'URL de recherche simple mais pas multicritères (pourquoi ? Parce que...). Je n'avais pas envie de créer une seconde URL modèle uniquement pour les ISSN car cela revient à devoir changer de "catalogue" dans l'interface publique et je ne trouve pas cela cohérent pour une même entité de départ.
De plus, cet arrangement pause un problème au niveau du paramétrage des préférences du menu contextuel, l'onglet ISSN renvoie par défaut à l'option de recherche i ISBN/ISSN de LibX (ici devenue ISBN car je l'ai renommée dans les search options, voir plus haut).

La recherche du menu contextuel et celle de "l'autolink" se font sur l'index des ISBN et non sur celui des ISSN. Les bidouilles ont des limites ! Je me vois donc dans l'obligation de créer un second bookmarklet pour les ISSN seulement... Et donc, de supprimer cette partie de l'URL template : {d|&ACT4=*&IKT4=8&TRM4=%d}.
Sauf que ! Le second bookmarklet reprend les mêmes options de recherche que le premier. Ce qui veut dire que le problème reste le même : impossible de faire une recherche ISSN pour le moment.
Restait le souci de recherche automatique sur les ISBN cliquables. Libx s'obstinant à convertir les ISBN 13 en ISBN 10, certains résultats s'en retrouvaient faussés. En effet, certaines notices du catalogue n'étaient retrouvées car elles ne contenaient que l'ISBN 13. Grâce à Lully (merci à lui !) qui m'a fait remarqué que l'option pouvait être désactivée dans d'autres bookmarklets, j'ai demandé à la cellule d'aide LibX si cette fonction pouvait être ajoutée et ça a été fait ! :-)

Seule ombre au tableau c'est le message de survol "ISBN not found" quand on passe la souris sur un ISBN cliquable, qui apparaît même si l'ouvrage est présent dans le catalogue...

Voilà ! J'en suis là pour le moment... Comme dirait Boris Vian :
"Y a quelque chose qui cloche là-dedans
J'y retourne immédiatement " !