;; Шаблоны
;; Объект 'sign' - это симптом, связанный с органом
;; или придатком,
(deftemplate sign
(field symptom (type SYMBOL))
(field organ (type SYMBOL))
(field site (type SYMBOL)) )
;; Вектор 'diagnosis' классифицирует патологию
;; некоторого органа.
(deftemplate diagnosis
(field disorder (type SYMBOL))
(field organ (type SYMBOL) (default NIL))
)
;; Факты
;; Некоторые простые симптомы.
(deffacts the-facts
(sign (symptom pain) (organ abdomen) (site lower))
(sign (symptom poor-appetite))
(sign (symptom weight-loss))
)
;; ПРАВИЛА
;; Признаки: боль в нижней части брюшной полости И
;; плохой аппетит, И потеря веса.
(defrule stomach-tumor
(sign (symptom pain) (organ abdomen) (site lower))
(sign (symptom poor-appetite))
(sign (symptom weight-loss)) =>
(assert (diagnosis (disorder tumor) (organ stomach)) )
;; Признаки: боль (pain)- в нижней части (lower)
;; брюшной полости ( abdomen ) ,
;; И понос (diarrhea), И рвота (nausea),
;; но высокой температуры нет.
(defrule inflammationl
(sign (symptom pain) (organ abdomen) (site lower))
(sign (symptom diarrhea) )
(sign (symptom nausea)) =>
(assert (diagnosis (disorder inflammation)
(organ large-intestine)))
)
;; Признаки: боль (pain) в нижней части (lower)
;; брюшной полости (abdomen),
;; И понос (diarrhea),
;; И высокая температура (fever).
(defrule inflamation2
(sign (symptom pain) (organ abdomen) (site lower))
(sign (symptom diarrhea))
(sign (symptom fever)) =>
(assert (diagnosis (disorder inflammation)
(organ large-intestine)))
)
;; Признаки: боль в верхней правой части брюшной полости
;; И отсутствие высокой температуры.
(defrule gallstones
(sign (symptom pain) (organ abdomen)
(site upper-right)) =>
(assert (diagnosis (disorder gallstones)
(organ gallbladder)))
)
;; Признаки: боль в верхней правой части брюшной полости,
;; И рвота, И высокая температура.
(defrule gallbladder
(sign (symptom pain) (organ abdomen)
(site upper-right)) (sign (symptom vomiting))
(sign (symptom fever)) =>
(assert (diagnosis (disorder inflammation)
(organ gallbladder))) )