CLIPS-规则、议程、结构处理、监视

一、

1、定义模板(deftemplate emergency(slot type ))

2、定义规则:

=>前的是前件,以后是后件。

defrule fire-emergency "fire-action"
(emergency(type fire))
=>
(assert (response(action "activate-sprinkler-system"))))
3、(run)运行CLIPS,运行后,议程中的规则被验证后放入事实,同时从议程中删除

4、事实可以在规则定义前或后增加

5、(list-defrules)列出当前规则

(list-deffacts)列出自动声明事实

 (list-deftemplates)列出模板

6、

CLIPS> (watch facts )
CLIPS> (watch statistics)
CLIPS> (watch activations)
打开事实、统计、规则监控

打开监控后,run显示状态

(run)
==>f-2    (response (action "activate-sprinkler-system"))
1 rulesfired       Run time is 0.0199999999999818 seconds.
50.0000000000455 rules per second.
3 mean number of facts (3 maximum).
1 mean number of instances (1 maximum).
1 mean number of activations (1 maximum).

(unwatch all)或(unwatch ...)撤销监控

7、(refresh fire-emergency)为撤销事实并重新声明它使规则再次触发。

8、以下为显示某个结构

 (ppdefrule fire-emergency)
(defrule MAIN::fire-emergency "fire-action"
   (emergency (type fire))
   =>
   (assert (response (action"activate-sprinkler-system"))))
CLIPS> (ppdeftemplate response)
(deftemplate MAIN::response
   (slot action))
CLIPS> (ppdeffacts initial-fact)

9、

 CLIPS> (undeffactsemergency)
[PRNTUTIL1] Unable to find deffacts emergency.

出错是因为没有把相应事实先删除 

10

deffacts test (test))

[PATTERN1] The symbol test has special meaning
and may not be used as a relation name.

出错因为用了关健字

11

 CLIPS> (undeffacts mytest)

CLIPS> (undeftemplate mytest)
CLIPS> (undefrule fire-emergency)

删除自动生成事实,模板,规则

二、操作

        CLIPS (Quicksilver Beta 09/24/07)
CLIPS> (facts)
f-0   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值