[英]Protege unexpected behavior with owl max restriction
我正在Protégé建模甜點中創建本體。 有兩個主要的基本類,甜點和成分,以及一個hasIngredient屬性來連接它們。 一個甜點的例子如下:
NeapolitanIceCream subclass of Dessert
hasIngredient exactly 1 IceCream
hasIngredient exactly 1 wafers
hasIngredient only (IceCream or Wafers)
我有2個原始類SimpleDessert和ComplexDessert
SimpleDessert subclass of Dessert and (hasIngredient max 3 Ingredient)
ComplexDessert subclass of Dessert and (hasIngredient min 5 Ingredient)
當我運行推理程序時,SimpleDessert(min)的性能符合預期,但是ComplexDessert(max)沒有子類。 我對開放世界原則的理解認為,恰好1子句和only子句清楚地表明只有這兩種可能的成分,數量也很明確。 我可能缺少明顯的東西,但希望在此提供任何幫助。
該公理可能並不意味着您想要的意思:
甜點和(具有最多3種成分的成分)的SimpleDessert子類
這表示“如果 某物是一個SimpleDessert, 那么它是一個甜點,並且最多具有三個成分。 不是說”如果 某物是一個Dessert,並且它最多具有三個成分, 那么它就是一個SimpleDessert。”
我想說后者,那么您就需要另一個方向的子類公理:
甜品⊓≤3 hasIngredent.Ingredient⊑SimpleDessert
在Protege中,您可以使用General Axioms選項卡進行此操作。 (有關示例和屏幕截圖,請參見我對owl protege的 回答 , 如何描述一個僅具有某些屬性的類? )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.