我有兩個主要的類(代碼和主體)和一個對象屬性的本體不同(受試者獲得代碼)其中:爲什麼在門徒可視推論從導出的推斷公理
- 代碼(類)含有所有可用代碼(實例)
- 代碼的(類)子類對這些代碼(實例)進行分類;手動指定
- 主題(類)包含了所有可用的對象(實例)
- 每個主題(例如)曾斷言(取得的財產)部分代碼(實例)
- 主題的(類)的子類定義的科目組(實例)根據相關聯的代碼(實例)和碼碼類別忠誠
- 裏森納爲約推斷對象實例的特定羣體(受試者的子類)
當我內的Protege開始推理,推斷實例的斷言被宣稱深入t主題子類的實例仍然符合約束條件(請參閱附件Figure)。但是,如果我將推斷的公理導出到單獨的本體中,則每個主題子類都包含其自身+其後代的所有實例(顯然,使用JAVA OWL API可以觀察到相同的行爲)。
我的問題是:爲什麼結果不一樣?我理解這兩種情況的邏輯,但我不明白他們爲什麼不同。如何在Protege中顯示推導結果?如果沒有直接的方法,我可以從OWL API強制隱士(或其他推理者)以某種方式向我展示完全相同的「黃色保護」結果嗎?到目前爲止,我只找到一種解決方法 - 按照原樣導出推理,然後通過SPARQL詢問差異。
我使用的是Protege 5.0.0,Reasoner Hermit 1.3.8和OWL API 5.0.5(雖然對於不同的reasoners得到了相同的結果:Fact ++,Pellet;以及不同的OWL API和Protege版本:4.x)
我會的任何意見非常高興,甚至一個簡單的解釋會幫助我很多。
非常感謝@Ignazio的回答。但實際上,這並沒有解決我的問題。我嘗試了很多配置(在Protege以及OWL API中),但是我從未達到與Protege可視化「實時」推理相同的狀態。此外,由於我可以爲公理導出設置一組生成器,因此我還可以設置在Protege中顯示哪些推理(高亮顯示,淡黃色)。即使我讓Protege僅顯示和生成實例,它們仍然不同(在推斷實例的情況下)。 – vpapez
除了我發現的以外,可能還有更多的protégé推理 - 我知道對於非推斷視圖是這樣的。然而,我並不熟悉門徒指出任何這樣的額外事宜。 – Ignazio
我在其他[評論]中找到了解決方案(http://stackoverflow.com/questions/28072721/getting-all-individuals-of-a-specific-class-using-owlapi-and-jfact-reasoner/28083605# 28083605)。突出顯示的推理可能是'reasoner.getInstances(c,true);'(子類的實例被跳過)的輸出。但是,當推斷本體由InferredOntologyGenerator(IOG)對象生成時,不存在像這樣的選項,因此實例不會被跳過。你有什麼想法如何設置一個IOG作爲'reasoner.getInstances(c,false);'? – vpapez