Ontology 为什么我关于本体论的规则不存在';行不通

Ontology 为什么我关于本体论的规则不存在';行不通,ontology,owl,protege,swrl,Ontology,Owl,Protege,Swrl,我构建了一个简单的本体来测试SWRL规则如何在本体中推断个体之间的新关系,但它不起作用。我的规则是: (hasFather(?x, ?y) ∧ hasMother(?x, ?z) → spouseOf(?y, ?z) 可理解为 x有父亲y,x有母亲z→ y是z的配偶) 在我的本体论中有三个人:丈夫、妻子和儿子。我规定孩子有母亲是妻子,有父亲是丈夫。然后我的规则被用来确定丈夫是妻子的配偶。我用这个插件来测试我的规则,但没有结果。为什么规则不起作用?我的规则有问题吗,或者Protege 3.3

我构建了一个简单的本体来测试SWRL规则如何在本体中推断个体之间的新关系,但它不起作用。我的规则是:

(hasFather(?x, ?y)  ∧  hasMother(?x, ?z) → spouseOf(?y, ?z)
可理解为

x有父亲y,x有母亲z→ y是z的配偶)


在我的本体论中有三个人:丈夫、妻子和儿子。我规定孩子有母亲是妻子,有父亲是丈夫。然后我的规则被用来确定丈夫是妻子的配偶。我用这个插件来测试我的规则,但没有结果。为什么规则不起作用?我的规则有问题吗,或者Protege 3.3上的Jess有问题吗?

你在本体中写的不是你在这个问题中写的规则。您的本体包含以下规则:

hasFather(?y, ?x) ∧ hasMother(?z, ?x) → spouseOf(?y, ?z)

在RDF/XML文件中,将
swrl:argument1
swrl:argument2
交换,它就会工作。

Sonvx,Pellet Reasurer可用于测试swrl规则。Pellet reasoner提供Java API来测试SWRL规则


如果您还需要什么,请告诉我。

是的,没错。非常感谢你。我可以再问你一件事吗:你知道什么是适合的API,比如Java中的Jess插件吗?我想问你更多关于Protege的事情,它让我发疯。你介意把你的skype给我吗?非常感谢,我正在skype上等你。这个问题似乎离题了,因为它是关于OP代码中的一个输入错误,而该代码没有提供(链接到异地,但链接现在已断开)。没有“包含有效代码以重现”问题,并且“过于本地化”。