没有合适的资源?快使用搜索试试~ 我知道了~
首页clips中文手册,学clips必备
资源详情
资源评论
资源推荐

第一章事实
如果你忽视事实,你将永远不会担心自己的过错。
本章将对专家系统的基本概念做简单的介绍。你将会知道在 中怎样插入和移出事实。如
果你正在使用的机器是苹果机或者是 (或可兼容)的 视窗版本,那么你可以通过鼠标来
选择相关的命令来代替输入命令行。键盘上的箭头键也可以移动光标对菜单选项进行选择。
序言
是一种被用来编写专家系统应用程序的计算机语言。专家系统是一组计算机程序,专门
用来模仿人类专家的技能和知识。相比之下,一些普通的程序如报表程序,文本处理器,电子表格,
电脑游戏等等,并没有包含人类的技能和知识。(专家的定义之一:就是某人带着他的公文包在离
家 公里之外。)
之所以被称之为专家系统工具,是因为它是一个开发专家系统的完整环境,包括一个整
合版本和一个调试工具。壳这一词被保留在 负责推理的部分中。 的壳提供了专家系统
的基本元素:
事实表和实例表:数据的全局存储。
数据库:包括所有的规则和规则表。
推理机:控制所有规则的执行。
的程序一般包含有规则,事实和对象。推理机决定了哪条规则应该被执行和在什么时候
被执行。一个用 写成的基于规则库的专家系统程序是一个数据驱动型程序,程序里的事实,
对象数据通过推理机的激活执行。
这里有一个例子可以帮助你知道 是如何与其他程序语言如
,,, 和 区别开来的。在程序语言中,执行并不一定需要数据,那是
因为在那些语言中的声明已经足够引起执行了。举例说明,在 语言中, 的声明
会被立即执行,该声明是一个完整的声明,并不需要额外的数据去驱动执行。然而,在 中,
规则的执行必需数据来驱动。

最初, 仅有表示规则和事实的能力,然而,在 版本中已经允许规则与对象的匹配,
与规则与事实匹配一样。同时,通过发送消息来应用对象不必需要规则了,如果你仅仅只是用对象,
那么推理机都可以不需要。在第一章到第七章中,我们将讨论 的事实和规则,八到十二章中
包含了 的对象特点。
开始和结束
你可以在你的系统中输入相应的运行代码来启动 ,你将看到 的提示如下所示:
此时,你可以开始在 中直接输入命令,这种直接输入命令的方式被称之为最高阶层。如果你
拥有 的图形界面版本(),你也可以用鼠标选择相应的菜单来代替输入命令行。请参考
版本的 界面向导,探讨一下其里面的命令支持。在本书中,为了简约和一致性,
我们假设所有的命令均为输入方式。
离开 的一般方式是输入 !"# 命令,如下:
( !"#)
按照 提示点击返回键。
建表
与其他编程语言一样, 也有关键字。举个例子,如果你想在事实表中输入数据,你可以
使用 $$ %# 命令。
作为一个 $$ %# 实例,在 提示后面正确输入下面的命令:
&$$ %#&'()**
这里,$$ %# 命令以&'()*作为其参数。记住点击回车键将命令行发送到 。你将看到如下响
应:
+(#

这表示 已经存储了 '() 的事实,并将其标识为 。在 中,尖括弧被用来作为条目的
分隔符。 会自动的增加事实的编号,随着一个或更多的事实被添加,从最高事实索引进行列
表。
注意&$$ %#*和它的参数&'()*均用圆括弧括住,像其他一些专家系统语言一样, 采用
式样语法,用圆括弧作为分隔符。虽然 并不是采用 语言编写,但是 影响了
的发展。
检查两遍
假设你想查看一下事实表中的内容,如果你的 支持 ,你便可以在菜单中选择相应的
命令,或者,你还可以通过键盘键入相应的命令行。接下来,我们将来描述一下键盘命令。
查看事实库的键盘命令是 ,(#$ 命令。在 提示后输入&,(#$*, 响应后会将事实表
列出。一定记得将命令用圆括弧括住,否则 会不识别。在该实例中,&,(#$*命令的句法如下:
&,(#$*
,&"-"#".,(#*
,&'()*
/%#/#./,,(#$
, 和 , 为 对事实分配的事实标识。每个事实被添加进 ,被分配唯一的事实标识,
以“,0开头,后面的数字为事实索引。当启动 ,输入如 (. % 或 % $ #(随后有详细的探讨)
后,事实索引将会被归零,然后随着每个事实的添加($$ %#)逐步加一。((. %)和&% $ #*命
令同时增加一个&"-"#".,(#*事实,编号为 ,。在 的早期版本中,该事实被 隐式用
来初始化一些规则和被用户显式调用来使事实库初始化,但是现在,该事实仅被用来提供向后兼容
性。
如果你将 '() 在事实表中输入两次,将会出现什么结果呢?让我们试试看,增加一个新事实
('()),然后调用(,(#$)命令如下所示:
&$$ %#&'()**
1
&,(#$*

,&"-"#".,(#*
,&'()*
/%#/#./,,(#$
返回 1 消息,表示不可能执行该条命令,且你将只能见到原始的事实:“,
&'()*0。这说明 不能接受事实的复制输入。然而, 中还有一个超越命令:$ #,(#
'2."(#"/-,该命令允许事实的重复输入。
当然,你可以输入其他不同的事实。举个例子,增加一个&3'()*事实,然后运行&,(#$*命令,
如下:
&$$ %#&3'()**
+,(#
&,(#$*
,&"-"#".,(#*
,&'()*
,&3'()*
/%#/#./,,(#$
注意,(3'())事实已经被添加到事实表中了。
事实也会被移出和撤销。当一个事实被撤销,其他的事实索引不会改变,因此会出现事实索引
的“丢失”。类似于一个足球运动员离开球队如果没有被补充,其他队员的号码不会因为缺失号码而
发生调整(除非他们非常讨厌这个离队的家伙,想要忘掉他曾在队中效力过)。
清除所有事实
. % 命令将所有的事实从内存中移出,代码如下所示:
&,(#$*
,&"-"#".,(#*
,&'()*
,&3'()*
/%#/#./,,(#$
&(. %*
事实表中的所有事实被清除。

((. %)命令实质上将 恢复到起始启动状态,它清除了 的内存空间,重置事实
标识为 和增加了一个&"-"#".,(#*事实。增加&-"4."$'()*事实,然后查看事实表,会发现
&-"4."$'()*的事实标识为 ,,这是因为&(. %*命令重置了事实表的标识。该命令事实上并
不只是起清除所有事实的作用,除此之外,它还清除所有的规则,在下一章中你就会看到。
下面的实例显示了怎样将三个事实加入到事实表,并用&,(#$*命令查看,然后&(. %*命令将这
三个事实从内存中清除并重置事实标识为 ,。
&(. %*
&$$ %#&*&5*&(**
+(#$
&,(#$*
,&"-"#".,(#*
,&*
,&5*
,&(*
/%#/#./,6,(#$
&,(#$*
,&"-"#".,(#*
,&*
,&5*
,&(*
/%#/#./,6,(#$
&,(#$*
,&*
,&5*
,&(*
/%#/#./,,(#$
&,(#$*
,&5*
,&(*
/%#/#./,,(#$
&,(#$*
,&"-"#".,(#*
,&*
,&5*
/%#/#./,,(#$
&,(#$*
,&"-"#".,(#*
,&*
,&5*
/%#/#./,,(#$
剩余63页未读,继续阅读











安全验证
文档复制为VIP权益,开通VIP直接复制

评论9