3

我想将“事实”发送到 java 中的 JESS 文件并取回结果。我基本上批处理 JESS 文件,然后通过 .add() 将我的数据(此处的结构)发送到引擎中。我试图将 JESS 结果(应该是一个字符串)转换为“值”。

Rete engine = new Rete();
engine.batch("file.clp");
Value = AAAnull;
try{
   engine.add(structure)
   AAA = engine.eval("(run)");
   } catch ...

System.out.println(AAA);

结果总是一个数字,尽管结果应该是一个字符串。我已经在一个简单的 java 项目中解决了它,并且 AAA 正在返回字符串,但在这里它不起作用。

4

1 回答 1

2

(run)函数返回触发的规则数;这就是你在这里看到的数字。

运行程序的真正结果是它引起的副作用;在 Java 中获得结果取决于您期望的副作用。这可能意味着收集打印到屏幕上的输出在工作内存中查找新创建的事实,或者让您的 Jess 程序调用影响外部世界的 Java 方法。如果没有看到内容,file.clp我无法说出您的期望,但是列出的所有这些内容都包含在 Jess 手册中;上面的短语是相应部分的链接。我很乐意回答您可能提出的任何后续问题。

于 2013-04-17T14:43:09.940 回答