It's obvious that the easiest way to write a dictionary is in lexicographical order of the words being defined. This is fine to look up the spelling of a word, but not to always look up the word. This is where the reverse dictionary comes into play.

Even the thesaurus relies on you knowing the synonyms - and they don't always exist. A better resourse is a list of definitions with the attached word(s). The problem, of course, is how to order the definitions; a lexicographic order no longer makes sense!

Even worse, there is no unique definition for a word. A thesaurus sensibly uses a set of similar (often shorter, more common) words. However, a conceptual hierarchy could be employed to guide the user - split perhaps into categories, subsections and so on.

Like any definition, such a 'classification' of words into groups will feel natural to some and not to others. Also, words belong in a bag rather than a set, since they can have several meanings. Ideally, the reverse dictionary would be software...unsurprisingly, it already is:

  • http://www.onelook.com/reverse-dictionary.shtml

However, the most flexible and powerful representation of words might be in some sort of 'concept net' similar to copycat (and see, parmentier's other writeups). This would allow thesaurus style 'similar' search patterns as well as longer, sentance, queries. Hmm...of course, Jeeves was never any good.