Иллюстрированный самоучитель по введению в экспертные системы


Полный листинг программы - часть 9


противоречит " ;; ?G ?X " в мирах " ?N "|" ?M

t crlf) (retract ?S) (modify ?W (task contra) (prior ?U))

;;ОПЕРАЦИИ УДАЛЕНИЯ

;; Удаление дизъюнкта, (defrule clean-context

(declare (salience 50)) (world

(tag ?N)

(task ?T&:(or (eg ?T contra) (eq ?T back))

(context ?S&~0))

?F <- (claim (reason ?N) (context ?S)) =>

(retract ?F)

;; ЕСЛИ текущий мир проанализирован только

;; в предположении о правдивости,

;; ТО проанализировать его, предполагая

;; лживость персонажа.

(defrule switch-scope

(declare (salience 40))

?W <- (world (tag ?N) (scope truth) (task contra)

(context ?C&~1) =>

(modify ?W (scope falsity) (task check))

)

;; Удалить все утверждения, сделанные в предположении

;; о правдивости, перед тем как анализировать

;; предположение о лживости, (defrule sweep-claims

(declare (salience 100))

(world

(tag ?N) (scope truth) (context ?C&~1)

(task ?T&:(or (eq ?T contra) (eq ?T back))))

?F <- (claim (reason ?N) (scope truth) (context ?D&~1)) =>

(retract ?F)

)

;; Удалить все объекты statement, основанные на предположении

;; о правдивости, перед тем как анализировать

;; предположение о лживости, (defrule sweep-statements

(declare (salience 100))

(world

(tag ?N) (task ?T&:(or (eq ?T contra)

(eq ?T back))) (scope truth) (context 0))

?F <- (statement (reason ?N) (scope truth)) =>

(retract ?F)

)

;; Удалить утверждения, связанные с "миром",

;; в котором обнаружены противоречия.

(defrule kill-claims

(declare (salience 100)) (world (tag ?N)

(task clean)) ?F <- (claim (reason ?N))

=>

(retract ?F)

)

;; ЕСЛИ все ненужные объекты claim или statement удалены,

;; ТО удалить объект world, которому назначена задача clean,

(defrule stop-killing

(declare (salience 100))

?W <- (world (tag ?N) (task clean))

(not (claim (reason ?N))) =>

(retract ?W)

)

;;ОПЕРАЦИИ ОТКАТА

Хронологический откат к тому "миру", который был покинут без выполнения анализа в предположении о лживости (поле scope содержит значение truth, а поле task - значение check).




Начало  Назад  Вперед



Книжный магазин