Jess规则编写与底层原理深度解析
1. Jess规则与查询基础
在Jess中,我们可以定义规则来基于工作内存的内容采取行动,也能编写查询来程序性地调查工作内存。规则和查询都能使用约束(对事实槽数据的条件)和条件元素(事实之间的关系)来对工作内存元素提出详细要求。
1.1 查询结果处理
查询结果通过 (while (?it hasNext) ...(call ?it next)) 控制结构进行遍历。每个结果是一个 jess.Token 对象,它是 jess.Fact 对象的集合,每个 Token 保存查询的一个匹配结果。我们通过调用 jess.Token 的 fact() 方法来获取 Token 内的单个 jess.Fact 对象。由于每个匹配开始都有一个额外的查询触发事实,所以 fact() 方法的参数是1而不是0。获取到正确的事实后,使用 fact-slot-value 函数提取名称槽的内容。
1.2 变量声明
查询中可能出现两种不同类型的变量:查询内部变量和外部变量。Jess默认查询中的所有变量都是内部变量,若要使用外部变量,需使用以下语法显式声明:
(declare (variables ?x ?y ...))
使用 run-query
超级会员免费看
订阅专栏 解锁全文
969

被折叠的 条评论
为什么被折叠?



