我正在使用OWL API 3/Pellet/SPARQL-DL堆棧,並且想從本體中讀取某個類的斷言的TBox公理。使用OWL API獲取TBox公理API
我可以通過OWL API輕鬆訪問公理。但是,OWLClassAxiom只是提供了在沒有連接的情況下訪問簽名的功能。即我想知道ObjectProperty分配給哪個類。我可以檢索的是簽名中的所有元素的集合,沒有它們的連接。
OWL API似乎並不真正支持在類級別上給定的公理(閱讀,不添加)。或者我錯過了什麼?任何其他想法如何實現? (使用任何工具)
具體示例:比薩hasBase一些PizzaTopping。我想通過指定Pizza和hasBase來檢索值「PizzaTopping」。
對,您可以輕鬆做的唯一事情就是獲得您感興趣的所有公理在簽名中的屬性中,但取決於公理類型,這可能不是您想要的。一個'OWLAxiomVisitor'可能是要走的路... – AKSW
感謝您指出我的邏輯中的缺陷,很好的答案。我得到了它的工作。但是,我仍然不喜歡公理部分的訪問。所有的都是「getXInSignature」,它只返回一個集合。這是沒用的,如果你有一個組合(例如兩個某些值的交集) - 我需要手動通過subaxioms。也許我的用例非常具體,或者我還沒有完全明白。但無論如何,它現在起作用!@AKSW是否有可能將訪問者僅用於某個類的公理,還是會貫穿整個本體論? – nick
@nick OWL對象的一些值來自Axiom的'getProperty()'。您不必使用getXInSignature方法。也就是說,AKSW建議研究公理遊客可能會幫助很多。 –