使用owl max restriction

时间:2018-04-23 01:29:20

标签: max min owl protege

我在Protégé造型甜点中创造了一个本体论。有两个主要的基类Dessert和Ingredient以及一个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 个答案:

答案 0 :(得分:2)

这个公理可能并不意味着你想要的意思:

  

Dessert的SimpleDessert子类和(hasIngredient max 3 Ingredient)

这表示 “如果 某些东西是SimpleDessert,那么它是甜点,最多有三种成分。< / em> “如果 什么是甜点并且最多有三种成分,然后< / strong>它是一个SimpleDessert。“

我想说后者,那么你需要另一个方向的子类公理:

甜点⊓≤ 3 hasIngredent.Ingredient⊑SimpleDessert

在Protege中,您可以使用General Axioms选项卡执行此操作。 (有关示例和屏幕截图,请参阅my answerowl protege how can I describe a class that has just some properties?。)