Búho - ¿Proteger no inferir correctamente? ¿Cómo definir precisamente una clase “vegetariana”?
He estado estancado durante dos días tratando de entender por qué el siguiente escenario no funciona:
capturas de pantalla aquí:http://dl.dropbox.com/u/4677548/screenshots.html
Tengo una clase de VegetarianFood (subclase de Food) que es equivalente a "Food and (Eggs o MilkAndDerivates o VeganFood)" como se puede ver en la captura de pantalla número 1
La clase de VeganFood, a su vez, es equivalente a otras clases (NutsAndSeeds, Cereals, Fruit, etc ...) captura de pantalla 2
Como puede ver, hay dos individuos (queso cheddar y anacardo) creados como MilkAndDerivates and NutsAndSeeds captura de pantalla 3 y se infieren correctamente como miembro de VegetarianFood y VeganFood
Luego creé dos individuos como recetas, uno solo con anacardo (PastaVega) y otro con cheddar chese y anacardo (PastaVege), utilizando la propiedad de objeto hasIngredient captura de pantalla 4 y 5
y se han deducido como Receta ... PERO ninguno cae en la categoría de Receta de Vegatarian y Receta de Vegan, que se define a continuación: captura de pantalla 6 y 7
No tengo pistas, ¿Por qué no se deducen como VegetarianRecipe (o vegan)? ¿Qué me estoy perdiendo?
Editar:
Si cambio VegetarianRecipe (o vegan) de "Recipe and (hasIngredient ONLY VegetarianFood)"
a "Receta y (hasIngrediente ALGUNA Comida Vegetariana)"
captura de pantalla 8
Las recetas se muestran a los individuos, pero, por supuesto, esto no es lo que estoy tratando de hacer, ya que de esta manera incluirá recetas con carne mixta y comida vegetariana. Entonces, ¿cómo definir una clase de receta vegetariana y receta vegana para que el razonador pueda inferir correctamente cuando una receta es vegetariana o vegana?