NAME

AI::FreeHAL::Engine - Engine of FreeHAL, a self-learning conversation simulator which uses semantic nets to organize its knowledge.

SYNOPSIS

runner.pl shell

DESCRIPTION

FreeHAL is a self-learning conversation simulator which uses semantic nets to organize its knowledge.

FreeHAL uses a semantic network, pattern matching, stemmers, part of speech databases, part of speech taggers, and Hidden Markov Models, in order to imitate a very close human behavior within conversations. Online- as Download-Versions are supporting the synthesing of the speech. Through communicating (via keyboard) the program enhances his knowledge-database. It supports the languages German and English.

In opposite to the most free and commercial chatbots FreeHAL learns self-reliant conception of causal relations on its own.

FreeHAL runs on Microsoft Windows, GNU/Linux, Unix, BSD and Mac and is licensed under the GNU GPL v3.

This package contains:

# AI::Util =item # AI::SemanticNetwork =item # AI::POS =item # AI::Selector =item # AI::Tagger

FUNCTIONS

build_builtin_table($language)

Returns a hash reference containing word <-> part of speech pairs.

$language is a language string, e.g. "en" or "de".

get_verb_conjugation_table()

Returns an array containing arrays of two words, e.g.:

[
  [ 'am', 'are' ]
]

is_verbose()

Returns a boolean whether FreeHAL should be verbose.

get_client_response( $CLIENT_ref )

Returns the next line sent from socket reference $CLIENT_ref.

load_pos()

Detect part of speech files (lang_XY/*.{brain,memory}) and load them.

ascii($sent)

Returns $sent without non-ascii characters.

try_use_lowlatency_mode()

Returns nothing.

First it checks whether low-latency mode is enabled. If success, $data->{abilities}->{'tagger'} is set to 2 and part-of-speech files are loaded.

is_name($name)

Checks whether $name is a name. A boolean will be returned.

split_sentence($CLIENT_ref, $text)

$text will be parsed using two parsers:

Parse::RecDescend

First FreeHAL tries to parse $text using a parser built with Parse::RecDescend. A generic grammer for english and german is used.

Traditional Parser

This parser is used by FreeHAL since Spring 2008. It can parse every sentence, but has also some bugs. That's why we try to replace it with a new one in future.