Java 用Jess规则寻找复变量绑定的最小值
我设计了以下Jess规则,用于查找基于本体中特定模式的温度观测最小值:Java 用Jess规则寻找复变量绑定的最小值,java,rules,jess,Java,Rules,Jess,我设计了以下Jess规则,用于查找基于本体中特定模式的温度观测最小值: (defrule TemperatureMinObservation (object (is-a http://..#ObservationValue) (OBJECT ?ov) (http://..#hasDataValue ?a1) ) (not (object (http://..#hasDataValue ?a2&:(< ?a2 ?a1)))) (
(defrule TemperatureMinObservation
(object
(is-a http://..#ObservationValue)
(OBJECT ?ov)
(http://..#hasDataValue ?a1)
)
(not
(object
(http://..#hasDataValue ?a2&:(< ?a2 ?a1))))
(object (is-a http://..#SensorOutput)
(OBJECT ?so)
(http://..#hasValue ?ov))
(object (is-a http://..#Observation)
(OBJECT ?o)
(http://..#observationResult ?so)
(http://..#qualityOfObservation ?qo&:(eq (instance-name ?qo)
(instance-name http://..#Temperature)))
)
=>
(printout t "Temperature minimal observation is " (instance-name ?o) " with value " ?a1 crlf))
不知道什么是观测值、观测值、传感器输出及其属性意味着很难给出建议。-但是,我觉得奇怪的是,
not
CE中的对象没有限制类型(is-a
),并且只有引用属性ObservationValue
观测
实例通过observationResult
对象属性与传感器输出
实例链接SensorOutput
实例依次通过hasValue
对象属性与ObservationValue
实例链接。最后,ObservationValues
通过数据类型属性hasDataValue
与整数值链接,以找到ObservationValue
s hasDataValue的最小值:我看不出包含SensorOutput
的理由-输出值?!我之所以将变量?o
与?so
绑定,?so
与?ov
绑定,?ov
与?a1
绑定,是为了过滤观测值,使其仅包括温度观测值(请参见观测质量
槽值),但必须对未编辑的对象集执行相同的限制操作。
(not
(object
(is-a http://..#ObservationValue)
(OBJECT ?ov)
(http://..#hasDataValue ?a2&:(< ?a2 ?a1))))
Temperature minimal observation is http://..#oo2805 with value 24.094999313354492
Temperature minimal observation is http://..#oo2809 with value 21.75
Temperature minimal observation is http://..#oo2904 with value 9.937999725341797 etc.