私は Protégé を初めて使用するので、非常に基本的な質問があります。私はクラスChild
とParent
. Child
サブクラスを持っていGirl
ます。
child1
は typeGirl
をchild2
持ち、 typeChild
を持ち、 typeの両方anna
を持ちます。さらに、関係があり、それ以上の特徴はありません。peter
Parent
anna isParentOf child1
peter isParentOf child2
ParentOfGirl
と同等になるようにクラスを定義したいと思いますParent and isParentOf only Girl
。推論器はanna
がこの新しい型を持っていると推測すると思いますが、そうではありません。
親は複数の子を持つことができるため、Inverse functional
プロパティを追加しました。次に、タイプを持つリレーションにisParentOf
も追加すると、が対称である必要はありません。Symmetric
anna
ParentOfGirl
isParentOf
対称性のない上記のセマンティクスを見ると、次のようになります。
ParentOfGirl ≡ {アンナ、ピーター} ⋂ { x ∊ owl:Thing | if ∀y (x, y) ∊ isParentOf then y ∊ Girl}
child1 ∊ 子供と child1 ∊ 女の子
isParentOf ≡ {(アンナ、子1)、(ピーター、子2)}
次にはに関連するchild1
タイプの唯一の個体であり、タイプ も持っています。この場合、推論者は関係を右から左にしか見ることができないように思えます。さらに、child2 との関係がなければ、それも含まれると思います。しかし、これも起こりません。Child
anna
Girl
isParentOf
anna
peter
ParentOfGirl
なぜ推論器 (ペレットまたは HermiT) はそれanna
が であると 認識しないのParentOfGirl
ですか?