使用属性描述类

时间:2019-02-07 12:30:59

标签: rdf owl rdfs

我认为可以使用属性来描述rdfs类。但是,从语义上来讲,这真的是一个好习惯吗。

作为一个例子,请考虑我们有

95
90
83
..
15
12
2
1

现在考虑我们要对所有狮子说些什么;例如,它们有30颗牙齿,并被毛皮覆盖:

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

请注意,我要说明的属性描述的是类本身,即不是实例。

问题

  1. 我发现这在语法上没有错。对吧?
  2. 现在从语义上讲:这是常见的做法吗?这种建模方式的含义是什么?
  3. 现在:countOfTeeth a rdf:Property. :Lion :countOfTeeth "30"^^xsd:Integer. :coveredWith a rdf:Property. :Lion :coveredWith :fur. 的实例如何,这些知识是否适用?
  4. 任何标准的W3C资源?

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

编辑

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

1 个答案:

答案 0 :(得分:2)

要依次回答您的问题,

  1. 这确实没有语法上的错误-尽管根据您的意图,它可能在语义上是错误的(例如:它可能没有说出您想说的话);
  2. 这并不罕见-您经常会在分类学模型中看到这种情况(例如,在评论中提到的生物学或医学领域)。当然,这并不意味着无论您想到什么用例,它都是正确的建模选择;
  3. 在RDFS中,类:Lion具有齿数的事实与该类的实例的属性无关。没有任何推理可以使单个狮子拥有30颗牙齿,也没有任何验证可以证明当添加新的Lion时,它们将具有正确的牙齿数量。

    在OWL中,通常会通过引入属性 restriction 而不是在类级别上公然声明属性,从而使用不同的建模方法。老实说,您的警告使我感到困惑:这种东西词汇的建立。

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