-
2009-05-06
CLIPS中文用户手册(23) - [日志纪事]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://penning.blogbus.com/logs/38990286.html
查看
CLIPS提供了许多查看类信息的函数,如谓语函数,用来检测一个类是否为另一个类的超类或子类。
如果<class1>为<class2>超类,superclassp函数返回TRUE,否则返回FALSE。如果<class1>为<class2>的子类,subclassp函数返回TRUR,否则返回FALSE。两函数的通用格式为:
(function <class1><class2>)
举个例子:
CLIPS>(superclassp UPPIE YUPPIE)
TRUE
CLIPS>(superclassp YUPPIE UPPIE)
FALSE
CLIPS>(subclassp YUPPIE UPPIE)
TRUE
CLIPS>(subclassp UPPIE YUPPIE)
FALSE
CLIPS>
现在,让我们检查一下CLIPS是否接受了所有的新类。一种方式是通过执行list-defclasses命令。下面是该命令的输出:
CLIPS>(list-defclasses)
FLOAT
INTEGER
SYMBOL
STRING
MULTIFIELD
EXTERNAL-ADDRESS
FACT-ADDRESS
INSTANCE-ADDRESS
INSTANCE-NAME
OBJECT
PRIMITIVE
NUMBER
LEXEME
ADDRESS
INSTANCE
USER
INITIAL-OBJECT
UPPIE
CHILD
SUPPIE
MUPPIE
YUPPIE
PUPPIE
YUKKIE
For a total of 24 defcalsses.
CLIPS>
注意(list-defclasses)命令不会指示出分层类的结构。也就是说,该命令不会指示出某个类是另外一个类的超类或子类。
如果你往该表的下面看,你会看到所有你输入的用户自定义类:UPPIE,CHILD,YUPPIE,MUPPIE,SUPPIE,PUPPIE和YUKKIE。除了已经讨论的预定义系统类OBJECT和USER外,还有许多其他的预定义类。你应该像熟悉前几章所学的CLIPS类一样知道它们的名字。CLIPS的预定义类型同样也被作为类来定义,这样它们就可以使用COOL了。
图1.7为CLIPS参考指南中的一般继承图表,里面的箭头指向子类。

Fig.1.7 The Predefined CLIPS Classes
OBJECT类为树的根,由分支(branches)与子类相连。术语分支,边缘(edge),链接和弧(arc)是基本同类名词,它们均指代节点之间的连接。每个子类比它的超类要低一级。类由层级(level)编号。根类OBJECT为0级。
大级别数意味着高度定制(specificity)。术语specificity意味着类限制性越强。举个例子,LEXEME为SYMBOL和STRING的超类。如果你知道一个对象是LEXEME类,那么你就知道它只可能是SYMBOL或STRING。然而,如果一个对象是SYMBOL,那么它不可能是STRING,反之亦然。因此,SYMBOL和STRING类要比LEXEME更特殊。
browse-classes命令以首行缩进格式显示了类的层级。
CLIPS>(browse-classes)
OBJECT
PRIMITIVE
NUMBER
INTEGER
FLOAT
LEXEME
SYMBOL
STRING
MULTIFIELD
ADDRESS
EXTERNAL-ADDRESS
FACT-ADDRESS
INSTANCE-ADDRESS *
INSTANCE
INSTANCE-ADDRESS *
INSTANCE-NAME
USER
INITIAL-OBJECT
UPPIE
SUPPIE
MUPPIE
YUPPIE
PUPPIE
YUKKIE *
CHILD
YUKKIE *
CLIPS>
类名后面的星号指示它有多个超类。
(browse-classes)命令有一个可选参数,用来指定你想从哪个类开始查看。这对于当你对表中一些其他类不感冒时,非常方便。下面的例子阐述了怎样显示图1.6中部分YUPPIE图表,子树(subtrees)或子图表(subgraphs)依据来自树或图表中的节点和链接。
CLIPS>(browse-classes UPPIE)
UPPIE
SUPPIE
MUPPIE
YUPPIE
PUPPIE
YUKKIE *
CLIPS>(browse-classes YUPPIE)
YUPPIE
PUPPIE
YUKKIE *
CLIPS>(browse-classes YUKKIE)
YUKKIE *
CLIPS>
随机文章:
CLIPS中文用户手册(31) 2009-10-20CLIPS中文用户手册(30) 2009-09-02CLIPS中文用户手册(29) 2009-08-30CLIPS中文用户手册(28) 2009-08-23CLIPS中文用户手册(27) 2009-08-19
收藏到:Del.icio.us








评论
我是NPC,小店在正街邮政局对面丁家巷口,有空来坐坐,听听歌,看看电影.
回家一定去你店拜访!