2016-10-07 14 views
1

私はProtétéを初めて使用しているので、私は非常に基本的な質問があります。 私はクラスChildParentを持っています。 ChildのサブクラスはGirlです。PelletとHermiTを用いたProtegeのユニバーサル定量化の理解

child1child2Childannapeterが持っているタイプの両方のタイプParentがあり、タイプGirlを持っています。さらに、anna isParentOf child1peter isParentOf child2の関係があり、それ以上の特性はありません。

今度はParentOfGirlというクラスをParent and isParentOf only Girlに相当するように定義します。私は推論家がこの新しいタイプを持っていると推測することを期待しますが、それはありません。anna

Inverse functionalプロパティをisParentOfに追加しました。これは、親が複数の子を持つことができるためです。私が関係にSymmetricを追加すると、annaのタイプはParentOfGirlになりますが、isParentOfを対称にすることは望ましくありません。

私は対称性のない上記のセマンティクスを見れば、私はこれを参照してください。

ParentOfGirl≡{アンナ、ピーター} {⋂のxεフクロウ:シング|もし∀y(x、y)はεisParentOf次いでYεガール}

child1ののε子とchild1のεガール

isParentOf≡{(アンナ、child1の)、(ピーター、child2の)}

annaに関連するタイプChildの唯一の個人であり、Girlタイプもあります。この場合、推論者は右から左への関係だけを見ることができます。isParentOfが対称であれば、それはannaであることが推測されるからです。さらに、peterは、お子様2との関係になかった場合はParentOfGirlにもなると思います。しかし、これも起こりません。

なぜ、推論(PelletまたはHermiT)ではannaParentOfGirlであると表示されませんか。

+2

OWLはOpen World Assumption(OWA)に準拠しています。つまり、あなたのオントロジーでは、「anna」は、女の子ではない別の子である可能性があります。また、推論家もこのOWAに従い、 'anna'は' ParentOfGirl'のタイプであると推論できません – AKSW

+0

また、私にとってあなたのオントロジの意味ははっきりしていません。 'isParentOf'が逆関数になるのはなぜ妥当だと思いますか? – AKSW

+0

OWAは何も変わらないと思う。知識ベースKB = {PO(a、p)}を持ち、KBα=∀x.POG(x、p)から推論したい場合は、KBのすべての解釈がαを満たすため、Trueとなります。 'isParentOf'の定義がPOと同じではないのはなぜですか? – marli

答えて

1

@AKSWはコメントに間違いがありません。推論家は、親が女性の子供しか持たないかどうかは分かりません。たとえば、個人にタイプを追加するなどして、この機能をアサーションする必要があります。

この場合、このアサーションはあなたが求める推論と同等ですが、実際には良い回避策ではありません。

forallを一部に変更すると、少なくとも1人の少女の親を見つけることができます。これはあなたのターゲットクラスのスーパークラスであり、アプリケーションの実行に役立ちます。

+0

この推論を得るためには、どのようなタイプのタイプを個人に追加しなければならないのですか?プロテウスなどで閉鎖世界裁定を設定するためのグローバルな旗がありますか、それとも意味がありませんか? – marli

+0

これは、推理者レベルの設定です。ペレットはそれをサポートしていますが、私は他の推理家が何をしているのか分かりません。 – Ignazio

関連する問題