Comment installer et configurer HtDig
pour la langue française
Ht://Dig


Qu'est ce que Ht://Dig ?

Ht://Dig est un logiciel d'indexation et de recherche de documents par mots-clefs à l'intérieur d'un site web donné. C'est typiquement le genre de logiciel qui est utilisé lorsqu'un site web offre des fonctionalités du type "rechercher sur ce site:" ou "search this site", etc... Ht://Dig se distingue des autres logiciels du même genre en étant un logiciel libre distribué sous licence GPL (GNU General Public Licence) et aussi en étant l'un des plus performants. Il est de ce fait le moteur de recherche favori des distributions de Linux et des sites dédiés au logiciel libre. Voir http://htdig.sourceforge.net/ pour en savoir plus.

Qu'est ce qui fait qu'Ht://Dig est adapté à une langue ou à une autre ?

Le moteur d'indexation et de recherche d'Ht://Dig est indifférent au language utilisé, mais sa configuration ne l'est pas. Ht://Dig utilise en effet quelques fichiers annexes et des paramètres de configuration qui permettent de l'adapter à une langue ou à une autre. Pour qu'Ht://Dig puisse fonctionner correctement avec la langue française, il faut substituer une version française de certains fichiers à ceux de la version anglaise par défaut et adapter le fichier de configuration.

Où se procurer les fichiers nécessaires ?

Lorsque j'ai voulu utiliser Ht://Dig sur un site en français, je me suis aperçu que ce n'étais pas si simple que ça et qu'il n'existait pas de kit de francisation établi qui puisse être utilisé tel quel. Etant du genre têtu et curieux, j'ai entrepris de creuser la question en explorant les mailing-lists, en rassemblant divers fichiers et en faisant des essais sous Linux ... et la persévérance a fini par être avantageuse, puisque je suis effectivement arrivé au bout de quelques jours à faire fonctionner correctement Ht://Dig en français. Grâce à ce challenge de mon ego d'informaticien par une nature récalcitrante, vous pouvez désormais bénéficier d'un kit de francisation dûment documenté:

Que contient le kit de francisation ?

Fichiers à substituer dans ./installdir avant la compilation et l'installation:

  • htdig.conf (fichier de configuration adapté pour le français - remplace le fichier du même nom)
  • rundig (script de lancement de la procédure d'indexation - remplace le fichier du même nom)
  • footer.html, header.html, long.html, nomatch.html, search.html, short.html, syntax.html, wrapper.html (gabarits d'affichage en français - remplacent les fichiers de même nom)

Fichiers à rajouter après l'installation, avant de lancer l'indexation:

  • ./common/francais.0 (dictionnaire des mots français - équivalent de english.0)
  • ./common/francais.aff (dictionnaire des terminaisons françaises - équivalent de english.aff)
  • ./common/bad_words.fr (liste de mots à exclure: articles, adverbes, etc... adaptée au français - équivalent de bad_words)
  • ./common/_synonyms.fr (dictionnaire des synonymes - équivalent de synonyms)
  • ./bin/_trans.pl (script de création d'un dictionnaire de synonymes non accentués - fichier ajouté)
  • ./htdocs/lisezmoi.html: le présent document, qui tient lieu de documentation du kit

Cette version du kit est basée sur la version 3.15 d'Ht://Dig.

Comment installer Ht://Dig pour le français ?

  1. Télécharger et déployer le package de la distribution d'Ht://Dig standard
  2. Télécharger et déployer le kit de francisation
  3. Substituer les fichiers du kit de francisation aux fichiers de la distribution standard qui sont dans le sous-répertoire ./installdir
  4. Hormis cette substitution de fichiers, l'installation de la version française est en tous points identique à celle de la version anglaise (se référer à la documentation d'Ht://Dig).
  5. Rajouter les fichiers du kit de francisation qui ne se sont pas automatiquement installés dans les bons répertoires
  6. Lancer rundig pour créer les bases de données d'indexation

Attention ! Pour que les caractères accentués soient correctement reconnus, Ht://Dig doit avoir été (re)compilé avec le paramètre locale:fr_FR, qui est spécifié dans la version modifiée d'htdig.conf. Cela suppose donc que le fichier htdig.conf du kit de francisation ait été substitué à celui de la distribution standard AVANT la (re)compilation.

A propos de certaines variantes de LOCALE

Ci-après extraits de mails de personnes qui ont résolu les problèmes relatifs à leurs variantes de locale:

"... J'ai bien tout recompilé, mais ça ne marchait toujours pas. J'ai exécuté la commande locale sur mon Unix et la j'ai vu que je n'avais pas fr_FR tout seul mais fr_FR.iso88591 ou fr_FR.roman, j'ai donc mis fr_FR.iso88591 dans le paramètre et là ça fonctionne au niveau de htdig, htmerge et htfuzzy, par contre j'ai encore des problèmes avec htsearch dans certains cas. J'ai résolu le problème en positionnant la variable dans le fichier htdig.conf à fr_FR.iso88591 pour les phases htdig, htmerge et htfuzzy, mais je la mets en commentaire pour htsearch, et là tout fonctionne. Je tourne sous HP-UX 10.20 ..."
(François Soupault <
fs@sigu7.jussieu.fr>)

"... J'ai réussi et c'était un problème de "locale" en desaccord entre le système (SUN/Solaris) et htdig, dans notre cas il fallait locale : fr (tout court) ..."
(Nicolas MARIE <
nicolas.marie@meteo.fr>)

Qui a fourni les dictionnaires ?

Les dictionnaires des mots et des terminaisons proviennent du dictionnaire "ispell" d'IREQ (ftp://ftp.robot.ireq.ca/ispell/francais-IREQ.tar.gz). Les dictionnaires de la distribution ispell ont été compilés au moyen de la syntaxe: cat *.dico | sort | uniq > francais.0. Le fichier des terminaisons francais.aff est réutilisé tel quel.

Le dictionnaire des synonymes a été fourni par Sébastien Brize suite à un appel à contribution de ma part. Ce dictionnaire est un peu brut de décoffrage, mais utilisable en l'état par ceux qui veulent s'en servir.

Appel à contribution: si quelqu'un apporte des améliorations à ce dictionnaire des synonymes, merci de me les communiquer pour en faire profiter tout le monde.

Comment à été composé le fichier bad_words.fr ?

Le fichier bad_words.fr a été composé empiriquement par tests successifs sur un site de taille moyenne, jusqu'à ce que le fichier db.wordlist ne contienne plus que des mots utiles:

  1. lancement de rundig -> indexation
  2. observations des mots indésirables récupérés dans db.wordlist
  3. ajouts de ces mots dans le fichier bad_words.fr
  4. lancement de rundig -> ré-indexation
  5. etc...

Appel à contribution: ce fichier est vraisemblablement améliorable. Toutes les suggestions allant dans ce sens sont bienvenues.

Quid des synonymes ?

Le dictionnaire des synonymes peut être employé de trois manières:

  1. pour étendre automatiquement la recherche à des synonymes des mots qui ont été entrés; c'est à cela que peut servir le fichier synonyms.fr du kit; pour activer ce type d'utilisation, enlever le '_' en tête du nom de fichier ("_synonyms.fr" -> "synonyms.fr")
  2. pour étendre la recherche à des mots qui s'orthographient de plusieurs manières; cette approche n'a pas été implémentée pour l'instant, mais elle mériterait de l'être
  3. pour étendre la recherche aux équivalents non-accentués des mots entrés; c'est à cela que sert le script trans.pl, en attendant que cette fonctionalité la soit incluse dans le programme lui-même; pour activer ce type d'utilisation, enlever le '_' en tête du nom de fichier ("_trans.pl" -> "trans.pl")

Comment faire en sorte que les caractères accentués ou non soient équivalents ?

Cela peut être accompli en constituant un dictionnaire des synonymes où les mots sans accents figurent en tant que synonymes des mots comportant des accents. Répondant à mon appel à contribution, Stéphane Marzloff a réalisé un script (trans.pl) qui compose un dictionnaire des synonymes non accentués à partir de db.wordlist. Ce script peut être exécuté automatiquement grâce à une version adaptée de rundig (inclus dans le kit). Pour l'activer, enlever le '_' en tête du nom de fichier ("_trans.pl" -> "trans.pl").

Une autre approche a été développée par Robert Marchand, qui consiste à intégrer l'équivalence entre caractères accentués/non accentués dans le code source d'htfuzzy plutôt qu'en utilisant les synonymes, ce qui devrait être plus performant. Cela n'est pas encore inclus dans le kit, mais vous pouvez en prendre connaissance et l'essayer en attendant:

Que faire des fichiers synonyms.db, word2root.db et root2word.db en anglais ?

Ces fichiers doivent être remplacés par leur équivalent en français. Pour cela, il faut effacer ces fichiers *.db d'origine et lancer une réindexation une fois que les fichiers du kit de francisation ont été mis dans les bons répertoires. Le script rundig comporte une procédure qui détecte l'absence des fichiers *.db et qui les reconstitue automatiquement à partir des dictionnaires spécifiés.

Comment proposer des améliorations du kit de francisation ?

Vous m'écrivez en décrivant les améliorations que vous suggérez et en joignant éventuellement les fichiers illustrant le propos (pas trop gros SVP). Dès que j'ai le temps de m'en occuper, j'essaie d'évaluer l'utilité et la faisabilité de la proposition et je vous répond pour dire ce que j'en pense. Si besoin est, on demande au Ht://Dig Group ce qu'il en pense. Une fois que nous sommes tombés d'accord sur les améliorations à apporter au kit, je les incorpore dans une nouvelle version du kit, en mentionnant votre contribution dans la présente FAQ, et je transmet au d'Ht://Dig Group la nouvelle version du kit pour qu'elle soit rendue disponible sur le serveur d'Ht://Dig et dans le CVS.

Qui a contribué à ce kit de francisation ?

  • Le Ht://Dig Group, en fournissant un logiciel bien conçu et paramétrable à souhait, et en faisant en sorte que la documentation et les archives des mailing-lists soient aisés à consulter
  • L'auteur du kit de germanisation, en donnant l'exemple
  • Didier Lebrun, en assemblant ce kit et en rédigeant la présente FAQ
  • Gilles Detillieux, en servant d'interface avec le Ht://Dig Group et en prodiguant quelques bons conseils
  • François Soupault et Nicolas Marie, en relatant leurs déboires avec locale
  • Stéphane Marzloff, en fournissant le script qui automatise la création d'un dictionnaire des équivalents non-accentués
  • Sébastien Brize, qui a fourni un dictionnaire des synonymes
  • Tous ceux qui ont adressé des questions, en suscitant des améliorations à apporter

Historique des modifications

  1. Version 1.0.1: ajout version adaptée de rundig et explications concernant la francisation des fichiers *.db
  2. Version 1.0.2: francisation des options de recherche (variables $(METHOD), $(FORMAT) et $(SORT)); clarifications et compléments d'explications (lisezmoi.html)
  3. Version 1.0.3: ajout du script de création du dictionnaire des synonymes non accentués (_trans.pl)
  4. Version 1.0.4: ajout d'un dictionnaire des synonymes brut de décoffrage (_synonyms.fr)
  5. Version 1.0.5: modification des liens vers le site http://htdig.sourceforge.net/
 
Contact: Didier Lebrun - Mise à jour : 13 février 2001