我们假设我们有两个名为People
和Disease
的课程。这些类与Object Property has
相关联。
:People :has :Disease
People
有子类(或个人)John
,Disease
有子类(或个人)Cancer
。
:John a :People
:Cancer a :Disease
我们如何通过推理获得这些子类之间的关系?
:John :has :Cancer
答案 0 :(得分:3)
在你得到答案之前,你需要解决一些误解。
首先,子类和个体是非常不同的概念。个人(实例)是类的成员。子类表示一个类是另一个类的子集,这意味着一个暗示(通过推断)是一个子类的所有成员都是(超级)类的成员。 (仅供参考:OWL中没有继承的概念。)
第二个类级属性,例如:People :has :Disease
对类个体没有意义。定义属性与类的关系的方法是设置属性的域和范围。 (仅使用:has
作为属性名称表示可能来自其他类型语言的一系列误解。)因此,我建议使用名称:hasDisease
和断言:
:hasDisease rdfs:domain :People .
:hasDisease rdfs:range :Disease .
第三,鉴于:John :hasDisease :Cancer
是:Cancer
的子类,你可以断言:Disease
并推断John患有疾病。这需要标准的RDFS推理器。此外,根据上面的域和范围定义以及断言:Joy :hasDisease :Gout
,RDFS推理器将推断出:Joy a :Person
和:Gout a :Disease
。
您可以通过Google找到一些OWL引物。我建议仔细阅读其中的一些内容,以便对OWL和推理配置文件的工作方式有一个基本的了解。