我正在使用 JessTab API 通过 Jess 规则在 Java 中操作本体。以 Person 类的简单本体为例。我从 Java 运行以下代码来断言类 Person 的新实例:
private final Rete r = new Rete();
Random randomGenerator = new Random();
r.executeCommand("(make-instance test of http://www.owl-ontologies.com/Ontology1431767500.owl#Person)");
如下列出 Person 类的个体的简单规则不会显示新断言的实例测试:
(defrule listPeople
(object (is-a http://www.owl-ontologies.com/Ontology1431767500.owl#Person)
(OBJECT ?p)
)
=>
(printout t "Person instances: " (instance-name ?p) crlf)
)
在 Protege IDE 中使用 JessTab 执行此操作会显示实例,但从 Java NetBeans 运行不会考虑 make-instance 命令断言的事实。我尝试在执行 make-instance 命令后保存本体,然后运行规则,但出现相同的行为,即不考虑新事实。我必须运行特定的 JessTab 命令吗?