Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rdf 猫头鹰保护者推断不正确?如何准确定义一个类;素食者;?_Rdf_Semantic Web_Ontology_Owl_Protege - Fatal编程技术网

Rdf 猫头鹰保护者推断不正确?如何准确定义一个类;素食者;?

Rdf 猫头鹰保护者推断不正确?如何准确定义一个类;素食者;?,rdf,semantic-web,ontology,owl,protege,Rdf,Semantic Web,Ontology,Owl,Protege,我已经被困了两天,试图理解为什么以下场景不起作用: 截图如下: 我有一个素食类(食物的子类),它相当于“食物和(鸡蛋或奶制品或蔬菜食品)”,你可以在截图1中看到 反过来,蔬菜食品类等同于其他类(坚果、种子、谷类、水果等) 截图2 正如你所看到的,有两个人(切达奶酪和腰果)被创造为米尔坎衍生物和坚果种子 截图3 他们被正确地推断为素食主义者和素食主义者 然后,我使用对象属性HasComponent创建了两个个人作为食谱,一个只使用腰果(PastaVega),另一个同时使用切达干酪和腰果(Pasta

我已经被困了两天,试图理解为什么以下场景不起作用:

截图如下:

我有一个素食类(食物的子类),它相当于“食物和(鸡蛋或奶制品或蔬菜食品)”,你可以在截图1中看到

反过来,蔬菜食品类等同于其他类(坚果、种子、谷类、水果等) 截图2

正如你所看到的,有两个人(切达奶酪和腰果)被创造为米尔坎衍生物和坚果种子 截图3 他们被正确地推断为素食主义者和素食主义者

然后,我使用对象属性HasComponent创建了两个个人作为食谱,一个只使用腰果(PastaVega),另一个同时使用切达干酪和腰果(PastaVege) 截图4和5

它们被推断为菜谱……但没有一个属于素食主义者菜谱和素食主义者菜谱的范畴,定义如下 截图6和7

我没有任何线索,为什么他们不被推断为素食者(或素食主义者)?我遗漏了什么

编辑:

如果我将素食食谱(或素食主义者)从 “食谱和(仅含素食成分)”

到 “食谱和配料(一些素食)”

截图8

我们展示了这些人,但这当然不是我想要做的,因为这样的话,它将包括混合肉类和素食的食谱。
那么,如何定义素食食谱和素食食谱类,以允许推理者正确推断食谱是素食者还是素食者???

您发现了猫头鹰推理使用开放世界假设的结果

你的
PastaVege
食谱没有被推断为
素食食谱
的原因是,尽管你在食谱中明确列出的成分确实都是
VegeratianFood
实例,但很可能是你食谱中一些目前未知的成分不是素食

由于您对
素食食谱
的限制是所有成分都应该是素食(而不仅仅是我们目前知道的那些),因此(在一个开放的世界中)无法确定您的食谱确实是
素食食谱

有很多方法可以解决这个问题,但是没有一种方法能真正做到你想要的——你需要从一个稍微不同的角度来处理它

不涉及精确的建模细节:尽管根据您当前的模型很难推断食谱是否是素食者,但推断食谱是否不是素食者相对简单;任何含有至少一种非素食成分的食谱都是非素食食谱

另一种方法是创建一组封闭的(素食)成分(使用OWL枚举类通过
oneOf
约束),但这是对模型的重大更改,当然,以这种方式列出所有可能的成分是很乏味的。

链接你给的截图只能在你的电脑上使用。你需要先把它们上传到imgur.com之类的网站上。