我想知道是否可以编写一个jess函数或规则来在Prolog中表现findall
。
例如,我们有一个像
这样的KB(person (name jason) (school nyu))
(person (name john) (school nyu))
(person (name liz) (school cmu))
...
输入为(school nyu)
,我们想收集所有人的姓名
比如[jason,john]
任何评论都将不胜感激!
答案 0 :(得分:0)
您可以使用accumulate CE编写这样的规则,也可以使用defquery将其写为函数。但是,这两种方法都没有按照它真正打算使用的方式使用规则引擎;最好编写一个匹配一个这样的实体并对其进行操作的规则,然后让规则为每个匹配触发一次。