我认为可以使用属性来描述rdfs类。但是,从语义上来讲,这真的是一个好习惯吗。
作为一个例子,请考虑我们有
95
90
83
..
15
12
2
1
现在考虑我们要对所有狮子说些什么;例如,它们有30颗牙齿,并被毛皮覆盖:
:Animal a rdfs:Class.
:Lion a rdfs:Class.
:Lion rdfs:subClassOf :Animal.
请注意,我要说明的属性描述的是类本身,即不是实例。
问题
:countOfTeeth a rdf:Property.
:Lion :countOfTeeth "30"^^xsd:Integer.
:coveredWith a rdf:Property.
:Lion :coveredWith :fur.
的实例如何,这些知识是否适用?请注意,我正在质疑使用属性来以这种方式描述类;这种关于狮子的牙齿和毛皮的知识建模方法不是最好的方法。
编辑
我是从词汇构建的角度讲的。解释很大程度上取决于应用程序方面。因此,使:Lion
成为匿名限制子类的解决方案并不是我所需要的。
答案 0 :(得分:2)
要依次回答您的问题,
在RDFS中,类:Lion
具有齿数的事实与该类的实例的属性无关。没有任何推理可以使单个狮子拥有30颗牙齿,也没有任何验证可以证明当添加新的Lion时,它们将具有正确的牙齿数量。
在OWL中,通常会通过引入属性 restriction 而不是在类级别上公然声明属性,从而使用不同的建模方法。老实说,您的警告使我感到困惑:这种东西是词汇的建立。