CLIPS 中所有关键字/保留名称的全面概述

问题描述 投票:0回答:1

我一直在研究CLIPS参考手册,并试图了解哪些关键字/名称在哪种上下文中被保留。最初,这是为了弄清楚除了附录 H:保留函数名称中列出的函数之外,还保留了哪些名称。

据我了解,适用以下规则:

  1. test
    and
    or
    not
    declare
    logical
    object
    exists
    forall
    》作为任何事实的第一个字段都是非法的;否则,尽管不鼓励,但它们是合法的。
  2. 根据第 9.3.3 节,
  3. name
    is-a
    不能是插槽名称,但在其他情况下似乎是合法名称。然而,CLIPS 存储库中的示例与此相矛盾,因为我在其中看到了
    (slot name)
    。这里的设计意图是什么?

我想知道是否还有更多我错过的规则,或者是否可以说所有其他名称(甚至可能是像

deffacts
这样的名称)在实际用途之外都是合法的。

clips
1个回答
0
投票

大多数名称在具有特殊含义的上下文之外都是合法的。因此,符号 is-a 和 name 不能用作 defclass 构造的槽名称(它们用于支持继承和消息传递),但它们可以用作 deftemplate 构造的槽名称(早于 defclass 构造) .

例如,这都是合法的:

         CLIPS (6.4.1 4/8/23)
CLIPS> 
(defrule defclass
   (deftemplate)
   (is-a)
   (name)
   (declare)
   (+ 3 4)
   (slot)
   =>)
CLIPS> (assert (deftemplate) (is-a) (name) (declare) (+ 3 4) (slot))
<Fact-6>
CLIPS> (facts)
f-1     (deftemplate)
f-2     (is-a)
f-3     (name)
f-4     (declare)
f-5     (+ 3 4)
f-6     (slot)
For a total of 6 facts.
CLIPS> (agenda)
0      defclass: f-1,f-2,f-3,f-4,f-5,f-6
For a total of 1 activation.
CLIPS>
© www.soinside.com 2019 - 2024. All rights reserved.