Я разрабатываю экспертную систему, которая будет принимать решения о приеме с использованием PyClips. Однако код продолжал генерировать ошибки «из памяти». Я думаю, что я выделил свою проблему. Это что-то не так с моим файлом CLIPS. Надеясь, что кто-то может увидеть, что я делаю неправильно здесь. Это самая простая версия кода ... Я упростил ее для отладки: вот мой шаблон, и для аргумента есть только 1 правило: если стенограмма получена, то приложение завершено атрибут помечен как ИСТИНА.CLIPS бесконечные факты
; 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)))
затем добавляют I факт. Когда я нажимаю пробел, хотя ... окно в CLIPS начинает перегружаться тысячами фактов ... атрибут app-complete выглядит помеченным как TRUE, однако факты просто продолжают цикл и цикл, но без остановок. Когда становится слишком много фактов, я говорю о 100K или что-то в этом роде ... тогда CLIPS просто уходит ... Любая идея, что я делаю неправильно здесь? Мой синтаксис каким-то образом испорчен? Мои намерения состоят в том, чтобы иметь sqlite db, чтобы читать «факты» из db, чтобы система могла принимать решения .... но я не могу пройти мимо этого!
Спасибо @bogatron! – engr007
любая идея об этом? http://stackoverflow.com/questions/15963202/how-to-combine-these-two-rules-with-clips – engr007
Он выглядит несколько связанным с этим вопросом. Если мой ответ на этот вопрос является приемлемым, то, пожалуйста, нажмите ссылку «Принять», чтобы я знал, что это правильно, и любой, кто выполняет поиск по вашему вопросу, будет знать, что это приемлемое решение. Затем мы перейдем к соответствующему вопросу. – bogatron