OWL2学习笔记

来源:互联网 发布:2013年总决赛韦德数据 编辑:程序博客网 时间:2024/05/26 22:07

OWL2是一种知识表示语言,旨在对兴趣领域的知识进行明确表达(formulate)、交换和推理。应该首先解释一些基本概念,以方便理解知识在OWL2中是如何被表达的。这些基本概念如下:

·                     公理(Axioms):,一个OWL本体表达的基本陈述

·                     实体(Entities):用来指向现实世界对象的元素

·                     表达式(Expressions):实体的组合,从简单的描述形成复杂的描述

 

·              OWL2中,类的成员通常被称为个体(individual)而非实例(instance

·              当我们声称某个资源是一个特定类型时,称这是一个断言

 

 

类(Classes)和实例(Instances

ClassAssertion( :Person :Mary )

这个陈述谈到一个名叫Mary的个体并且声明这个个体是人。更专业地,是一个人通过说明Mary归属于(或者“is a member of”,甚至更专业地称“is an instance of”)所有人类的这个class来表达。通常,类被用来对一些具有共性的个体分组,以便引用它们。因此,类本质上代表了个体集合。建模时,类经常被用来表示由一组人类思维概念组成的对象,如概念person或者woman。所以,我们可以用同样的方式表明Mary是女人,即她是woman类的实例:

 

类层次结构

SubClassOf( :Woman :Person )

在一个本体中这个公理的存在使得推理器可以针对每一个被指定为woman类的实例的个体,推断出她同样也是person这个类的实例。作为一个经验法则,如果短语“每一个A都是一个B”有意义且正确,那么类A跟类B之间的子类关系就能够指定。

在本体建模中经常使用子类陈述,不仅用来偶尔声明这种相关性,而且通过指定兴趣领域所有类的泛化关系对整个类层次结构建模。假设我们想表示所有的母亲都是女人:

 

SubClassOf( :Mother :Woman )

每个归类为母亲的单独个体,也是一个女人(因此也是人),可以推导出Mother也是Person的子类,这意味着类和子类之间的关系传递的(transitive)。除此之外,它也是自反的(reflexive),意味着每一个类都是它自己的子类,这也很直观,很明显每个人都是一个人。

 

EquivalentClasses( :Person :Human )

上述陈述声明了Person类和Human类是完全等价的,相当于同时声明Person类是Human类的子类以及Human类是Person类的子类。

 

类不相交

DisjointClasses( :Woman :Man )

 

对象属性

属性:描述个体以何种方式关联的实体

 

ObjectPropertyAssertion( :hasWife :John :Mary )

个体书写的顺序很重要。“Mary is John's wife”可能是真,“John is Mary's wife”则一定为假。

。事实上,这是一种常见的建模错误,通过使用只允许一种直观阅读的属性名称可以避免。例中的名词(如wife),这种无歧义的名称可以用“of”或者“has”来构建(wifeOf或hasWife)。对于动词(例如“to love”),变化词形(loves)或者使用带有 “by”的被动语态(lovedBy)就可以防止误解。

我们也能够声明两个个体不是通过一个属性关联。例如下面的例子,指出Mary不是Bill的妻子。

 

 NegativeObjectPropertyAssertion( :hasWife :Bill :Mary )

否定属性断言提供了一个唯一的机会声明我们知道为假的事物。这类信息在OWL中特别重要,OWL的默认立场是任何事情都是可能的,除非你另外说明。

 

原创粉丝点击