使用 Jena 进行基本猫头鹰推理
-
13-12-2019 - |
题
我是本体论新手,有一个关于 OWL 推理的基本问题。这个问题可能看起来很冗长,对此感到抱歉..
考虑具有以下公理(OWL:C1类)和(OWL:P类)的本体,带有对象属性(RDFS:域观察C1)(RDFS:rdfs:range observes p),以及一个个人(RDF:type p p p) )
然后,我通过创建具有限制的类 C2 (rdfs:subClassOf C2 C1) 来限制类 C1(观察 C2 p)
现在,当我创建一个新个体 (rdf:type x owl:Thing)(观察 x p)时,推理机会推断出 (rdf:type x C1)。然而,个体 x 的定义似乎更接近 C2,所以推理者不应该推断 x 是 C2 类型吗?
请帮忙!
我正在尝试使用 Jena 框架。
解决方案
这种情况不会发生的原因是您已经使用子类创建了限制,这意味着您已经创建了必要(但不是充分)条件。换句话说,你已经对推理者说了这样的话:
“如果一个人属于 C2 类型,那么它必须具有‘观察’属性”
但是你有 不是 反过来说:
“如果一个人拥有‘观察到’的财产,那么它必须是 C2 类型”
为了使推理机能够推断出您的个人属于 C2 类型,您还必须具备第二条规则(充分条件)。您可以在 OWL 中使用 owl:equivalentClass
关于您的限制的关系(而不是 rdfs:subClassOf
关系)。
不隶属于 StackOverflow