CLIPS关键字/保留名使用规则咨询:槽名矛盾及遗漏规则疑问
CLIPS保留名称与关键字上下文规则解析
核心规则澄清
事实首字段的限制
test、and、or、not、declare、logical、object、exists、forall这些词绝对不能作为任何事实的第一个字段,其他场景语法上合法,但官方不建议使用(避免混淆解析逻辑)。
槽名规则的例外说明
参考手册9.3.3节提到name和is-a不能作为自定义槽名,但代码库中出现(slot name)的场景,是因为:
name是CLIPS面向对象系统中内置的默认槽,用于存储实例的标识符,属于系统预定义的特殊槽,并非用户自定义的槽名。手册禁止的是用户主动将这两个词作为自定义槽名使用,而系统内置的用法是合法且被框架默认支持的。
遗漏规则与通用合法性确认
- 除上述明确限制的名称外,诸如
deffacts这类顶层构造器名称,只要不是用于其原生语法场景(比如不要把deffacts作为事实首字段、自定义槽名或函数名来用),在其他非自身用途场景下是合法的。 - 补充遗漏的关键规则:顶层构造器名称(如
defrule、deftemplate、defclass)不能作为函数名使用,也不能作为事实模板的名称;另外,TRUE、FALSE这类布尔常量词也不能作为事实首字段或自定义槽名。
内容的提问来源于stack exchange,提问作者Christian Ivicevic
相关产品推荐
相关产品推荐

