【问题标题】:OWL restrictions for must必须的 OWL 限制
【发布时间】:2014-03-02 17:58:13
【问题描述】:

我对 OWL 还很陌生,仍在学习限制。我正在尝试对这些陈述进行建模:

  1. 一个人 (P) 可以是男性 (M) 或女性 (F),但不能同时是两者
  2. 一个人必须是男性或女性
  3. 男人没有衣服
  4. 女性至少有一件衣服 (D)

到目前为止,我已将其建模为:

P -> canBe -> M  
P -> canBe -> F  
M <- disjoint -> F  
F -> has (>= 1) -> D

我很困惑如何添加一个人必须是男性或女性的限制,以及如何表明男性没有着装。我也不确定我的总体建模情况,如果有任何反馈,我将不胜感激。

【问题讨论】:

    标签: rdf semantic-web owl description-logic


    【解决方案1】:

    一般来说,实现同一个目标可以有不同的方法。这意味着以下答案不一定是唯一的可能性,但它们是我首先想到的。

    1。一个人 (P) 可以是男性 (M) 或女性 (F),但不能同时是两者。
    2. 一个人必须是男性或女性。

    对于这两个陈述,需要做出重要的建模决策。 Male 和 Female 是 Person 类的每个 子类,还是您使用某些属性,例如 hasSex 将人与性别联系起来?如果您使用的是子类方法,那么您可以通过声明来做到这一点

    Person 是 Male 和 Female 的不相交的联合体。

    这意味着 Person 的每个实例都是 Male 的实例或 Female 的实例,并且类 Male 和 Female 是不相交的,所以没有什么是两者的实例。 (当然,如果你能谈论男性和女性的非人事物,那么你就不会想要完全使用这种方法。)

    如果您使用像 hasSex 这样的属性,那么它要么是对象属性,要么是数据属性。在第一种情况下,您需要一个类 Sex,其中包含两个个体 male 和 female,并且您要声明它们不同于彼此,您可以将 hasSex 设为函数属性,并将其范围声明为类 Sex。当然,其中一些取决于您的类和属性的一般性。如果您没有为属性声明范围,那么您仍然希望使用某种限制类作为 Person 的超类。例如,

    人 &sqsubseteq; =1 hasSex.{男,女}
    个人&sqsubseteq; ∀hasSex.{男,女}

    这些公理说每个人都有一个来自 {male, female} 的值作为 *hasSex* 属性的值,并且一个人对 hasSex 的每个值都必须来自 {male ,女性}。

    3。男人没有衣服
    4. 女性至少有一件衣服(D)

    如果您使用的一般 has 属性不仅仅适用于连衣裙(例如,与仅适用于连衣裙的 hasDress 属性相反) ),并且你有一个 Dress 类,这些很简单:

    男&sqsubseteq; =0 有.连衣裙
    女&sqsubseteq; ≥1有.连衣裙

    【讨论】:

    • 谢谢!这是一个很好的深入回答。如果我根本不绘制Male 和Dress 之间的任何关系就足以得出male has no dresses 的结论,或者我还需要绘制M -&gt; hasDress = 0 -&gt; D 的关系吗?
    • OWL 使open world assumption;仅仅因为你没有说某事并不意味着它不可能是真的。 “拥有最多 0 件衣服”类别是可以证明拥有零件衣服的个人类别。仅仅因为你不知道某人有一件衣服并不意味着他们没有,OWL 尊重这一点。如果男性没有衣服,你需要一个公理来说明这一点。
    • 明白了。再次感谢您的详细解释!
    猜你喜欢
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    相关资源
    最近更新 更多