NAME

Hailo - A pluggable Markov engine analogous to MegaHAL

SYNOPSIS

use Hailo;

my $hailo = Hailo->new(
    # Or Pg, or Perl ...
    storage_class  => 'SQLite',
    brain_resource => 'brain.db'
);

while (<>) {
    $hailo->learn($_);
    print $hailo->reply($_), "\n";
}

DESCRIPTION

Hailo is a fast and lightweight markov engine intended to replace AI::MegaHAL. It has a lightweight Moose-based core with pluggable storage, tokenizerand engine backends.

It's faster than MegaHAL and can handle huge brains easily with the default SQLite backend. It can be used, amongst other things, to implement IRC chat bots with POE::Component::IRC.

Etymology

Hailo is a portmanteau of HAL (as in MegaHAL) and failo

ATTRIBUTES

brain_resource

The name of the resource (file name, database name) to use as storage. There is no default.

order

The Markov order (chain length) you want to use for an empty brain. The default is 5.

storage_class

The storage backend to use. Default: 'SQLite'.

tokenizer_class

The tokenizer to use. Default: 'Words';

token_separator

Storage backends may choose to store the tokens of an expression as a single string. If so, they will be joined them together with a separator. By default, this is "\t".

METHODS

new

This is the constructor. It accept the attributes specified in "ATTRIBUTES".

run

Run the application according to the command line arguments.

learn

Takes a line of UTF-8 encoded text as input and learns from it.

train

Takes a filename and calls learn on all its lines. Lines are expected to be UTF-8 encoded.

reply

Takes a line of text and generates a reply (UTF-8 encoded) that might be relevant.

learn_reply

Takes a line of text, learns from it, and generates a reply (UTF-8 encoded) that might be relevant.

save

Tells the underlying storage backend to save its state.

CAVEATS

All occurences of token_separator will be stripped from your input before it is processed, so make sure it's set to something that is unlikely to appear in it.

AUTHORS

Hinrik Örn Sigurðsson, hinrik.sig@gmail.com

Ævar Arnfjörð Bjarmason <avar@cpan.org>

LICENSE AND COPYRIGHT

Copyright 2010 Hinrik Örn Sigurðsson and Ævar Arnfjörð Bjarmason <avar@cpan.org>

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.