После загрузки бинарного изображения вы не можете создавать новые конструкции. Упорядоченные факты и шаблоны (те, которые не имеют соответствующей конструкции deftemplate) автоматически создают deftemplate. Если ваши правила еще не создали этот автоматический deftemplate, его нельзя создать после того, как вы уже загрузили двоичное изображение:
CLIPS (6.31 6/12/19)
CLIPS> (bsave example.bin)
TRUE
CLIPS> (bload example.bin)
TRUE
CLIPS> (assert (be-contact-model.riskLevel "PASS"))
[FACTRHS1] Template be-contact-model.riskLevel does not exist for assert.
CLIPS>
Если у вас есть правило, которое соответствует упорядоченному факту, вы можетеУтвердите этот тип факта после того, как вы загрузили двоичное изображение.
CLIPS> (clear)
CLIPS>
(defrule r1
(be-contact-model.riskLevel ?)
=>)
CLIPS> (bsave example.bin)
TRUE
CLIPS> (clear)
CLIPS> (bload example.bin)
TRUE
CLIPS> (assert (be-contact-model.riskLevel "PASS"))
<Fact-0>
CLIPS>
Таким образом, тот факт, что вы получаете сообщение об ошибке, будет означать, что вы пытаетесь утвердить факт, что ни одно из ваших правилможет совпадать.
Похоже, ваши факты являются парами атрибут / значение, поэтому одну вещь, которую вы можете сделать, если вы утверждаете факты, которым не может соответствовать ни одно правило, является создание универсального deftemplate для представления всех из них:
CLIPS> (clear)
CLIPS> (deftemplate av (slot a) (slot v))
CLIPS> (assert (av (a be-contact-model.riskLevel) (v "PASS")))
<Fact-1>
CLIPS>