我正在使用 Jena 语义网络框架版本 2.6.3。我有创建带有猫头鹰推理模型的代码,然后添加以下三元组:
_:bnode-3 rdf:type owl:Restriction .
_:bnode-3 owl:onProperty :offspringOf .
_:bnode-3 owl:someValuesFrom :Person .
_:bnode-3 rdfs:subClassOf :Person .
_:bnode-3
应该是一个限制类,例如,它将包含:joe
if :bob
is a:Person
并且断言了以下三元组:
:joe :offspringOf :bob .
那么,由于限制类是 Person 的子类,:joe
因此也将是一个人。
而且,事实上,这是有效的。令我困惑的是,在我只断言这篇文章顶部的 4 个三元组之后,推理器创建了一个空白节点,它是一个 Person。换句话说,以下三元组现在在模型中:
_:b0 rdf:type :Person
我不明白为什么它会这样做。任何帮助理解这一点将不胜感激。
谢谢。肯特。