我已经编写了以下Jess规则来使用它在一个门徒本体中。
(mapclass Cliente)
(defrule perfil-familia-numerosa
?cliente <- (object (is-a Cliente)
(nombre ?name)
(discapacidad? ?discapacity)
(distrito_deseado ?desired_district)
(n_miembros_familia ?n)
(presupuesto_maximo ?max)
(presupuesto_minimo ?min))
(test (> n 4))
=>
(assert (perfil-cliente ?name soltero)))当我尝试在Jess选项卡中输入它时,我会得到一个类型错误Jess reported an error in routine > [...] java.lang.Integer cannot be cast to java.lang.String。
然而,问题的插槽是一个整数,所以我不清楚为什么Jess会把它当作一个字符串。有什么帮助吗?
发布于 2018-04-07 17:28:21
问题在于:
(test (> n 4))对绑定变量的引用保留“?”,因此必须编写
(test (> ?n 4))但是,最好将此约束添加到(n_miembros_familia ?n)中。
(n_miembros_familia ?n&:(> ?n 4))https://stackoverflow.com/questions/49709568
复制相似问题