如果文章对您有用,请随意打赏。

您的支持将鼓励我做的更好!

不懈探索,简单生活

Java 语义网编程系列二: 本体

  什么叫本体

   OWL本体用于对领域知识进行建模,本体是语义web的核心元素。

  本体元素概述

  web上本体一般以文档的形式进行存储。文档构成如下:

  A. 本体首部:

   首部是一种用来描述本体自身的资源。首部对本体进行描述,一般会含有注释(comment)、标签(label)、版本信息等。

  B. 类和个体

  一个owl类是一种特殊的资源,它描述了具有共同特征或者在某方面相似的资源的一个集合。个体(individual)也是一种资源,它是类的成员代表该类的一个实例。

例如Person是一个类,Ryan Andrew 是它的一个实例。

C.属性

OWL中的属性也是一种资源,它在描述个体的陈述中充当谓词。OWL中有两种主要类型的属性:对象属性用于将一组个体和另外一组个体连接起来,而数据类型属性用于将个体和文字连接起来。例如:Ryan hasName 的数据类型属性,Ryan Konw这样的对象属性将RyanAndrew连接起来。

D.标注

标注其实也是一个属性,和其他属性类似,但它没有相关联的语义主要是在界面中显示使用.

E.数据类型

OWL中的数据类型表示数据值的取值范围。整形、字符串、时间都是常用的数据类型。

 

Thing nothing

owl中有两个基本类:owl: thing owl: nothing,所有的类都从这两个类派生而来。资源owl: thing 表示所有个体的类,而且所有充当类的实例的资源本质上也是owl: thing的成员。 owlnothing 表示一个空类,即没有一个成员的类。

 

属性的定义域和值域

owl允许使用rdfs:domain rdfs:range 来描述属性和类之间或者属性和数据类型之前的定义域关系和值域关系。

domain:指定断言中主语的类型。

Range : 指定断言中宾语的类型。

举例如上图:

Ryan Andrew 为两个individual 他们的domain 属于 Person , 他们的hasname 属性的 range string

 

描述属性

即特定含义属性。

1 rdfssubpropertyof

和类一样可以使用 subpropertyof 属性对属性进行分类。为了解释子属性关系的内涵,假设在本体中声明 属性 hasNickName subpropertyof hasName 该假设声明一下事实:

hasNickName hasName 的一个特化。

任何使用hasName关联起来的两个资源必然可以使用hasNickName关联起来。

 

2 逆属性

属性声明了有向的关系,关系的方向是从定义域到值域或者从主语到宾语。有时在一个方向上存在一个关系还隐藏另一个关系。

Owl 允许使用owl:inverseof 属性将一个属性声明为另一个属性的逆属性,假设下面的陈述声明 hasChild hasParent 是可逆的那么一下事实成立:

如果存在陈述(individualA hasChild individualB) 则必有( individualB hasParent individualA )

 

3 不相交属性

Owl 提供了一对将两个属性指定为不相交的构造。当我们说两个属性不相交时那么就存在如下事实

两个属性的主语和宾语不可能完全相同

例如 hasFather hasMother

 

4

Owl 中引入键的概念。Owl 中含有 owl:hasKey 属性,用于将某个特定的类和一个属性集合联系起来。

 

5  数据类型

数据类型用来表示使用Uri标识的数据值的值域。

 

 

 

 

posted @ 2011-08-14 16:41  帅虫哥  阅读(1128)  评论(0编辑  收藏  举报