0
일치하는 규칙을 정의하는 데 어려움이 있습니다. Jess 일치 규칙이 실행되지 않습니다.
(defrule set-current
?desAct <- (Actuator (name 0) (StrokeLength ?sl) (Force ?f)
(nominalCurrent ?c3))
(test (eq ?c3 0)) ; I have defined this to change only if value is not
; set yet
?act <- (Actuator (inputVoltage ?v1) ; actuator that has matching slots
(StrokeLength ?sl1)
(nominalCurrent ?c1))
(test (eq ?sl1 ?sl)) ; for same stroke length I want to modify
; nominalCurrent of ?desAct
=>
(modify ?desAct (nominalCurrent ?c1))
)
? 내가 몇 가지 기준에 따라 기존의 사실에 따라 변경하려는 값을 슬롯 사실을 나타냅니다 desAct. 나는이 규칙은 다음과 같은 사실에 대해 발생하지 않는 이유를 모르겠습니다 :이 규칙 이름을 0으로 그 액츄에이터를 기대하고
f-4 (MAIN::Actuator (name 4) (inputVoltage 12) (Force 17) (StrokeLength 10) (length 62) (width 18) (height 15.1) (motorType DC) (speedAtNomLoad 25) (weight 28) (nominalCurrent 0.46) (highTemp 50) (lowTemp -10) (price 90) (dutyCycle 20))
f-9 (MAIN::Actuator (name 0) (inputVoltage 12) (Force 17) (StrokeLength 10) (length 10) (width 10) (height 10) (motorType DC) (speedAtNomLoad 0) (weight 0) (nominalCurrent 0) (highTemp 0) (lowTemp 0) (price 0) (dutyCycle 0))
은 F-4와 동일한 nominalCurrent, 그러나 규칙은 발생하지 않습니다.