如何指定属性组合意味着另一个属性

时间:2014-06-12 14:55:46

标签: rdf owl

在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属性也应该适用。

1 个答案:

答案 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):

role constructors

OWL2支持其中一些。顶部和底部属性是通用角色(及其补充)。它还支持反转。你可以通过属性链获得一些的成分。