0

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

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

并且可以读作

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

我的本体中有三个人:丈夫、妻子和儿子。我设定孩子有妈妈是妻子,有爸爸是丈夫。然后我的规则被用来设置丈夫是妻子的配偶。我使用Jess插件来测试我的规则,但没有结果。为什么规则不起作用?我的规则有问题,还是 Jess on Protege 3.3 有问题?

4

2 回答 2

2

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

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

在 RDF/XML 文件中,交换swrl:argument1它就swrl:argument2可以了。

于 2012-11-28T13:23:46.337 回答
0

Sonvx, Pellet reasoner 可用于测试 SWRL 规则。Pellet reasoner 提供 Java API 来测试 SWRL 规则。在这里下载颗粒

让我知道你是否需要别的东西。

于 2012-12-05T05:18:28.167 回答