Giu*_*lli 5 rdf semantic-web owl ontology protege
我已经被困了两天,现在试图理解为什么下面的场景不起作用:
截图:http://dl.dropbox.com/u/4677548/screenshots.html
我有一个VegetarianFood类(Food的子类)相当于"Food and(Eggs or MilkAndDerivates或VeganFood)",你可以在屏幕截图中看到1
反过来,VeganFood课程相当于其他课程(NutsAndSeeds,谷物,水果等...)截图2
你可以看到有两个人(切达奶酪和腰果)创建为MilkAndDerivates和NutsAndSeeds截图3,他们被正确推断为VegetarianFood和VeganFood成员
然后我创建了两个人作为食谱,一个只有腰果(PastaVega)和一个同时有切达干酪和腰果(PastaVege),使用对象属性hasIngredient截图4和5
他们已经推断为配方......但没有落入VegatarianRecipe和VeganRecipe的类别,定义如下截图6和7
我没有线索,为什么他们不被推断为VegetarianRecipe(或素食主义者)?我错过了什么?
编辑:
如果我改变VegetarianRecipe(或素食主义者)从"食谱和(只有素食者食物)"
"食谱和(有一些素食食品)"
截图8
接受个人展示,但当然这不是我想要做的,因为这将包括混合肉和素食食谱的食谱.那么如何定义一个素食和纯素食品类,以便推理员在食谱素食或素食时正确推断????
你已经看到了OWL推理使用开放世界假设的结果.
你的PastaVege配方没有被推断为a的原因VegetarianRecipe是,尽管你在配方中明确列出的成分确实是所有VegeratianFood实例,但很可能你的食谱中一些目前未知的成分不是素食.
由于你的约束VegetarianRecipe是所有成分都应该是VegetarianFoods(不仅仅是我们目前所知道的那些),因此无法确定(在一个开放的世界中)你的食谱确实是一个VegetarianRecipe.
有很多方法可以解决这个问题,但是没有一种方法可以完全按照您的要求进行操作 - 您需要从稍微不同的角度来处理它.
没有进入确切的建模细节:虽然根据您当前的模型很难推断配方是否是素食,但推断食谱是否不是素食是相对简单的; 任何含有至少一种非素食成分的食谱都是非素食食谱.
另一种方法是你创建一组封闭的(素食)成分(通过oneOf约束使用OWL枚举类),但这是对你的模型的一个重大改变,当然,必须列出所有可能的成分是繁琐的.这种时尚.
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |