1

Jena セマンティック Web フレームワーク バージョン 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は、たとえば、is aと次のトリプルがアサートされた:joe場合に含まれる制限クラスであると想定されています。:bob:Person

:joe :offspringOf :bob . 

次に、制限クラスは Person のサブクラスである:joeため、同じく person になります。

実際、これは機能します。私が混乱しているのは、この投稿の上部にある 4 つのトリプルだけをアサートした後、インファーサーが Person である空のノードを作成することです。つまり、次のトリプルがモデルに含まれるようになりました。

_:b0 rdf:type :Person

なぜこれを行うのかわかりません。これを理解するための助けをいただければ幸いです。

ありがとう。ケント。

4

1 に答える 1

0

私はOWLの専門家ではないので、なぜ推論者がこれを行うのかわかりません-jena-usersリストで質問をしてみましたか?

彼らは通常あなたにかなり迅速に答えます、そして彼らはあなたが観察された行動を得る理由を知っているべきです。

ノート

コードサンプルがやや紛らわしいので、質問を再フォーマットしました-Turtle [ex:subject ex:predicate ex:object]/ N3 / SPARQLの構文上の砂糖のように見えるため、Triplesを書き出さないでください。これにより、意図したもの以外に追加の空白ノードが作成されます。

于 2011-01-13T11:36:00.087 に答える