Location : Home > Languages > Perl > Package Title : AI::ExpertSystem::Simple |
![]() |
AI::ExpertSystem::Simple - システムシェルでの簡易なエキスパートシステム
このドキュメントは2003年6月10日にリリースされた AI::ExpertSystem::Simple の verion 1.2 を参照している。
本クラスは XML ナレッジベース及びユーザからの質問から規則を呼び出し、結論に到達する簡易なエキスパートシステムを実装している。
本クラスは1つのクラスが全ての処理を行い、残りの3つはこれを支援する。現時点ではできることはわずかであるが、将来のバージョンではログ生成など導入可能なサブクラスを追加する。
本クラスの使用法については bin ディレクトリにある simple shell またはナレッジベースの例や docs ディレクトリにあるドキュメントを見ればよい。
directory.
興味があれば同じ XML ナレッジベースを読む ruby バージョンがあるのでこれを読みとよい。
new( )
コンストラクタは引数なしでいくつかの基本的変数を初期化する。
reset( )
実行時に初期状態に戻すためにリセットする。
load( FILENAME )
本メソッドは XML のナレッジベースである FILENAME を引数に取り、その診断のためにデータ構造のパースを試みる。
process( )
いったんナレッジベースがロードされると本メソッドを呼び出すたびに診断が実行される。結果は以下の4通りである。
"question"
システムがユーザの問いへの質問を出す。
質問と妥当な返答のリストは get_question( ) メソッドで取得可能で、ユーザは answer( ) メソッドで回答する。
単に process( ) メソッドを再度呼び出せばよい。
"continue"
システムはデータを計算したが回答が得られず、終了してない。
これは将来のバージョンでは削除する。
単に process( ) メソッドを再度呼び出せばよい。
"finished"
診断が終了し、ユーザへの回答を見つけることができた。answer( ) メソッドで回答を示すことができる。
"failed"
診断は終了したがシステムはユーザへの回答を見つけることができなかった。ときおり起こる。
get_question( )
process( ) メソッドが "question" を返した場合、本メソッドは質問とそれへの妥当な回答のリストを返す。
answer( VALUE )
ユーザが、妥当な返答の中から選択して get_question( ) メソッドからの質問に回答する。
get_answer( )
process( ) メソッドが "finished" を返した場合、ユーザは本メソッドで回答を得る。
log( )
行動のリストを返し、ログをクリアする。
explain( )
どのように回答に達したかを説明する。説明もログに追加される。
_goal
ナレッジベースから結果データを取得するプライベートメソッド。
_rule
ナレッジベースから規則データを取得するプライベートメソッド。
_question
ナレッジベースから質問データを取得するプライベートメソッド。
_add_to_log
ログにメッセージを追加するプライベートメソッド。
_explain_this
属性がどのように設定されているかを説明するプライベートメソッド。
なし。
Simple->new() takes no arguments
コンストラクタが初期化される際に引数が不要。このメッセージは引数が与えられたときに出る。
Simple->reset() takes no arguments
メソッドが呼び出される際に引数が不要。このメッセージは引数が与えられたときに出る。
Simple->load() takes 1 argument
メソッドが呼び出される際に引数が1つだけ必要。このメッセージは引数が過不足したときに出る。
Simple->load() argument 1 (FILENAME) is undefined
メソッド呼び出しのときに正しい数の引数が渡されたが、最初の引数 FILENAME が未定義。
Simple->load() XML parse failed
XML Twig が XML ナレッジベースをパース使用としたらエラーが出た。
Simple->load() unable to use file
load( ) メソッドに渡されたファイルがファイルでないか可読でない。
Simple->process() takes no arguments
メソッドが呼び出される際に引数が不要。このメッセージは引数が与えられたときに出る。
Simple->get_question() takes no arguments
メソッドが呼び出される際に引数が不要。このメッセージは引数が与えられたときに出る。
Simple->answer() takes 1 argument
メソッドが呼び出される際に引数が1つだけ必要。このメッセージは引数が過不足したときに出る。
Simple->answer() argument 1 (VALUE) is undefined
メソッド呼び出しのときに正しい数の引数が渡されたが、最初の引数 VALUE が未定義。
Simple->get_answer() takes no arguments
メソッドが呼び出される際に引数が不要。このメッセージは引数が与えられたときに出る。
Simple->log() takes no arguments
メソッドが呼び出される際に引数が不要。このメッセージは引数が与えられたときに出る。
Simple->explain() takes no arguments
メソッドが呼び出される際に引数が不要。このメッセージは引数が与えられたときに出る。
なし。
test ディレクトリにある Simple.t ファイル及び bin ディレクトリにある simpleshell を見よ。
Peter Hickman (peterhi@ntlworld.com)
Copyright (c) 2003, Peter Hickman. All rights reserved.
本モジュールはフリーソフトウェアであり、Perl 本体と同等の条件で修正/再配布してもよい。
![]() |
Updated : 2008/10/08 |