Вопрос по – сова - протеже не правильно выводит? как точно определить класс «вегетарианец»?

5

Два дня я застрял, пытаясь понять, почему не работает следующий сценарий:

скриншоты тут:http://dl.dropbox.com/u/4677548/screenshots.html

У меня есть класс VegetarianFood (подкласс Food), который эквивалентен "Food and (Eggs или MilkAndDerivates или VeganFood)" & quot; как вы можете видеть на скриншоте № 1

Класс VeganFood, в свою очередь, эквивалентен другим классам (NutsAndSeeds, Cereals, Fruit и т. Д.) скриншот 2

как вы можете видеть, есть два человека (сыр чеддер и кешью), созданные как MilkAndDerivates и NutsAndSeeds скриншот 3 и они правильно определены как VegetarianFood и VeganFood.

Затем я создал два человека в качестве рецептов, один только с кешью (PastaVega) и один с чеддером чезе и кешью (PastaVege), используя свойство объекта hasIngredient скриншоты 4 и 5

и они были выведены как Рецепт ... НО никто не попадает в категорию VegatarianRecipe и VeganRecipe, определяемые следующим образом скриншоты 6 и 7

У меня нет никаких подсказок, почему они не выводятся как VegetarianRecipe (или веганский) ?? Что я пропускаю?

Редактировать:

Если я изменю VegetarianRecipe (или веганский) с & quot; Рецепт и (имеет только ингредиент VegetarianFood) & quot;

в & quot; Рецепт и (имеет ингредиент НЕКОТОРОЕ вегетарианское питание) & quot;

скриншот 8

показаны люди с рецептами, но, конечно, это не то, что я пытаюсь сделать, так как таким образом они будут включать рецепты со смешанным мясом и вегетарианское питание. Итак, как определить класс вегетарианского рецепта и веганский рецепт, чтобы позволить разумному человеку правильно сделать вывод, когда рецепт вегетарианский или веганский?

& Quot; ссылка & quot; Вы дали скриншоты будут работать только на вашем компьютере. Вы должны сначала загрузить их на что-то вроде imgur.com. jwodder

Ваш Ответ

1   ответ
8

что в рассуждениях OWL используется допущение открытого мира.

Причина вашаPastaVege рецепт не выведен, чтобы бытьVegetarianRecipe является то, что, хотя ингредиенты, которые вы явно перечислите в рецепте, действительно всеVegeratianFood В некоторых случаях может оказаться, что какой-то неизвестный в настоящее время ингредиент вашего рецепта не является вегетарианской пищей.

Так как ваше ограничение наVegetarianRecipe в том, чтоall ингредиенты должны быть VegetarianFoods (а не только те, о которых мы знаем в настоящее время), нельзя окончательно заключить (в открытом мире), что ваш рецепт действительноVegetarianRecipe.

Есть несколько способов справиться с этим, но на самом деле ни один из них не делает именно то, что вы хотите - вам нужно подойти к этому с несколько иной точки зрения.

Не вдаваясь в точные детали моделирования: хотя довольно сложно сделать вывод, является ли рецепт вегетарианским, учитывая вашу текущую модель, относительно просто сделать вывод, если рецепт не вегетарианский; любой рецепт, который содержит хотя бы один невегетарианский ингредиент, является невегетарианским рецептом.

Альтернативный подход заключается в создании закрытого набора (вегетарианских) ингредиентов (используя перечислимый класс OWL черезoneOf ограничение), но это значительное изменение в вашей модели, и, конечно, утомительно, чтобы перечислить все возможные ингредиенты таким образом.

Похожие вопросы