JESS的功能类似于Prolog中的findall?

时间:2016-12-02 15:15:48

标签: prolog jess prolog-findall

我想知道是否可以编写一个jess函数或规则来在Prolog中表现findall

例如,我们有一个像

这样的KB
(person (name jason) (school nyu))
(person (name john) (school nyu))
(person (name liz) (school cmu))
...

输入为(school nyu),我们想收集所有人的姓名 比如[jason,john]

任何评论都将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以使用accumulate CE编写这样的规则,也可以使用defquery将其写为函数。但是,这两种方法都没有按照它真正打算使用的方式使用规则引擎;最好编写一个匹配一个这样的实体并对其进行操作的规则,然后让规则为每个匹配触发一次。