2017-02-17 91 views
0

我想使用Jena API創建OWL本體的層次結構,它與Protege創建的類似。我曾嘗試了兩種方法來獲得貓頭鷹的子類:事情,然後再次出現下一級別:使用Jena的OWL本體層次結構(具有複雜類)

  1. 使用listSubClasses(真)
  2. 使用listHierarchyRootClasses()

他們都曾爲owl:Thing的rdfs:subClassOf的OWL類工作過。但是,對於OWL複雜類(owl:unionOf,owl:intersectionOf和owl:complementOf),第一種方法沒有列出任何內容。雖然第二種方法的結果並不像Protege那樣正確。它通常包含更多的貓頭鷹的子類:比Protege的東西。

有人說這是Jena API的限制。這是真的嗎?我應該改用OWL API代替Jena嗎?我想徵求你的意見。

回答

0

缺少的是推理。如果不使用推理器來推斷子類關係,則無法獲得完整的結果。 Jena和OWL API都是如此。

+0

謝謝你,Igazio!我已經嘗試過耶拿的內置推理。結果會更好。但它與Protege的結果不同。有人說,Protege使用輕量級推理器來展示本體的層次結構(在斷言模式下)。我的問題是:我應該使用哪一個推理器來與Protege具有相同的層次結構? – becksloc

+0

Protégé不使用推理模式中的顯示器的推理器,它使用一些硬編碼規則。複製的唯一方法是找到並複製該代碼... – Ignazio

+0

是的,或者我必須使用Protege-OWL API作爲Protege的一些插件。再一次,謝謝你! – becksloc