在OWL2中,是否有一种方法可以指定如果某些属性组合适用于实体,则还会隐式应用其他属性?即,如果R(S,O)成立并且P(S,O)成立,那么Q(S,O)也成立。
我知道这可以通过Classes实现,但我找不到使用属性的方法。
例如,作为一个有点人为的例子,请考虑属性:is-older-than
,:is-brother-of
和:is-older-brother-of
。显然,如果前两个实体在两个实体之间保持,那么第三个也将保持,但我想告诉推理者自动应用该属性,而不必指定它。
这类似于owl:propertyChainAxiom
,因为它指定了隐式属性。在这种情况下,隐式属性的规则是不同的。
或者,如果可以根据对象主题的类型隐含属性,我想我也可以得到我想要的东西。例如,如果我有一个属性:performs-with
和一个子属性:rocks-out-with
,我有一个类:Band
和一个子类:RockBand
,我想要如果:performs-with
属性的对象是:RockBand
,那么:rocks-out-with
属性也应该适用。
答案 0 :(得分:1)
这称为属性交集。如果
R(s,o)∧S(s,o)→P(s,o)
然后你说那个
R⊓S⊑P
对于课程支持对应方,你是完全正确的。但是在OWL2中不支持属性。某些描述逻辑具有交集(和其他)角色构造函数,但不是OWL2所基于的角色构造函数。但是,有一些工作可以支持它们。例如,见Cheap Boolean Role Constructors for Description Logics。 来自的描述逻辑手册的Appendix 1: Description Logic Terminology还提供了描述逻辑可能支持的角色构造函数列表(p.499):
OWL2支持其中一些。顶部和底部属性是通用角色(及其补充)。它还支持反转。你可以通过属性链获得一些的成分。