【发布时间】:2013-03-31 02:47:33
【问题描述】:
我正在开发一个专家系统,它将使用 PyClips 做出录取决定。但是,代码不断产生“内存不足”错误。我想我已经孤立了我的问题。我的 CLIPS 文件有问题。希望有人能看到我在这里做错了什么。这是代码的最简单版本....为了调试它,我进行了简化:所以这是我的模板,为了论证,只有一条规则:如果收到成绩单,则 app-complete属性被标记为 TRUE。
; template for application facts
(deftemplate application "structure of an application"
(slot app-id (type INTEGER))
(slot app-complete (type SYMBOL))
(slot transcript-received (type SYMBOL))
)
(defrule complete "rule for app completeness"
?f <- (application
(transcript-received Yes)
)
=>
(modify ?f
(app-complete TRUE)
)
)
; end.
所以当我这样做时(assert (application (app-id 123) (transcript-received Yes)))
然后,我其实是加了。
但是,当我单击运行时.... CLIPS 中的窗口开始因数千个事实而超载... app-complete 属性看起来被标记为 TRUE,但是,事实只是不停地循环和循环。当事实太多时,我说的是100K之类的……然后CLIPS就退出了……知道我在这里做错了什么吗?我的语法以某种方式搞砸了?我的意图是让一个 sqlite 数据库能够从数据库中读取“事实”,以便系统能够做出决定......但我无法超越这个!
【问题讨论】:
标签: clips expert-system pyclips knowledge-capture