使用owl max限制来保护意外行为

问题描述 投票:0回答:1

我在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)没有子类。我对开放世界原则的理解认为,正好有一个条款和唯一的条款清楚地表明只有这两个可能的成分,数量是明确的。我可能错过了一些明显的东西,但在这里会有任何帮助。

max min owl protege
1个回答
2
投票

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

沙漠的简单甜点子类和(成分最多3成分)

这说“如果有些东西是SimpleDessert,那么它就是甜点,并且最多有三种成分。它没有说”如果某种东西是甜点并且最多有三种成分,那么它就是一个SimpleDessert。“

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

甜点和sqcap; ≤ 3 hasIngredent.Ingredient⊑ SimpleDessert

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

© www.soinside.com 2019 - 2024. All rights reserved.