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


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


(prior ?M&"0) (context 0)) =>

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

)

;;ОБРАБОТКА ПРОТИВОРЕЧИЙ

;;ЕСЛИ обнаруживается противоречие между предположением

;;и производными от него фактами в пределах одного и

;;того же мира и в одном и том же контексте,

;;ТО зафиксировать противоречие и удалить

;;противоречивые утверждения (объекты claim)

;;из базы фактов, (defrule contradiction

(declare (salience 100))

?W <- (world (tag ?N) (task check) (scope ?V)

(context ?S)) ?P <- (claim

(content ?F ?X) (scope ?V) (reason ?N)

(context ?S)) ?Q <- (claim

(content ?G&:(-not (eq ?G ?F)) ?X)

(scope ?V) (reason ?N) (context ?S)) =>

(printout t crlf

"CONTRADICTION: " ?F ?X " versus " ?G ?X "in world " ?N

;; "ПРОТИВОРЕЧИЕ между: " ?F ?X " и "?G ?X "в мире " ?N

t crlf) (retract ?P) (retract ?Q)

(modify ?W (task contra))

;; ЕСЛИ обнаруживается противоречие между предположением

;; и производными от него фактами в пределах одного и

;; того же мира, но в разных контекстах,

;; ТО зафиксировать противоречие.

(defrule transcontext

(declare (salience 90))

?W <- (world (tag ?N) (task check) (scope ?V)

(context ?T))

(claim (content ?F ?X) (scope ?V) (reason ?N)

(context ?S&:(< ?S ?T)))

(claim (content ?G&:(not (eq ?G ?F)) ?x') (scope ?V)

(reason ?N) (context ?T)) =>

(printout t crlf

"TRANSCONTEXT CONTRADICTION: " ?F ?X " versus "

?G ?X " in world " ?N

;; "ТРАНСКОНТЕКСТНОЕ ПРОТИВОРЕЧИЕ между: "

?F ?X ;; " и "?G ?X "в мире " ?N

t crlf) (modify ?W (task contra))

)

;; ЕСЛИ обнаруживается противоречие между

;; текущим "миром" в предположении о правдивости

;; и ранее покинутым "миром",

;; ТО зафиксировать противоречие.

(defrule transworld-truth (declare (salience 80))

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

(upper 0))

;; В текущем "мире" имеется утверждение,




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



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