• 策略的问题 策略(strategy)一词最初是一个军事术语,用在战争的谋划和行动中。现在,该术语普遍被用在商海(商海即是战场)中,适用于一个组织为了达到他们的目的所做的高级计划等。“比世界上其他的人卖出更多的多脂汉堡,赚更多的钱!”

    在专家系统中,strategy术语的一个用法是激活的冲突消解。那么你也许会说,“那好,我现在就将设计好我的专家系统,以便同一时刻仅有一条规则可能被激活,那么就用不上冲突消解了。”好消息是:如果你成功了,...

  • 查看规则在你运行CLIPS时,也许你想查看某一条规则,这里有一个命令:ppdefrule---恰当的打印规则---打印一条规则。查看某条规则,则指定其规则名为ppdefrule的参数即可,举例如下:

     

    CLIPS>(ppdefrule duck)

    (defrule MAIN::duck

    (animal-is duck)

    =>
    ...

  • 输入同一个规则名,如本例中的“duck”,将会更替前面规则名为“duck”里已经存在的一切。也就是说,CLIPS中可能有许多条规则,但是只能有一条被命名为“duck”的规则。这与其他程序语言中一个程序名只能标识唯一程序段是一样的道理。

    规则的常规语法如下所示:

     

    (defrule rule_name “optinal_comme...

  • 监视事实 CLIPS提供了一些帮助你调试程序的命令。其中一个命令可以帮助你连续监视事实(watch facts)的增加和撤销,这比你总是不断输入(facts)命令来查看事实表中的变化要方便得多。

    监视事实是通过输入(watch facts)命令来实现的,如下例子所示:

     

    CLIPS>(clear)

    CLIPS>(watch facts)

    CLIP...

  • 风格问题 用事实的第一个字段来描述后续字段的关系是很好的基于规则编程风格。在此风格中,第一个字段被称为关系,事实的剩余字段被用来指定值。例子:(grocery-list ice-cream coolies candy fudge-sauce)中破折号用来将多词组合成一个单字段。

    良好的文档处理在专家系统中比其他语言如Jave,C,Ada等更显重要,这是因为专家系统中的规则并不是普通的按顺序执行。CLIPS采用模板(deftemplate)的意义来描述事实以帮助程序员编写程...
  • 第三和第四种字段类型为数字型字段。该字段用来表示整型或浮点型字段。浮点型通常被简化为float。(float-point->float)

    CLIPS中的数字均为“long long”整型或双精度浮点型。没有小数点的数字即是整型,除非它们不属于整型范围。整型的范围由数字的位数决定,N,用来表示整型如下所示:

     

    -2N-1 … 2N-1-1

    &n...
  • 清除所有事实 Clear命令将所有的事实从内存中移出,代码如下所示:

     

    CLIPS>(facts)

    f-0 (initial-fact)

    f-1 (duck)

    f-2 (quack)

    For a total of 3 facts.

    CLIPS>(clear)

    CLIPS...
  • 第一章 事实 如果你忽视事实,你将永远不会担心自己的过错。

    本章将对专家系统的基本概念做简单的介绍。你将会知道在CLIPS中怎样插入和移出事实。如果你正在使用的机器是苹果机或者是IBM(或可兼容)的CLIPS视窗版本,那么你可以通过鼠标来选择相关的命令来代替输入命令行。键盘上的箭头键也可以移动光标对菜单选项进行选择。

    序言 CLIPS是一种被用来编写专家系统应用程序的计算机语言。专家系统是一组计算机程序,专门用来模仿人类专家的技能和知识。相比之...
  •     从今天开始,每天将CLIPS的用户手册翻译一部分出来,希望能坚持将其翻完。

    (1)

    CLIPS用户向导

    水银测试版

    2007.12.31 Joseph C. Giarratano, Ph.D.

    自述文件 通往智慧的第一步是你得承认你的无知,其次是你不必让全世界都知道你的无知。

    这部分被称作序言,但是在还没有...
  •    1.创建一个Win32 Dynamic-link library工程dlib,在向导中选择【A DLL that export some symbols】(实例性质)。默认的代码如下:

    //dlib.h  

    #ifdef DLIB_EXPORTS    //如果已经定义了DLIB_EXPORTS,则定义DLIB_API为__declspec(dllexport)...