不相交的对象属性与不相交的类

时间:2015-04-20 10:18:31

标签: semantic-web owl ontology

如果查看OWL 2 specification,则定义了以下公理:

不相交的属性

  

DisjointObjectProperties(a:hasFather a:hasMother)父亲与母性脱节。   ObjectPropertyAssertion(a:hasFather a:Stewie a:Peter)Peter是Stewie的父亲。   ObjectPropertyAssertion(a:hasMother a:Stewie a:Lois)Lois是Stewie的母亲。

不相交的课程

  

DisjointClasses(a:男孩a:女孩)没有什么可以是男孩和女孩   ClassAssertion(a:男孩a:Stewie)Stewie是个男孩。

所以我的问题是,如果我想要定义以下内容:

Declaration( NamedIndividual( a:Peter ) )
Declaration( NamedIndividual( a:Lois ) )
ClassAssertion( a:Father a:Peter )
ClassAssertion( a:Mother a:Lois )

然后定义不相交,我是否需要(1)或(2)或同时需要两者:

(1) DisjointObjectProperties( a:hasFather a:hasMother )
(2) DisjointClasses( a:Mother a:Father )

能够让推理知道没有母亲可以成为父亲?不是这样定义两者都只是多余的吗?

1 个答案:

答案 0 :(得分:1)

你没有提到母亲和父亲之间的任何联系以及属性hasMother和hasFather,所以很难判断你是否做了一些额外的假设(例如,hasMother的范围是母亲)。

当断言C类和D类是不相交的时,你说的是对于每个x,不可能是C(x)和D(x)

的情况

当你断言属性P和Q是不相交的时,你会说对于每对x和y,不一定是P(x,y)和Q(x,y)。< / p>

现在,假设你有一个母语和父类的本体,属性有母亲和有父,有范围母亲和父亲。这意味着无论何时你有母亲(a,m),你都可以推断母亲(m),每当你有了父亲(a,f),你就可以推断出父亲(f)。

在这种特殊情况下,如果你声明母亲和父亲不相交,这有副作用使得hasMother和hasFather不相交,因为如果你有hasMother(x,y)和hasFather(x,y),那么你会有母亲(y)和父亲(y),这是不一致的。

在这种特殊情况下,如果您声明hasMother和hasFather是不相交的,那么会产生使母亲和父亲脱节的副作用。例如,你可以拥有hasMother(x1,y)和hasFather(x2,y),并从那推断出母亲(y)和父亲(y)。