Peter Hickman

NAME

AI::ExpertSystem::Simple::Rule - A utility class for a simple expert system

VERSION

This document refers to verion 1.2 of AI::ExpertSystem::Simple::Rule, released June 10, 2003

SYNOPSIS

This is a utility class for AI::ExpertSystem::Simple

DESCRIPTION

Overview

This class handles the rules

Constructors and initialisation

new( NAME )

The constructor takes one argument, the NAME of the rule. The consition and actions are added later.

Public methods

reset( )

Resets the state of the rule back to active and all the condition attributes to untested.

add_condition( NAME, VALUE )

This adds a condition attribute name / value pair.

add_action( NAME, VALUE )

This adds an action attribute name / value pair.

name( )

Returns the name of the rule.

state( )

Returns the current state of the rule.

given( NAME, VALUE )

The NAME / VALUE attribute pair is checked against the rule's conditions to see if a condition is met and the state of the rule is changed in light of the result.

actions( )

Returns a list of the actions set in the rule.

conditions( )

Returns a list of the conditions matched in the rule.

unresolved( )

Returns a list of all the unresolved condition of the rule.

Private methods

None

ENVIRONMENT

None

DIAGNOSTICS

Rule->new() takes 1 argument

When the constructor is initialised it requires one argument. This message is given if more or less arguments were supplied.

Rule->new() argument 1 (NAME) is undefined

The corrct number of arguments were supplied to the constructor, however the first argument, NAME, was undefined.

Rule->reset() takes no arguments

When the method is called it requires no arguments. This message is given if more or less arguments were supplied.

Rule->add_condition() takes 2 arguments

When the method is called it requires two arguments. This message is given if more or less arguments were supplied.

Rule->add_condition() argument 1 (NAME) is undefined

The corrct number of arguments were supplied with the method call, however the first argument, NAME, was undefined.

Rule->add_condition() argument 2 (VALUE) is undefined

The corrct number of arguments were supplied with the method call, however the second argument, VALUE, was undefined.

Rule->add_condition() has already been set

This method has already been called and the value set. It cannot be called twice.

Rule->add_action() takes 2 arguments

When the method is called it requires two arguments. This message is given if more or less arguments were supplied.

Rule->add_action() argument 1 (NAME) is undefined

The corrct number of arguments were supplied with the method call, however the first argument, NAME, was undefined.

Rule->add_action() argument 2 (VALUE) is undefined

The corrct number of arguments were supplied with the method call, however the second argument, VALUE, was undefined.

Rule->add_action() has already been set

This method has already been called and the value set. It cannot be called twice.

Rule->name() takes no arguments

When the method is called it requires no arguments. This message is given if more or less arguments were supplied.

Rule->state() takes no arguments

When the method is called it requires no arguments. This message is given if more or less arguments were supplied.

Rule->given() takes 2 arguments

When the method is called it requires two arguments. This message is given if more or less arguments were supplied.

Rule->given() argument 1 (NAME) is undefined

The corrct number of arguments were supplied with the method call, however the first argument, NAME, was undefined.

Rule->given() argument 2 (VALUE) is undefined

The corrct number of arguments were supplied with the method call, however the second argument, VALUE, was undefined.

Rule->actions() takes no arguments

When the method is called it requires no arguments. This message is given if more or less arguments were supplied.

Rule->conditions() takes no arguments

When the method is called it requires no arguments. This message is given if more or less arguments were supplied.

Rule->unresolved() takes no arguments

When the method is called it requires no arguments. This message is given if more or less arguments were supplied.

BUGS

None

FILES

See Rules.t in the test directory

SEE ALSO

AI::ExpertSystem::Simple - The base class for the expert system

AI::ExpertSystem::Simple::Goal - A utility class

AI::ExpertSystem::Simple::knowledge - A utility class

AUTHORS

Peter Hickman (peterhi@ntlworld.com)

COPYRIGHT

Copyright (c) 2003, Peter Hickman. All rights reserved.

This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.