2015-12-11 2 views
0

В клипах у меня есть следующий факт в памяти. и я хочу восстановить его каким-то правилом. Когда я его регенерирую, он не добавляет его к фактам. потому что все значения полей одинаковы. Любое решение этой проблемы?Не могу утверждать тот же факт в памяти

(objct (name food) (edible? yes) (isa Object)) 

ответ

1

Руководство по базовому программированию, раздел 13.4.4, «Настройка поведения фактов дублирования». http://clipsrules.sourceforge.net/documentation/v630/bpg.pdf

CLIPS> (clear) 
CLIPS> (deftemplate objct (slot name) (slot edible?) (slot isa)) 
CLIPS> (assert (objct (name food) (edible? yes) (isa Object))) 
<Fact-1> 
CLIPS> (assert (objct (name food) (edible? yes) (isa Object))) 
FALSE 
CLIPS> (facts) 
f-0  (initial-fact) 
f-1  (objct (name food) (edible? yes) (isa Object)) 
For a total of 2 facts. 
CLIPS> (set-fact-duplication TRUE) 
FALSE 
CLIPS> (assert (objct (name food) (edible? yes) (isa Object))) 
<Fact-2> 
CLIPS> (facts) 
f-0  (initial-fact) 
f-1  (objct (name food) (edible? yes) (isa Object)) 
f-2  (objct (name food) (edible? yes) (isa Object)) 
For a total of 3 facts. 
CLIPS>