0

我尝试使用AI::ExpertSystem::Advanced. 我在文档中读到我可以使用其他查看器。你可以在那里看到它:

viewer
是对象 AI::ExpertSystem::Advanced 将用于打印正在发生的事情并与用户交互(例如询问 ask_facts)。

如果您想使用 AI::ExpertSystem::Advanced::Viewer::Factory 未提供的查看器对象,这很实用。

viewer_class
是查看器的类名。使用 AI::ExpertSystem::Advanced::Viewer::Factory 提供的查看器,在这种情况下,您可以传递对象或仅传递您喜欢的查看器的名称。

或者在这个模块中我发现这个:

提供不同的视图,因此用户可以通过终端或友好的用户界面与专家系统进行交互。

来源的例子是:

my $ai = AI::ExpertSystem::Advanced->new(
                    viewer_class => 'terminal',
                    knowledge_db => $yaml_kdb,
                    initial_facts => ['I'],
                    verbose => 1);

我可以将我的浏览器或某些 CGI 界面用作 viewer_class 吗???什么时候是怎么用???我没有找到任何例子。

4

1 回答 1

1

您将不得不编写自己的“查看器”类。创建一个新模块,该模块扩展AI::ExpertSystem::Advanced::Viewer::Base并实现每个在该基类中具有存根的方法。`AI::ExpertSystem::Advanced::Viewer::Base'的源代码和文档将证明对这项任务很有帮助。

更新

要编写您自己的查看器类,请创建一个如下所示的文件:

package My::AI::Viewer;
use Moose;
extends 'AI::ExpertSystem::Advanced::Viewer::Base';

sub debug {
    # your implementation goes here
}

...当您完成该类时,我想您可以将其名称传递给viewer_class密钥下的专家系统模块的构造函数。

于 2013-05-25T13:06:14.743 回答