Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Perl and Artificial Intelligence.

by DigitalKitty (Parson)
on Dec 12, 2002 at 14:43 UTC ( #219330=perlquestion: print w/replies, xml ) Need Help??
DigitalKitty has asked for the wisdom of the Perl Monks concerning the following question:

Hi all.

Has anyone here contemplated or worked with perl in a AI capacity? The school I attend is offering another perl class ( finally ) and as a class project, I would like to write a perl based AI program.

I know it can be accomplished:

You can interact with the perl version of 'Alice' here:

What do you all think? Would this be a cool project? If you have any suggestions as to how I should start designing one, I would be most appreciative. Since 'Alice' was built using AIML ( Artificial Intelligence Markup Language ) which is a subset of XML, I think completing an XML course ( prior to starting the project ) would be of benefit.


Replies are listed 'Best First'.
Re: Perl and Artificial Intelligence
by cjf-II (Monk) on Dec 12, 2002 at 15:11 UTC
Re: Perl and Artificial Intelligence.
by Callum (Chaplain) on Dec 12, 2002 at 15:08 UTC
    There's a lot of things happening in this area, and if you want to look into doing AI work in Perl I'd advocate you start by checking out:

    AI modules on CPAN

    perl-ai mailing list

    extensive perl AI work on sourceforge

    Good luck and have fun -- I've played with the area in the past, and alice in particular can be very fun to work with. One of the advantages of Perl AI work over some others is that a lot of it is quite modular -- something missing from many other parts of AI work.

Re: Perl and Artificial Intelligence.
by dbp (Pilgrim) on Dec 12, 2002 at 16:11 UTC

    When I was in college the professor who taught the AI lab course strongly encouraged us to use languages like awk and perl. It seemed somewhat strange at first (why aren't we using Lisp?) but I'd say that my experience with AI and Perl, more than anything else, really got me into the language. When you're doing AI work, you don't want to worry about the details. Perl lets you forget about most of the details. What's more, languages with powerful text processing facilities allow you to deal with noisy inputs without much hassle. Pattern matching, built in hashes, etc, all make rapid prototyping sublimely easy. Also, you can get a lot of mileage out of online databases such as WordNet in a lot of language-based AI tasks. Perl's net modules come in handy for that.

    Of course, certain AI tasks aren't well suited to Perl. The best example I can think of is heuristic search. It's very easy to write a search-based program in Perl, you just spend a lot of time waiting for it to finish. This is mostly a result of Perl's ridiculously slow subroutine calls (I've benched it and even gawk kills perl at sub calls, even without passing args), since most search algorithms do a lot of recursion if you're trying to do something interesting (although you could probably modify some techniques to be iterative, perhaps overcoming this issue).

    As to your project, I think it's a great idea. Anything that is designed to interact with people can be really entertaining to work on. As for XML: knowing XML is useful but I'd try to resist looking at Alice's code. You're more likely to come up with a really cool way of doing this if you aren't contaminated with preconceptions about the "right" way to go about it.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://219330]
Approved by mikeirw
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2018-06-24 23:23 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.