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


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


(if (eg ?P Т) then F else T)

)

;; ПРАВИЛА

Распаковка высказываний

;;ЕСЛИ объект world базируется на предположении о

;;правдивости высказывания,

;;ТО предположить, что персонаж говорит правду и что

;;высказывание истинно.

;;Значение поля TAG объекта statement передается в поле

;;reason объектов claim.

;;ПРИМЕЧАНИЕ. Это правило не используется для

;;распаковки метавысказываний. (defrule unwrap-true

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

(done 0)) ?S <- (statement (speaker ?X)

(claim ?PS:(not (eg ?P SAY)) $?Y) (done 0)) =>

(printout t crlf

"Assuming " T ?X " and " ?P $?Y " in world " ?N

;; "Предполагается " T ?X " and " ?P $?Y " в мире " ?N t crlf

)

;;Зафиксировать, что высказывание было распаковано

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

;;modify ?S (tag ?N) (done 1))

;;Зафиксировать в объекте world, что высказывание

;;распаковано, modify ?W (done 1))

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

;;правдолюбцем.

(assert (claim (content Т ?Х) (reason ?N)

(scope truth) ) )

;; Предполагается, что утверждение в высказывании

;; истинно. (assert (claim (content ?P $?Y) (reason ?N)

(scope truth)))

)

;; ЕСЛИ объект world базируется на предположении о

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

;; ТО предположить , что персонаж говорит правду и что

;; высказывание истинно.

(defrule unwrap-true-state

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

(done 0)) ?S <- (statement (speaker ?X) (claim SAY ?Z $?Y)

(done 0)) =>

(printout t crlf "Assuming " T ?X " and " ?Z " says " $?Y

" in world " ?N

;; "Предполагается " T ?X " и " ?Z " говорит " $?Y

;; " в мире " ?N t crlf

)

;; Зафиксировать, что высказывание было распаковано

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

(modify ?S (tag ?N) (done 1))

; ; Предположим, что персонаж в текущем мире является



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



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