一、
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