Much inspiration for the Emacs predictive completion package came from a similar package written for the nedit editor by Christian Merkwirth. Most significantly, it provided the clue that ternary search trees are the best data structure to use for the dictionaries.
Ternary search trees are described in a very readable article by Jon Bentley and Robert Sedgewick. The article can be found via http://www.cs.princeton.edu/~rs/strings/.
Finally, the English dictionary supplied with the predictive completion package was originally based on the British National Corpus frequency tables, available from http://www.itri.brighton.ac.uk/~Adam.Kilgarriff/bnc-readme.html.