Jess规则引擎

时间:2016-08-25 15:44:09

标签: jess

我正在尝试在Jess中实现传递闭包。

(deftemplate P
    (slot id)
    (multislot d) ; reference to Ps
)

如何收集传递槽调用:(p :: P).d.d.d.d ....直到不再需要d-ref?

我想过

(deffunction closure(?p)
    ?p1 <- (P (id ?p) (d $?p1d) ; Get the fact which name is given as parameter
    ?p2 <- (P (id ?id&:(member$ ?id ?p1d))) 
    (union$ ?p closure( ?p2 ) ) ; Meaning p.d.d.d.d.d.d.d.d.... Tree wise.
)

但它没有给出任何有趣的东西。 我也考虑过使用查询,但由于调用是从LHS进行的,所以我不鼓励这样做。

非常感谢任何帮助。 谢谢, 爱德华

0 个答案:

没有答案