【问题标题】:Use properties to describe classes使用属性来描述类
【发布时间】:2019-02-07 12:30:59
【问题描述】:

我认为可以使用属性来描述 rdfs 类。但是,就语义而言,这真的是一种好习惯吗?

例如,假设我们有:

: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 资源?

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

编辑

我是从词汇构建的角度说的。解释在很大程度上取决于应用程序方面。因此,像使:Lion 成为匿名限制的子类这样的解决方案并不是我所需要的。

【问题讨论】:

  • 这在生物和医学领域并不少见。那为什么不呢。在 OWL 2 中,它被称为双关语,即对个人和类使用相同的 URI。
  • 3) 不,它只适用于 :Lion 实例,不适用于 :Lion: 类的个人。或者至少不是通过 RDFS 或 OWL 语义。通过使用 OWL 类表达式然后执行 :Lion SubClassOf: :countOfTeeth value 30,即使用 hasValue 限制作为超类,显然可以对个人进行陈述。但你说你不想要这个……

标签: rdf owl rdfs


【解决方案1】:

回答您的问题,按顺序:

  1. 这在语法上确实没有任何问题 - 尽管根据您的意图,它可能在语义上不正确(例如:它可能不会说出您想要它说的内容);

  2. 这并不少见 - 您经常会在分类模型中看到这种情况(例如,在生物或医学领域,如 cmets 中所述)。当然,这并不意味着无论想到什么用例,它都是正确的建模选择;

  3. 在 RDFS 中,:Lion 类具有齿数这一事实与该类的任何实例 具有什么属性无关。没有任何推论可以让单个狮子拥有 30 颗牙齿,也没有任何验证可以证明添加新狮子时,它们会拥有适当数量的牙齿。

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

  4. OWL 2 Primer 是一个好的开始,尤其是关于属性限制和“双关语”(= 允许将标识符作为类和个人重复使用)的部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多