in reply to synonyms and antonyms

Well, you could use a Project Gutenberg free thesaurus (just a text file), and port it to a database (something like DBD::SQLite2 would be acceptable). Then just build an app that queries the database and returns the results.

Yes, it's quite a bit of work; however, once you have done it you will have an exceptionally flexible base on which to build all sorts of thesaurus-related tools and modules.

<-radiant.matrix->
Larry Wall is Yoda: there is no try{} (ok, except in Perl6; way to ruin a joke, Larry! ;P)
The Code that can be seen is not the true Code
"In any sufficiently large group of people, most are idiots" - Kaa's Law