1

我正在使用 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应该是一个限制类,例如,它将包含:joeif :bobis a:Person并且断言了以下三元组:

:joe :offspringOf :bob . 

那么,由于限制类是 Person 的子类,:joe因此也将是一个人。

而且,事实上,这是有效的。令我困惑的是,在我只断言这篇文章顶部的 4 个三元组之后,推理器创建了一个空白节点,它是一个 Person。换句话说,以下三元组现在在模型中:

_:b0 rdf:type :Person

我不明白为什么它会这样做。任何帮助理解这一点将不胜感激。

谢谢。肯特。

4

1 回答 1

0

我不确定为什么推理者会这样做,因为我不是 OWL 专家 - 您是否尝试过在jena-users列表中提出您的问题?

他们通常会很快回答您,并且他们应该知道您为什么会得到观察到的行为。

笔记

我重新格式化了您的问题,因为您的代码示例有些令人困惑 - 请不要写出 Triples,[ex:subject ex:predicate ex:object]因为它看起来很像 Turtle/N3/SPARQL 中的一些语法糖,这会导致创建超出您预期的额外空白节点

于 2011-01-13T11:36:00.087 回答