我想将“事实”发送到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正在返回字符串,但在这里它不起作用。
The (run)函数返回触发的规则数;这就是您在这里看到的数字。
运行程序的真正结果是它引起的副作用;在 Java 中获得结果取决于您预期的副作用。这可能意味着任何来自收集打印到屏幕上的输出, 在工作记忆中寻找新创建的事实, or 让 Jess 程序调用影响外界的 Java 方法。没有看到内容的情况下file.clp
我无法说出您的期望,但 Jess 手册中涵盖了所有列出的内容;上面的短语是相应部分的链接。我很乐意回答您可能提出的任何后续问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)