Owl - a protege does not get it right? How to determine the class "vegetarian"?

I was stuck for two days trying to figure out why the following scenario is not working:

screenshots here: http://dl.dropbox.com/u/4677548/screenshots.html

I have a class VegetarianFood (subclass of Food), which is equivalent to "Food and (Eggs or MilkAndDerivates or VeganFood)", as you can see in screenshot # 1

The VeganFood class, in turn, is equivalent to other classes (NutsAndSeeds, Cereals, Fruit, etc.) screenshot 2

as you can see, there are two people (cheddar cheese and cashew cheese) created as MilkAndDerivates and NutsAndSeeds screenshot 3 and they are correctly displayed as members of Vegetarian Food and VeganFood

Then I created two individuals as recipes, one with cashew (PastaVega) and one with chese chehed and cashew (PastaVege) using the hasIngredient object property screenshot 4 and 5

and they were bred as a Recipe ... BUT no one falls into the categories of VegatarianRecipe and VeganRecipe, which are defined as follows screenshot 6 and 7

I have no clues why they are not being displayed as VegetarianRecipe (or vegan)? What am I missing?

Edit:

If I change the VegetarianRecipe (or vegan) from "Recipe and (hasIngredient ONLY VegetarianFood)"

in "Recipe and (hasIngredient SOME VegetarianFood)"

screenshot 8

, , , , , . , veganrecipe, , ?

+5
1

, OWL .

, PastaVege VegetarianRecipe, , , , , VegeratianFood, , .

VegetarianRecipe , ( , ), ( ), VegetarianRecipe.

, , - .

: , , , ; , , .

, () ( OWL oneOf), , , , .

+6