【发布时间】: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.
请注意,我是在说明描述类本身的属性,即,不是它的实例。
问题
- 我发现这在语法上没有任何问题。对吧?
- 现在语义上:这是一种常见的做法吗?这种建模方式的含义是什么?
- 现在
:Lion的实例怎么样,这些知识是否适用? - 任何标准的 W3C 资源?
请注意,我质疑使用属性来描述类的这种方式;不知道这种关于狮子牙齿和皮毛知识的建模方式是否最好。
编辑
我是从词汇构建的角度说的。解释在很大程度上取决于应用程序方面。因此,像使:Lion 成为匿名限制的子类这样的解决方案并不是我所需要的。
【问题讨论】:
-
这在生物和医学领域并不少见。那为什么不呢。在 OWL 2 中,它被称为双关语,即对个人和类使用相同的 URI。
-
3) 不,它只适用于
:Lion实例,不适用于:Lion:类的个人。或者至少不是通过 RDFS 或 OWL 语义。通过使用 OWL 类表达式然后执行:Lion SubClassOf: :countOfTeeth value 30,即使用hasValue限制作为超类,显然可以对个人进行陈述。但你说你不想要这个……