15、Jess规则编写与底层原理深度解析

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值