Skip to content

Les dictionnaires sous Unix

Hubert Tournier edited this page Sep 5, 2021 · 47 revisions

Les origines

typo(1)

La première commande Unix utilisant un dictionnaire semble être la commande typo, servant à "rechercher de possibles erreurs typographiques", qui est apparue avec la version 3 d'Unix en février 1973.

Sa page de manuel référence un dictionnaire nommé /etc/w2006, ensuite déplacé dans /usr/lib/w2006 à partir de la V4.

La première version de ce fichier accessible via les archives de The Unix Heritage Society est celle de la V5. Ce dictionnaire (daté du 27 novembre 1974) compte alors 5.099 mots anglais.

Le fichier a ensuite été augmenté à 24.473 mots anglais (incluant des noms propres) avec la version 3BSD d'Unix, dans une version datée du 12 février 1979, et a perduré juqu'à la version 4.2BSD d'UNIX, dans une version datée du 2 janvier 1983, incluant quelques corrections mineures.

spell(1)

La commande spell, servant à "rechercher des erreurs orthographiques", a été diffusée avec la V6 d'Unix en mai 1975.

Elle référencait aussi bien /usr/lib/w2006, qu'un nouveau /usr/dict/words.

Sans que l'on sache s'il s'agissait de l'un ou de l'autre de ces dictionnaires, la page de manuel indiquait :

The dictionary cannot be distributed because of copyright limitations.

Comme l'indique le document A Research UNIX Reader: Annotated Excerpts from the Programmer’s Manual, 1971-1986 de Douglas McIlroy:

Doug (M. Douglas) McIlroy exercised the right of a department head to muscle in on the original two-user PDP-7 system. Later he contributed an eclectic bag of utilities: tmg for compiler writing, speak for reading text aloud, diff, and join. He also collected dictionaries and made tools to use them: look (v7, after a model by Ossanna), dict (v8), and spell (v7).

Steve (Stephen C.) Johnson’s yacc reduced Al (Alfred V.) Aho’s expertise in language theory to practice. Upon that base Steve built the portable C compiler that was used to port the system itself and to evaluate candidate instruction sets for unbuilt machines. Johnson made the first spell, worked on computer algebra, and devised languages for VLSI layout.

Un autre document de Doug McIlroy, Development of a Spelling List, détaille la création de ces outils et des dictionnaires associés.

Il montre notamment que le souci de l'époque n'était pas d'avoir un dictionnaire exhaustif, mais plutôt d'avoir un dictionnaire performant aussi léger que possible, compte-tenu de la puissance et des capacités de stockage de l'époque.

Dans Unix: A History and a Memoir, Brian Kernighan indique à propos de Doug McIlroy :

His version of spell made effective use of a dictionary and heuristics for identifying parts of speech to find potential spelling mistakes, using only meager resources.

... et des utilitaires de préparation documentaire, dont le langage C :

It's hard to remember today, perhaps, that efficiency in both time and space were crucial when machine capacities were expressed in kilobytes, not gigabytes. Every byte counted, and so at some level did every instruction, so a language that economized on both was not just nice, but a practical necessity.

La première version accessible du fichier /usr/dict/words est celle de la V7. Ce dictionnaire (daté du 20 janvier 1979) compte 24.001 mots anglais (incluant des noms propres), et semble avoir été fusionné avec /usr/lib/w2006 dans les systèmes BSD de l'époque. La dernière version accessible est celle de la V8. Ce dictionnaire (daté du 12 avril 1985) compte 72.276 mots anglais.

hangman, words(6)

Commande "majeure" apparue dans la V7 d'Unix en janvier 1979, le bon vieux jeu du pendu !

Bien qu'anecdotique, sa page de manuel et son code source nous apprennent toutefois que l'e(xtended)dict(ionary) dont il était question ci-dessus était localisé dans /crp/dict/web2:

WORDS(6)                         Games Manual                         WORDS(6)
NAME
       hangman, words - word games
SYNOPSIS
       /usr/games/hangman [ dict ]
       /usr/games/words
DESCRIPTION
       The optional argument names an alternate word list.  The  special  name
       `-a' gets a particular very large word list.
FILES
       /usr/dict/words     the regular word list
       /crp/dict/web2      the -a word list
BUGS
       UNIX software is distributed without the -a word list.

Les versions modernes de FreeBSD sont aujourd'hui distribuées avec ce fichier, le copyright ayant expiré:

Welcome to web2 (Webster's Second International) all 234,936 words worth.

The 1934 copyright has lapsed, according to the supplier. The supplemental 'web2a' list contains hyphenated terms as well as assorted noun and adverbial phrases. The wordlist makes a dandy 'grep' victim.

Il s'agit donc du Webster's New International Dictionary (second edition, 1934).

look(1)

Autre commande apparue dans la V7 d'Unix en janvier 1979, la commande look évoquée par Doug McIlroy, servant à "chercher des lignes dans une liste triée".

Comme l'indique sa page de manuel, le fichier /usr/dict/words était utilisé par défaut en l'absence de source spécifique.

dict(7) et dict.sh

D'autres fichiers de dictionnaires étaient utilisés par la commande look.

A partir de la V8 d'Unix en février 1985, apparaît une page de manuel référencant les dictionnaires suivants, ainsi qu'un script dict.sh permettant d'y faire des recherches :

  • webster: Merriam-Webster Collegiate Dictionary, Seventh Edition, full text (/usr1/dict/w7full/*)
  • web7: same, words only (/usr/dict/words)
  • etym[ology]: inverted index to `webster' by root words (/usr1/dict/w7etym)
  • web2: Merriam-Webster New International Dictionary, Second Edition, unabridged, words only (/usr1/dict/web2)
  • oxford: The Oxford Advanced Learner's Dictionary of Contemporary English, full text (/usr1/dict/oaldce/*)
  • spell: word list of spell(1) (/usr/dict/words)
  • acro[nym]: 17000 AT&T acronyms (/usr1/dict/acro)

Outre le fait que tous ces dictionnaires ne soient pas de simples listes de mots et que les dictionnaires webster, oxford, web7 et etymology soient copyrightés et ne devraient pas être copiés sans autorisation, la page indique notamment que le fichier /usr/dict/words n'a pas partout le même contenu :

/usr/dict/words - spell or web7, depending on machine

Le script dict.sh est disponible dans le code source de la V10 d'Unix. On y trouve la trace d'autres dictionnaires :

  • pron: Merriam-Webster Collegiate 7th ed, words and pronunciations
  • oed: New English Dictionary (OED), fragment, bu-cz
  • slang: New Dictionary of American Slang
  • thesaurus: Collins Thesaurus
  • thesaurusa: same, augmented with backreferences
  • names: Oxford Dictionary of Names
  • places: 128,000 US populated places
  • towns: 45,000 US places

Ainsi qu'un certain nombre de sous-commandes associées à ces dictionnaires spécifiques, qui ne sont donc jamais devenues mainstream du fait de la non diffusion des données associées : colthlook, colthread, ldefine, namelook[1], nameread, odefine, odqlook[1], oedread, slanglook, wdefine...

wwb(w)

A partir de la version 8 d'Unix en février 1985 est distribué le Writer's Workbench (wwb), un ensemble de commandes destinées aux rédacteurs de documents (nombreux aux Bell Labs), permettant notamment des corrections grammaticales et stylistiques, au-delà des corrections orthographiques.

Certaines commandes manipulaient des dictionnaires personnels ou spécialisés, dont pour l'anecdote, le wwb/lib/wordlist de la commande worduse au format strfile utilisé par les fortune cookies :-)

Les utilitaires de préparation documentaire aux Bell Labs

Unix est né dans le centre de recherche d'AT&T aux Bell Labs dont l'un des produits phares est naturellement la production de papiers de recherche, mais aussi un rayonnement à travers des publications d'ouvrages.

Toujours dans l'excellent Unix: A History and a Memoir, Brian Kernighan explique comment un petit groupe de chercheurs issus de l'industrie a pu produire autant de livres influents :

A third factor is more technical: the symbiosis among C and Unix as a programming environment, document preparation as a research area, and writing about technical computer topics as a major activity. This began with text formatting programs like Doug McIlroy's Roff, Joe Ossana's Nroff and Troff, and then the preprocessors like Eqn, Tbl, and so on. Those tools made it easier to produce documents that included ever more typographically challenging content, like mathematics, tables, figures, diagrams, and graphs. That in turn led to better writing, because all of these documents preparation programs shared a vital characteristic: they made it easy to make multiple revisions of documents and always have a clean copy to work from, as opposed to the slow and painful alternative of giving material to a typist and waiting days for it to come back.

Ceci pour rappeler que toutes ces commandes, loins d'être anecdotiques, correspondaient à un cas d'usage majeur d'Unix à cette époque, et que disposer d'un dictionnaire fiable et performant était donc essentiel.

Les dictionnaires Français pour Unix

Faute de dictionnaire français (voire anglais) disponible, les utilisateurs francophones ont été initialement privés de certains de ces utilitaires de préparation documentaire. La réponse au besoin est d'abord venu d'un collectif d'utilisateurs, puis de chercheurs de la francophonie.

Le Dico

Le plus ancien dictionnaire Français pour Unix dont j'aie connaissance est Le Dico de René Cougnenc, apparu en 1992 sous forme de logiciel pour Linux, puis pour MS-DOS, ensuite porté sous Windows par Serge Delbono.

Il est toujours diffusé aujourd'hui, par exemple sous Linux Debian.

La version 1.4 comporte 94.836 mots, plus 39.072 communes de France.

Je ne résiste pas au plaisir de reproduire le début de son fichier README.TXT, qui fleure bon la grande époque des BBS :

   +--------------------------------------------------------------+
   |                                                              |
   |    LL       EEEEEEE        DDDDDD   IIII   CCCCC    OOOOO    |
   |    LL       EE             DD   DD   II   CC   CC  OO   OO   |
   |    LL       EEEE           DD   DD   II   CC       OO   OO   |
   |    LL       EE             DD   DD   II   CC       OO   OO   |
   |    LL       EE             DD   DD   II   CC   CC  OO   OO   |
   |    LLLLLLL  EEEEEEE        DDDDDD   IIII   CCCCC    OOOOO    |
   |                                                              |
   +--------------------------------------------------------------+

                "Le Dico" est une premiere Francaise !

  Plus   de  100.000  elements  comportant  noms  communs,  verbes,
  adjectifs, conjugaisons et  pluriels  complexes,  ainsi  que  les
  principaux CODES POSTAUX, FRANCAIS, soigneusement elabores par un
  collectif d'utilisateurs de  BBS  Francais,  et  mis  en  DOMAINE
  PUBLIC  au format ASCII ACCENTUE dans la mesure du possible, avec
  soit le jeu IBM pour MS/DOS, soit le  jeu  ISO  8859-1  pour  les
  autres systemes.

  Tout  le  monde  en  parlait, tout  le  monde  cherchait  quelque
  chose de ce genre, eh bien  nous l'avons fait.

  Le Dico c'est aussi une petite commande  simple  permettant  sous
  MS-DOS  ou  Unix  de trouver en un clin d'oeil un mot que l'on ne
  sait pas trop orthographier.

IREQ-Francais

Produit au Canada entre 1993 et 1996 par Martin Boyer, alors chercheur à l'Institut de Recherche d'Hydro Québec (IREQ), ce dictionnaire français est directement prévu pour être utilisé avec ispell, l'un des successeurs de spell.

Dans sa version 1.4, il contient 24.419 mots simples et 23.199 mots "affixés", représentant un total de 221.376 mots ou variations de mots.

Pour faciliter la correction du dictionnaire, les mots sont groupés selon leur type (noms communs et adjectifs, noms propres, verbes du premier groupe, verbes du deuxième groupe, etc.). Un fichier spécial décrit les règles de modification des racines qui permettent de créer plusieurs mots à partir de variations sur une même racine.

Francais-GUTenberg

Produit en Suisse de 1998 à 1999 par Christophe Pythoud, qui travaillait à la section de Linguistique de l'Université de Lausanne (UNIL), avec le soutien de l'association Gutenberg, ce dictionnaire français est lui aussi prévu pour être utilisé avec ispell. Il succède directement au dictionnaire IREQ-Francais dont il entend corriger les inconvénients liés à son utilisation avec ispell.

Le site n'est aujourd'hui accessible que par son archive Wayback Machine, mais son fichier source est disponible en paquet Debian et une liste de 336.531 mots du français en a été extraite en février 1999 et reste accessible sur le page openlexicon de Christophe Pallier. La documentation de référence est également accessible.

GNU Aspell French Word List

Ce dictionnaire, dont la dernière version date de 2002, a initialement été préparé par Rémi Vanicat du Laboratoire Bordelais de Recherche en Informatique (LaBRI). Il a été prévu pour être utilisé avec GNU aspell, l'un des successeurs de ispell.

Sa liste de mots est un mélange des dictionnaires de l'IREQ et de l'UNIL/Association GUTenberg mentionnés ci-dessus.

Il est naturellement téléchargeable sur le site du projet GNU.

Grammalecte dic

A renseigner...

Les autres dictionnaires francophones

On trouve plusieurs dictionnaires francophones téléchargeables sur le Web pour utilisation hors ligne, mais la plupart sont relativement peu accessibles et rarement directement utilisables sous Unix.

Voici une liste commentée de ceux que j'ai pu identifier:

Editeur Nom Contenu
Association des Bibliophiles Universels (ABU) Liste de mots 255.282 mots communs avec classe grammaticale
(dont mots accordés et 6.590 verbes conjugués)
35.957 communes françaises avec code postal
12.437 prénoms
1.403 difficultés orthographiques
170 pays et lieux
Très intéressant, malheureusement le site n'a pas été mis à jour depuis 2002 et les adresses de contact ne fonctionnent plus.
Téléchargement - dernière mise à jour en 2002 au plus tard
Licence ABU
Package Python pour utilisation directe sous Unix ou autres
Freelang Liste de mots français 22.739 mots (dont noms propres, prénoms, lieux).
Téléchargement - dernière mise à jour 26/3/2003
Licence Freeware
Laboratoire d'Automatique Documentaire et Linguistique (LADL),
aujourd'hui intégré à l'Institut Gaspard Monge (IGM) de l'Université Gustave Eiffel
Dictionnaire DELA fléchi du français Comporte 683.824 entrées simples pour 102.073 lemmes différents et 108.436 entrées composées pour 83.604 lemmes différents
Téléchargement - dernière mise à jour le 16/3/2006
Licence LGPLLR
1er package Python pour utilisation directe sous Unix ou autres
2ème package Python pour une version avec corrections
... Lexique / Open Lexicon FR ...
... DEM et LVF ...
... WiktionaryX ...

Cette section est en cours de rédaction...

Les recherches en "documentation automatique" en France

Pour faire le pendant de ce qui se passait aux Bell Labs dans les années 1970 et cette "killer application" locale qu'était la préparation documentaire, on peut signaler des travaux de recherche publique antérieurs, tant aux Etats-Unis (Chomsky...), qu'en France.

L'ouvrage L'informatique en France de Pierre-Eric Mounier-Kuhn, en 2010, mentionne ainsi dès 1960 la création d'une Section d'automatique documentaire à l'Institut Blaise Pascal, où :

La recherche automatique s'appuie sur un thesaurus mis en mémoire : synonymes, mots voisins ou composés... réseau reliant les mots les uns aux autres.

Plus loin :

En 1963 la Section d'analyse documentaire a entrepris, sous contrat DGRST, d'inventorier les études et applications intéressant le traitement automatique de l'information non numérique, principalement la documentation et la traduction automatiques. Le but est de permettre aux chercheurs de s'informer des principaux travaux menés dans ces domaines à travers le monde. Ce Groupe d'études sur l'information scientifique [...] devient en 1966 laboratoire d'automatique doumentaire et linguistique.

Le fameux LADL de Maurice Gross à l'origine des dictionnaires DELA...

En conclusion sur les enjeux du sujet :

Retenons les principaux traits de l'histoire de l'automatique documentaire au CNRS:

  • Elle est initiée par des utilisateurs de machines informatiques, qui veulent développer des applications nouvelles, sont confrontés à des problèmes fondamentaux et décident de s'y attaquer en quittant leur discipline d'origine.
  • [...] La discipline vers laquelle ils se tournent d'abord pour chercher des solutions est la linguistique. [...]
  • Au-delà des recherches dont elle est l'objet, l'automatique documentaire a de considérables enjeux économiques dans la défense, les administrations et les grandes entreprises. Toutefois la vision prophétique de la recherche d'information, de l'indexation, du dictionnaire des paradigmes est sans doute trop en avance pour avoir des impacts directs sur le plan pratique.

On constate en effet, bien que rétrospectivement, le poids économique de la recherche d'information, héritière de ces travaux de documentation automatique, avec notamment le développement de Google, qui s'est dès l'origine donné pour mission d'organiser les informations à l'échelle mondiale dans le but de les rendre accessibles et utiles à tous.

Et les dictionnaires pour le projet PNU dans tout ça ?

Se lancer dans un projet tel que PNU m'a confronté d'emblée à la nécessité de disposer d'une documentation technique correcte, et donc de travailler assez tôt dans le projet sur les outils de préparation documentaire, dont man constitue la partie émergée de l'iceberg, et roff et ses variantes la partie immergée. Le contenu conservant toutefois plus d'importance que les contenants...

La particularité d'Unix étant d'être, bien plus qu'un système d'exploitation, un véritable système de traitement de données via ses multiples utilitaires et filtres de traitement de texte (au sens original et non dévoyé du terme), le besoin de disposer de dictionnaires de langues a suivi très rapidement.

Mais c'est également une nécessité pour d'autres domaines qui m'intéressent comme la cryptographie et les jeux de lettres.

On pourrait se demander à quoi bon consacrer tant d'efforts à refaire ce qui existe déjà ? Au-delà du prétexte pédagogique et de l'occasion de mise en pratique de "nouveaux" savoirs techniques, il s'agit surtout d'un voyage mémoriel qui me permet de remettre en perspective l'Histoire de ma Discipline.

Historique des dictionnaires électroniques du français

Voici deux liens intéressants pour approfondir le sujet et en apprendre plus sur son histoire :