0

我有一个简单的本体,它有一个“Person”类,它有 3 个个体“A”、“B”、“C”。它们通过名为 的对象属性相互关联isFatherOf,例如,

A isFatherOf B
B isFatherOf C

我设置了另一个属性hasFather,它是 的 Inverse 属性isFaterOf。我期望推理者推断:

B hasFatherOf A
C hasFatherOf B

然而,没有一个内置的推理器(FaCT++、HermiT、Pellet)没有推断出它们。

另外,我想制作一个财产链isFatherOf,比如isGrandFatherOf

A isGrandFatherOf C

因此,我将 SuperProperty 设置如下:

isFatherOf o isFatherOf SubPropertyOf isGrandFatherOf

但它也失败了。

我在 Protege 4.3 和 5.0.0 (Build RC1) 上使用 Hermit 1.3.8、Pellet 2.2.0 和 FaCT++ 1.6.4 得到了相同的结果。我在互联网上搜索了文档和问题,但仍然无法弄清楚为什么会发生这种情况。是owl文件的链接。

在此处输入图像描述

添加了可能的错误报告

该问题可能是由错误引起的。我在以下环境中获得了所需的推理结果:Win7 64 位、Protege 5-beta21(和 Protege 5-RC1)、java 1.8.0_20。

但问题确实出现在:Win10 64位、Protege 5-beta21(和Protege 5-RC1)、java 1.8.0_73的环境中。我无法得到任何推断结果。我用 3 种不同的推理器(HermiT 1.3.8、Pellet 2.2.0 和 FaCT++ 1.6.4)尝试了推理。其中,只有 HermiT 1.3.8 显示如下错误信息。日志说是win8,但实际上是win10。 在此处输入图像描述在此处输入图像描述在此处输入图像描述

4

0 回答 0