2

这是一个家庭作业,但我很难在网上找到好的 jess 信息。我正在尝试使用多槽来解决问题,但我找不到任何关于如何匹配不同值的信息。我有这个:

(deftemplate patient (slot name)(multislot symptoms))

(deffacts init 
(patient (name john) (symptoms very-high-fever cough)))

我怎么能匹配左手边只是一个非常高烧?如果我知道发高烧是第一个症状,这很有效,但我不能确定这一点,所以如果发高烧是其中一种症状,我需要能够匹配。

(defrule high-fever
(patient (name ?n)(symptoms very-high-fever ?))
=>
(printout t ?n " has a high fever." crlf))

我尝试了各种字段约束组合,但我似乎无法做到正确,网上也没有任何线索给我任何线索。

谢谢。

4

1 回答 1

0

在要匹配的项目前后使用空白多字段;它们匹配零个或多个项目。所以,像

(patient (name ?n) (symptoms $? very-high-fever $?))

将匹配任何有高烧症状的患者在任何位置。

于 2013-09-27T22:22:37.510 回答