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


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.

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