2
我正在使用JessTab API通過Jess規則操縱Java中的本體。以一個Person類的簡單本體爲例。我跑從Java下面的代碼斷言新的實例類人:在Java中使用Jess規則:斷言實例不能用於進一步推理
private final Rete r = new Rete();
Random randomGenerator = new Random();
r.executeCommand("(make-instance test of http://www.owl-ontologies.com/Ontology1431767500.owl#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命令嗎?
'化妝instance'不是傑斯功能中。在任何情況下,您都應該檢查或顯示'Rete.executeCommand'的返回值以瞭解它是否成功。此外,'executeCommand'已被棄用 - 使用'eval'來代替。 – laune
Thnx @laune。從JessTab文檔中,我發現如果必須將映射到Jess的WM中,則需要關鍵字映射。它現在有效。願真主保佑你 – Edi