NAME
POE::Component::Hailo - A non-blocking wrapper around Hailo
SYNOPSIS
use POE;
use POE::Component::Hailo;
POE::Session->create(
package_states => [
main => [ qw(_start learned replied) ],
],
);
$poe_kernel->run();
sub _start {
my $heap = $_[HEAP];
$heap->{hailo} = POE::Component::Hailo->spawn(
alias => 'hailo',
Hailo_args => {
order => 5,
storage_class => 'SQLite',
brain_resource => 'hailo.sqlite',
},
);
$poe_kernel->post(hailo => learn => 'This is a sentence');
}
sub learned {
my $error = $_[ARG0];
print "Learned" if !defined $error;
}
sub replied {
my $reply = $_[ARG0];
die "Didn't get a reply" if !defined $reply;
print "Got reply: $reply\n";
}
DESCRIPTION
POE::Component::Hailo is a POE component that provides a non-blocking wrapper around Hailo. It accepts the events listed under "INPUT" and emits the events listed under "OUTPUT".
METHODS
spawn
This is the constructor. It takes the following arguments:
'alias', an optional alias for the component's session.
'Hailo_args', a hash reference of arguments to pass to Hailo's constructor.
METHODS
session_id
Takes no arguments. Returns the POE Session ID of the component.
INPUT
The POE events this component will accept.
learn
train
reply
learn_reply
All these events take two arguments. The first is an array reference of arguments which will be passed to the Hailo method of the same name. The second (optional) is a hash reference You'll get this hash reference back with corresponding event listen under "OUTPUT".
shutdown
Takes no arguments. Terminates the component.
OUTPUT
The component will post these events to your session.
hailo_learned
hailo_trained
hailo_replied
hailo_learn_replied
ARG0 is an array reference of arguments returned by the underlying Hailo method. ARG1 is the context hashref you provided (if any).
AUTHOR
Hinrik Örn Sigurðsson, hinrik.sig@gmail.com
LICENSE AND COPYRIGHT
Copyright 2010 Hinrik Örn Sigurðsson
This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.