Wednesday, October 04, 2006

Software environments for working on AI projects

In the new global economy of driving production and service costs towards zero, it makes a lot of sense for computer scientists to learn specialized skills to differentiate themselves in the marketplace. Since you are reading this blog I assume that you are interested in learning more about AI so I thought that I would list the AI development environments that I have found to be particularly useful - and a lot of them are free.

Classic AI Languages
Although not strictly required for work in AI, a few AI oriented languages have proven especially useful in the past: Lisp, Scheme, and Prolog. Scheme is a great language but suffers from an "embarrassment of riches": there are almost too many fine implementations available to choose from. That said, I would recommend the excellent and free DrScheme and MzScheme as a very good place to start because it is supported by a repository of useful libraries that are very easy to install. If you want to mix logic programming with Scheme then the following book (with examples that work with DrScheme) is recommended: The Reasoned Schemer

If you want to use Common Lisp (which is what I use for most of my AI development consulting) there are two commercial products that are very good and have free (non-commercial only!) versions: Franz Lisp and LispWorks. There is no need however to stick just with commercial offerings: SBCL (MIT license) and CLisp (GPL license) are two good choices among many.

If you want to use Prolog, the open source (LGPL) SWI-prolog and the commercial Amzi Prolog are both excellent choices and have lots of third party libraries.

Scripting Languages
I have found two scripting scripting languages to be particularly useful for AI projects: Ruby and Python. Python has more third party libraries and projects for AI but I personally enjoy developing in Ruby.

Pick an environment and stick with it
Believe it or not, I tend to follow this advice myself: I tend to use one language for a year or so, and then switch (usually because of customer preference or the availability of a great library written in one specific language). It pays to take the time to master one language and environment, then use that environment a lot.

So my advice is to spend just a few hours each with a few of my suggestions in order to pick one to learn really well. Once you pick a language stick with it until you master it.

Labels: , , ,


Comments:
Beyond Python and Ruby among scripting languages, people may also try out the JavaScript Mind.html with its on-line User Manual.
 
What are your views if any as using Smalltalk for an AI development language? Are there any reasons why it would be less advantageous than something such as Lisp?
 
Eric: I believe that Smalltalk is a fine language for AI development. The big advantage Lisp has is the huge amount of Lisp AI code. Lately, more AI code is being written in Python (too bad for me since I prefer Ruby).
 
Perl has a half decent library of NLP modules. I have been using some to summarize web pages and the results for my purposes are superior to the built in summarizer in mac os -- that is I use them as tools to aid my understanding, somewhat like the executive review idea. I am just starting out here but next looking at categorizing tools. I am pretty good at picking out information but I need
help in organizing topically. I would like to use web pages as a format for my results, I am thinking of XML much more than HTML. I am also trying to pick up some LISP because I hope it will be faster for some things, but I am worried that the syntax will be too antiquated. Perl attracted me because it is designed with NLP principles so that the means match the ends more, and of course their is a major new version now finally starting to become somewhat useable. Lisp is nice because of its long history and stability. I
looked at the other languages but
either they did not interest me enough or they did not seem useful
enough for my purpose, which as I
indicated is a specific direction
and as such is strictly non-commercial (I mean I may use it to make something to sell but not write commercial software).
 
Post a Comment





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [ATOM]