5

次のシナリオが機能しない理由を理解しようとして、2日間立ち往生しています。

ここのスクリーンショット:http://dl.dropbox.com/u/4677548/screenshots.html

スクリーンショット番号1に示されているように、「Food and(Eggs or MilkAndDerivates orVeganFood)」と同等のVegetarianFoodクラス(Foodのサブクラス)があります。

次に、VeganFoodクラスは、他のクラス(NutsAndSeeds、Cereals、Fruitなど)と同等です。スクリーンショット2

ご覧のとおり、MilkAndDerivatesとNutsAndSeedsのスクリーンショット3として作成された2人の個人(チェダーチーズとカシューナッツ)があり、VegetarianFoodとVeganFoodのメンバーとして正しく推測されています。

次に、オブジェクトプロパティhasIngredientのスクリーンショット4と5を使用して、レシピとして2つの個人を作成しました。1つはカシューナッツ(PastaVega)のみ、もう1つはチェダーチーズとカシューナッツ(PastaVege)の両方です。

そして、それらはレシピとして推測されています...しかし、スクリーンショット6と7のように定義されているVegatarianRecipeとVeganRecipeのカテゴリに分類されるものはありません。

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

編集:

私がVegetarianRecipe(またはビーガン)を「Recipeand(hasIngredient ONLYVegetarianFood)」から変更した場合

「レシピと(HasIngredient SOMEVegetarianFood)」へ

スクリーンショット8

レシピの個人が表示されますが、もちろんこれは私がやろうとしていることではありません。このように、混合肉とvegetarianFoodを使用したレシピが含まれるためです。では、レシピが菜食主義者か完全菜食主義者かを推論者が正しく推測できるように、菜食主義者とビーガンレシペのクラスを定義するにはどうすればよいでしょうか????

4

1 に答える 1

8

あなたは、OWL推論が開世界仮説を使用しているという事実の結果にぶつかりました。

PastaVegeあなたのレシピがであると推測されない理由は、あなたがレシピVegetarianRecipeに明示的にリストする成分は確かにすべてのVegeratianFood例ですが、あなたのレシピの現在未知の成分のいくつかは菜食主義の食べ物ではない可能性があります。

すべての材料は(現在知っているものだけでなく)VegetarianFoodsである必要がVegetarianRecipeあるという制約があるため、(オープンワールドでは)レシピが実際にであると明確に結論付けることはできません。VegetarianRecipe

これに対処する方法はいくつかありますが、実際にあなたが望むことを正確に行うものはありません。少し異なる角度からアプローチする必要があります。

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

別のアプローチは、(制約を介してOWL列挙クラスを使用して)閉じた(菜食主義の)材料のセットを作成することですoneOfが、これはモデルへの重要な変更であり、もちろん、すべての可能な材料をリストする必要があるのは面倒です。このファッション。

于 2012-04-30T02:02:39.567 に答える