protege 反身 属性 用法

protege reflexive property usage

在 protege 中,反身 属性 被分配给 所有 个人,无论 范围 和个人所属的 class。
那么这个限制有什么用呢?

P.S:假设有三个人:

NamedIndividual( :John )
NamedIndividual( :alex )
NamedIndividual( :BMW )

和一个对象属性:

 ObjectProperty( :hasFriend ) 
 ReflexiveObjectProperty(:hasFriend)

运行 pellet 推断:

BMW hasFriend BMW

这个推论在概念上毫无意义

The even more irresistible SROIQ and Foundations of Description Logics这样的论文指出自反和非自反属性与exists r.Self概念密切相关。 IE。 Narcissist 可以定义为 Narcissist \sqsubseteq loves.Self.

SROIQ 论文实际上提到自反和非自反属性的主要用例是有限的,只有在与基数限制一起使用时才有意义。 IE。如果您将 PopularPerson 定义为至少有 2 个朋友的人,并且 hasFriend 是反身的,那么通过断言一个人有 1 个已知朋友将导致该人 class 化为 PopularPerson 因为这个人已经被假定为自己的朋友。

有趣的是,论文中还提到reflexive(r)相当于将GCItop \sqsubseteq exists r.Self添加到TBox中。就我个人而言,这更直观,并且提供了我认为您似乎想要实现的控制。特别是,这允许您将 \top 替换为您选择的任何 class。非自反属性存在类似的等价物。