【问题标题】: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. 一个人必须是男性或女性。

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

    PersonMaleFemale 的不相交的联合体。

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

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

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

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

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

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

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

    【讨论】:

    • 谢谢!这是一个很好的深入回答。如果我根本不绘制MaleDress 之间的任何关系就足以得出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
    相关资源
    最近更新 更多