## Every bilingual dictionary should be a Galois connection

A Galois connection (for anyone not familiar with the concept, the Wikipedia entry is decent) between two partially ordered sets consists of two total functions *f*: *A* → *B* and *g*: *B* → *A* such that for all *a*: *A* and *b*: *B*

(*f* (*a*) ≤ *b*) ⇔ (*g* (*b*) ≥ *a*)

The simplest and most common example uses powersets and inclusion: for some sets *X* and *Y*, *A* is ℙ (*X*), the set of subsets of *X*, and B is ℙ (*Y*); the ≤ order relation is simply ⊆, inclusion between subsets. So the condition is that for arbitrary subsets *a* and *b* of *X* and *Y*:

(*f* (*a*) ⊆ *b*) ⇔ (*g* (*b*) ⊇ *a*)

Pictorially:

(Instead of starting with total functions *f* and *g* between ℙ (*X*) and ℙ (*Y*) you may also use possibly partial functions *f’ *: *A* -|-> *B *and *g’ : B -|-> A*, and use for *f* and *g* the associated image functions, which are total.)

Now you might think that this post continues with abstract interpretation or some such topic, but what I really want to talk about is dictionaries. Bilingual dictionaries. You need them if you are learning a language, and they would seem to be the ideal application for computers, including shirt-pocket computers (more commonly known as smartphones). Hyperlinking frees us from the tyranny of page turning and makes dictionary browsing an exciting and entirely new experience: you can type partial words and see them completed, make mistakes and see them corrected, discover a new word and see it memorized into the interactive equivalent of flashcards. If in the definition of a word you see another that catches your attention, in either the source or the target language, you can click it and see its own definition. You can travel back and forth, retain your browsing history, and test yourself repeatedly.

Unfortunately, what I have described is only the theory. Current electronic bilingual dictionaries — at least those I tried, but I tried quite a few, involving a variety of languages — fall short of this ideal. In addition, they are typically of rather bad linguistic quality as compared to their print competitors.

An example of a seemingly fundamental requirement that every bilingual dictionary should satisfy (and that dictionaries on the market fail to meet), is that the relationship it defines between two languages must be a Galois connection, both ways. If you are looking for the translation of a word or group of words a in *X*, and obtain a set *b* of equivalents in *Y*, then it is pretty hard to justify that when you go back the translations for *b* do not include *a*!

I have yet, however, to find a Galois dictionary. As an example among hundreds that I encountered in recent months, take the Pons ($30) French-German dictionary. As the names suggest *f* will be the function yielding the French translation of a set of German words and *g* the German translation of a set of French words. Now* g* {(“*approximation*“)} includes “*Näherungswert*“; but then *f* ({“*Näherungswert*“}) only lists “*Valeur approchée*“!

The Galois requirement is not just a matter of principle; it makes the dictionary useful for native speakers of either language. If, as here, *g* (*b*) ⊆ *a* but (*f* (*a*) ⊉ *b*), and *a* includes the most common words in *Y* for the concepts at hand, the native *Y* speaker may find the right translation (*Näherungswert* is indeed pretty good for *approximation* in the mathematical usage of this word), but the native speaker of *X* will be misled. Indeed *valeur approchée* is not the best term for the concept of mathematical approximation in French.

More generally, the reader who is trying to master both of the dictionary’s languages will be cheated. Such a reader wants to use the dictionary not just to get quick translations (there’s Google and Bing Translate for that), but to gain deep insights into the languages and their correspondence. How can one learn without the ability to check translations back and forth?

I wrote to Pons to report this problem (and others). To their great credit they took the trouble to answer my message in detail; but here is their tack on the issue:

“*As far as the choice of headwords for the source and the target language is concerned, PONS always is doing this choice for each language volume separatedly as we the dictionaries are made for special target groups and in different sizes we have to make a choice of words and this is done with regard to the importance a word has in each language – source and target language – and not by simply changing source and target language. This special elaboration of headword lists for each language can imply that a word which can be found in one volume of the dictionary is not necessarily part of the other volume.*”

I am not sure I understand what this means, but I am much too kind to wish upon dictionary authors, if they do not fix their systems, the sad fate of Évariste Galois.

Take a look at Lingvo dictionary. It has all features you are mentioned: flexible brousing, flashcards, support of PDA and kind of the browsing history. Aditionaly, it could be extended by adding external dictionaries and support many languages.

The web site: http://www.lingvo.com/

5(0 votes cast)0(from 0 votes)[…] This post was mentioned on Twitter by Jens Luedicke, Daniele Mantovani. Daniele Mantovani said: Bertrand Meyer's technology blog – Every bilingual dictionary should be a Galois connection http://bit.ly/c7cGi8 […]

Thanks to Rick Hehner (http://www.cs.utoronto.ca/~hehner/) for pointing out that the Galois connection must be both ways (text now updated accordingly).

5(0 votes cast)0(from 0 votes)I am not sure what is meant by both ways … is it about the relation between f.a ≤ b and a ≤ g.b, the fact that they are equivalent in a Galois connection rather than just one implying the other?

5(0 votes cast)0(from 0 votes)The imprecision of any mapping from one human mapping to another means that you can’t achieve a perfect Galois connection, due to differences in nuance and connotation, as well as denotation. But I agree that for the vast majority of cases, x(y(z)) should be (or at least include) z.

5(0 votes cast)0(from 0 votes)Oops, I meant “one human language to another”…sorry about that.

5(0 votes cast)0(from 0 votes)