2012-04-28 1 views
5

私は今、次のシナリオが動作していない理由を理解しようとする2日間立ち往生されている食品」に相当するhttp://dl.dropbox.com/u/4677548/screenshots.htmlowl - 正しく推論していないのですか?正確にクラス "ベジタリアン"を定義する方法は?ここ</p> <p>スクリーンショット:

私はVegetarianFoodクラス(食品のサブクラス)を持っていますあなたはスクリーンショット番号1

VeganFoodクラスで見ることができるようにし、(卵またはMilkAndDerivatesまたはVeganFoodは)」、ターンで、他のクラス(NutsAndSeeds、穀類、果物、など...) スクリーンショット2

に相当します

nはそこMilkAndDerivatesとNutsAndSeeds スクリーンショット3 として作成された2人の個人(チェダーチーズとカシュー)があり、それらが正しく、私はレシピのように二人の個人、唯一カシューのものを作成した後

VegetarianFoodとVeganFoodメンバーとして推測される(PastaVega)を参照してくださいそしてチェダーcheseおよびカシュー(PastaVege)の両方を有するもの、オブジェクトプロパティhasIngredientを スクリーン4を用いて5

それらはレシピとして推測されている...しかし、いずれもVegatarianRecipeとVeganRecipeのカテゴリに該当しない、次のように定義されます スクリーンショット6および7

私は手がかりがありません、なぜ彼らはVegetarianRecipe(またはビーガン)として推測されませんか?私は何が欠けていますか?

編集:

私は からVegetarianRecipe(またはビーガン) "レシピと(hasIngredient ONLY VegetarianFood)"

へ "レシピと(hasIngredient SOME VegetarianFood)" を変更した場合

スクリーンショット8

レシピの個体が示されていますが、これは私がやろうとしていることではありません。このように、混合肉と菜食主義のフードを含むレシピが含まれます。 したがって、レシピがベジタリアンまたはビーガンのときに推論者が正しく推論できるように、vegetarianrecipeクラスとveganrecipeクラスを定義する方法

+0

あなたがスクリーンショットに付けた「リンク」は、お使いのコンピュータでのみ機能します。最初にimgur.comのようなものにアップロードする必要があります。 – jwodder

答えて

6

あなたは、OWLの推論がオープンな世界の仮定を使用しているという事実の結果を打ち明けました。

あなた PastaVegeレシピが VegetarianRecipeと推定されていない理由は、あなたが明示的レシピにリストアップ成分がすべて VegeratianFoodのインスタンスは確かにあるが、それはよくあなたのレシピのいくつか現時点では不明成分がないことが考えられ、ということです

ベジタリアンフード。

VegetarianRecipe上のあなたの制約がすべて成分がVegetarianFoods、決定的にあなたのレシピが実際にVegetarianRecipeであること(オープンワールドで)結論付けることはできません(私たちが現在知っているものだけでなく)でなければならないことですので。

これに対処するにはいくつかの方法がありますが、実際にはまったく同じものはありません。わずかに異なる角度からアプローチする必要があります。

正確なモデリングの詳細には触れることなく、レシピが現在のモデルでは菜食主義者であるかどうか推測するのはかなり難しいですが、レシピが菜食主義者でないかどうかを推測するのは比較的簡単です。少なくとも1つの非菜食主義成分を含むレシピは、非菜食主義のレシピです。

別のアプローチは、あなたが(ベジタリアン)成分(oneOf制約経由OWL列挙クラスを使用して)の閉集合を作成することですが、それはあなたのモデルに大きな変化であり、もちろん持って面倒ですすべての可能な成分をこのようにリストアップする。

関連する問題