为什么我对Ontology的规则不起作用

时间:2012-11-28 08:35:44

标签: ontology owl protege swrl

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

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

可能会被视为

  

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

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

2 个答案:

答案 0 :(得分:2)

您在本体中所写的内容并非您在此问题中所写的规则。您的本体包含以下规则:

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

在RDF / XML文件中,将swrl:argument1swrl:argument2交换,然后就可以了。

答案 1 :(得分:0)

Sonvx,Pellet推理器可用于测试SWRL规则。 Pellet推理器提供Java API来测试SWRL规则。 download pellet here

如果您需要别的东西,请告诉我。