The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

AI::MegaHAL - Perl interface to the MegaHAL natural language conversation simulator.

SYNOPSIS

    use AI::MegaHAL;
    
    my $megahal = AI::MegaHAL->new('Path'     => './',
                               'Banner'   => 0,
                               'Prompt'   => 0,
                               'Wrap'     => 0,
                               'AutoSave' => 0);
    
    my $text = $megahal->initial_greeting();
    
    $text = $megahal->do_reply($message);
    
    $megahal->learn($message);

DESCRIPTION

Conversation simulators are computer programs which give the appearance of conversing with a user in natural language. Such programs are effective because they exploit the fact that human beings tend to read much more meaning into what is said than is actually there; we are fooled into reading structure into chaos, and we interpret non-sequitur as valid conversation.

This package provides a Perl interface to the MegaHAL conversation simulator written by Jason Hutchens.

CONSTRUCTOR

    $megahal = AI::MegaHAL->new('Path'     => './',
                               'Banner'   => 0,
                               'Prompt'   => 0,
                               'Wrap'     => 0,
                               'AutoSave' => 0);

Creates a new AI::MegaHAL object. The object constructor can optionaly receive the following named parameters:

Path

The path to MegaHALs brain or training file (megahal.brn and megahal.trn respectively). If 'Path' is not specified the current working directory is assumed.

A flag which enables/disables the banner which is displayed when MegaHAL starts up. The default is to disable the banner.

Prompt

A flag which enables/disables the prompt. This flag is only useful when MegaHAL is run interactively and is disabled by default.

Wrap

A flag which enables/disables word wrapping of MegaHALs responses when the lines exceed 80 characters in length. The default is to disable word wrapping.

METHODS

initial_greeting

 $text = $megahal->initial_greeting();

Returns a string containing the initial greeting which is created by MegaHAL at startup.

do_reply

 $text = $megahal->do_reply($message);

Generates reply $text to a given message $message.

learn

 $megahal->learn($message);

Learns from $message without generating a response

BUGS

None known at this time.

SEE ALSO

POE::Component::AI::MegaHAL - IRC bot,

http://teaandbiscuits.org.uk/drupal/node/65 - Irssi IRC bot,

Hailo - A pluggable Markov engine analogous to MegaHAL

AUTHOR

The Perl AI::MegaHAL interface was written by Cory Spencer <cspencer[at]sprocket.org>.

Now maintained by Alexandr Ciornii <alexchorny[at]gmail.com>.

MegaHAL was originally written by and is copyright Jason Hutchens <hutch[at]ciips.ee.uwa.edu.au>