代码之家  ›  专栏  ›  技术社区  ›  Median Hilal

使用属性描述类

  •  1
  • Median Hilal  · 技术社区  · 6 年前

    我认为可以使用属性来描述RDF类。然而,从语义学的角度来说,这真的是一个好的实践吗?

    例如,我们有:

    :Animal        a          rdfs:Class.
    :Lion          a          rdfs:Class.
    :Lion   rdfs:subClassOf   :Animal.
    

    现在考虑一下,我们想对所有的狮子说些什么,例如,它们有30颗牙齿,上面覆盖着毛皮:

    :countOfTeeth          a      rdf:Property.
    :Lion           :countOfTeeth "30"^^xsd:Integer.
    :coveredWith           a      rdf:Property.
    :Lion           :coveredWith  :fur.
    

    注意,我声明的是描述类本身的属性,即,不是它的实例。

    问题

    1. 我觉得这在语法上没有什么错。对吗?
    2. 现在从语义上来说:这是一种常见的做法吗?这种建模方法的含义是什么?
    3. 现在的实例如何 :Lion ,此知识是否适用?
    4. 有标准的W3C资源吗?

    请注意,我在质疑属性的用法,以这种方式来描述类;而不是这种建模狮子牙齿和毛皮知识的方式是否是最好的。

    编辑

    我说的是从词汇建设的角度。解释在很大程度上取决于应用程序方面。因此,解决方案如 狮子 匿名限制的子类不完全是我需要的。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jeen Broekstra    6 年前

    回答你的问题,顺序如下:

    1. 这确实没有什么语法上的错误——尽管这取决于你的意图。 语义上 不正确(如:它不能说出你想说的话);
    2. 这并不少见——你经常会在分类模型中看到这类事情(例如在生物学或医学领域,如评论中提到的)。当然,这并不意味着它在任何用例中都是正确的建模选择。 铭记在心;
    3. 在RDF中,类 :Lion 牙齿数与什么属性无关 实例 全班都有。没有任何推论可以使单个狮子有30颗牙齿,也没有任何验证,当添加新狮子时,它们的牙齿数量是正确的。

      在OWL中,通常使用不同的建模方法,通过引入属性 限制 而不仅仅是在类级别公开断言属性。老实说,你的警告让我很困惑:这种事 词汇建设。

    4. 这个 OWL 2 Primer 这是一个很好的开始,特别是关于属性限制和“punning”(=允许将标识符作为类和个人重复使用)。