Java中JESS的输出

时间:2013-04-16 22:48:20

标签: java expert-system jess

我想将一个“事实”发送到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正在返回字符串,但这里它不起作用。

1 个答案:

答案 0 :(得分:2)

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

运行程序的真正结果是它导致的副作用;在Java中获得结果取决于您期望的副作用。这可能意味着来自collecting output printed to the screenfinding newly created facts in working memoryhaving your Jess program call Java methods that effect the outside world的任何内容。在没有看到file.clp的内容的情况下,我无法说出你所期待的内容,但所有列出的内容都包含在Jess手册中;上面的短语是相应部分的链接。我很乐意回答您可能有的任何后续问题。