如何在 protege 中正确设置 "only" 限制?
How can i set "only" restriction properly in protege?
我想在 Protégé 中代表一个装球的容器。我有一个 RedBallContainer class 是一个 Container 和一个 RedBall 是一个 Ball,如下图所示:
我已经创建了一个 属性 包含域 Container 和 Range Ball。
现在我想说"a container is a RedBallContainer if only contains red balls"。为此,我添加了以下规则:
现在,当我 运行 推理机时,它告诉我 Container class 等于 Thing,但我认为我想要表示的东西是错误的!这里有一张推理者推断的图片:
我做错了什么?
嗯,你的限制规则不正确。它说
"RedballContainer is equivalent to a class that only contains RedBallContainers"
应该是:
"RedballContainer is equivalent to a class that only contains RedBalls"
Edit 如您所见,上述修复并未删除奇怪的推断等价关系。它存在的原因有点复杂,但大致是这样的:
- 我们知道
contains
的域是 Container
,因此根据定义,任何使用 contains
属性 的域都是 Container
。
- 我们知道
RedBallContainer
等同于任何只包含 RedBall
的东西,所以任何只包含红球的物品都是红球容器。
- 我们还知道
RedBallContainer
是 Container
的子类。
现在想象一些不是 Container
的项目。有两种选择:要么包含某些内容,要么什么都不包含。如果它确实包含某些东西,根据定义 1,它毕竟仍然是 Container
。
然而,如果它 不 包含任何东西,这意味着它包含的所有球实际上都是红球(因为它包含的零球中 none不是红球)!根据我们的第二个定义,这个东西因此是 RedBallContainer
。因此,根据我们的第三个定义,它毕竟必须是 Container
。
简而言之,在这套规则下,不可能有不是 Container
的东西。一切都是 Container
,所以 Container
和 Thing
是等价的。
啊,逻辑。
要修复,您可以将限制更改为 RedBallContainer
等同于任何仅包含红球的 Container
:
EquivalentTo Container and contains only RedBall
我想在 Protégé 中代表一个装球的容器。我有一个 RedBallContainer class 是一个 Container 和一个 RedBall 是一个 Ball,如下图所示:
我已经创建了一个 属性 包含域 Container 和 Range Ball。
现在我想说"a container is a RedBallContainer if only contains red balls"。为此,我添加了以下规则:
现在,当我 运行 推理机时,它告诉我 Container class 等于 Thing,但我认为我想要表示的东西是错误的!这里有一张推理者推断的图片:
我做错了什么?
嗯,你的限制规则不正确。它说
"RedballContainer is equivalent to a class that only contains RedBallContainers"
应该是:
"RedballContainer is equivalent to a class that only contains RedBalls"
Edit 如您所见,上述修复并未删除奇怪的推断等价关系。它存在的原因有点复杂,但大致是这样的:
- 我们知道
contains
的域是Container
,因此根据定义,任何使用contains
属性 的域都是Container
。 - 我们知道
RedBallContainer
等同于任何只包含RedBall
的东西,所以任何只包含红球的物品都是红球容器。 - 我们还知道
RedBallContainer
是Container
的子类。
现在想象一些不是 Container
的项目。有两种选择:要么包含某些内容,要么什么都不包含。如果它确实包含某些东西,根据定义 1,它毕竟仍然是 Container
。
然而,如果它 不 包含任何东西,这意味着它包含的所有球实际上都是红球(因为它包含的零球中 none不是红球)!根据我们的第二个定义,这个东西因此是 RedBallContainer
。因此,根据我们的第三个定义,它毕竟必须是 Container
。
简而言之,在这套规则下,不可能有不是 Container
的东西。一切都是 Container
,所以 Container
和 Thing
是等价的。
啊,逻辑。
要修复,您可以将限制更改为 RedBallContainer
等同于任何仅包含红球的 Container
:
EquivalentTo Container and contains only RedBall