私は、3つの個人「A」、「B」、「C」を持つクラス「Person」を持つ単純なオントロジーを持っています。これらは、 という名前のオブジェクト プロパティによって相互に関連付けられていますisFatherOf
。たとえば、
A isFatherOf B
B isFatherOf C
hasFather
の反転プロパティである別のプロパティを設定しますisFaterOf
。私は推論者が推論することを期待していました:
B hasFatherOf A
C hasFatherOf B
ただし、組み込みの推論ツール (FaCT++、HermiT、Pellet) はどれもそれらを推論しませんでした。
さらに、のプロパティ チェーンを作成したいとしますisFatherOf
。たとえば、次のようにしますisGrandFatherOf
。
A isGrandFatherOf C
そのため、以下のように SuperProperty を設定します。
isFatherOf o isFatherOf SubPropertyOf isGrandFatherOf
しかし、それも失敗します。
HermiT 1.3.8、Pellet 2.2.0、および FaCT++ 1.6.4 を使用した Protege 4.3 および 5.0.0 (Build RC1) で同じ結果が得られました。インターネットでドキュメントと質問を検索しましたが、なぜそれが起こっているのかまだわかりません。フクロウファイルのリンクはこちらです。
可能性のあるバグレポートが追加されました
この問題は、バグが原因である可能性があります。Win7 64 ビット、Protege 5-beta21 (および Protege 5-RC1)、java 1.8.0_20 の環境で、望ましい推論結果が得られました。
ただし、Win10 64 ビット、Protege 5-beta21 (および Protege 5-RC1)、java 1.8.0_73 の環境で問題が発生しました。推論結果が得られませんでした。3 つの異なる推論 (HermiT 1.3.8、Pellet 2.2.0、および FaCT++ 1.6.4) で推論を試みました。その中で、HermiT 1.3.8 のみが以下のエラー メッセージを表示します。ログには win8 と表示されていますが、実際には win10 です。