OWL入门介绍(ZZ)

1. OWL是什么?

OWL全写是:Web Ontologoy Language,翻译过来是:网络本体语言。是用来定义和实例化网络本体的语言。(什么是本体?我的这篇博客给了一个简单的定义:【转】一篇关于本体概念的综述。更详细的可以去 w3c 上找相关论文)

光看定义肯定很抽象,来举一个例子说明一下:

“请告诉我,如果我想为每道菜准备一种开胃酒,我都应该买哪些酒?顺便说一下,我不喜欢法国苏特恩白葡萄酒。”

这个问题请求,现在的互联网是无法回答的,这样就需要引入语义数据这个概念了。而为了表示语义数据,就需要用到我们今天的主角——OWL。

OWL包含三个语言,分别是:OWL LiteOWL DLOWL Full,他们之间是递进的关系,即 OWL Lite 最简单、能力最弱,OWL DL 较强,OWL Full 最强、包含前面两个的全部内容。

  • OWL Lite
    OWL Lite 是表达能力最弱的子语言。它是 OWL DL 的一个子集,但是通过降低 OWL DL 中的公理约束,保证了迅速高效的推理。它支持基数约束,但基数值只能为0或l。因为OWL Lite表达能力较弱,为其开发支持工具要比其他两个子语言容易一些。OWL Lite用于提供给那些仅需要一个分类层次和简单约束的用户。

  • OWL DL
    OWL DL(DL=Description Logic,描述逻辑)将可判定推理能力和较强表达能力作为首要目标,而忽略了对RDFS的兼容性。OWL DL包括了OWL语言的所有语言成分,但使用时必须符合一定的约束,受到一定的限制。OWL DL提供了描述逻辑的推理功能,描述逻辑是OWL的形式化基础。

  • OWL Full
    OWL Full 包含OWL的全部语言成分并取消了OWL DL中的限制,它将RDFS扩展为一个完备的本体语言,支持那些不需要可计算性保证(no computational guarantees)但需要最强表达能力和完全自由的RDFS用户。在OWL Full中,一个类可以看成是个体的集合,也可以看成是一个个体。由于OWL Full取消了基数限制中对可传递性质的约束,因此不能保证可判定推理

2. OWL的基本元素:类(Class)、个体(Individual) 和 属性(Property)

2.1 类(Class)

类(Class):一群东西我们可以叫做一个类。其实OWL里的类的概念基本上和OO语言里的类的概念一样。在OWL中规定,任何东西都是类owl:Thing的一个成员(实例)。因此,任何用户定义的类都是owl:Thing类的子类。

OWL中子类(Subclass)的概念也和OO语言里子类概念一样,也就是所有子类的实例都是父类的实例。例如,我们可以定义一个类:中国,定义类吉林省是中国的子类,这样如果一个实例是吉林省的实例,那它肯定是中国的实例。

在OWL的本体映射中,提供了类的相等关系(equivalentClass)。两个类是相等的,就是说一个类是另一个类的换一种说法。例如:类:中国制造 和 类:出自中国的东西,如果定义了相等关系,就是说一个实例是“中国制造”的,那它就是“出自中国的东西”,只要说明它是一个的实例,则它同时具有两个的属性。

2.2 个体(Individual)

个体:OWL里的任何东西都是个体。个体是用来描述类的成员的概念,一个个体就是类中的一个成员。

这里要注意区分一下个体与类的实例。其实这两个概念几乎一样,唯一的区别是:我们说实例的时候都是说:某个类的实例,所以一般的,讲实例时就带有它的类,一个实例对应一个类;而说个体时,不带有类,例如我们可以说:个体a是类C和类D的实例。

由上面我们可以得出一个新的结论:一个个体可以同时是多个不相关的类的实例。例如,ThinkPad笔记本是类:笔记本电脑 的实例,也是类:中国制造 的实例。

说到这,还有一对容易混淆的概念:子类(Subclass)实例(Instance)。区分的关键是要牢记一点,类是一堆东西的总称,实例是这堆东西中的一个。

2.3 属性(Property)

RDF/OWL里都是用二元关系来描述东西的,比如描述:比尔盖茨是一个人,在 RDF/OWL 里就是这样描述的:比尔盖茨 ——是——> 人。其中,比尔盖茨 和 人 之间的那个关系“——是——>”就是 RDF/OWL 里的属性。

属性:就是一个二元关系。OWL里包括两种属性:

  • 类型属性(datatype properties):描述类与其实例之间关系的属性。
  • 对象属性(object properties):描述两个不同类的实例之间关系的属性。

既然属性是上面例子里那样的一个二元关系,那么属性就必须有且只有两个端点,起点和终点都应该是两个个体(实例)。我们用原集(domain) 来描述起点的实例的类,用象集(range) 来描述终点的实例的类。这是属性中一个比较重要的概念。
例如,有这样一条OWL语句:比尔盖茨 is-father-of “Jennifer Gates” ,并且我们的本体中定义得有:属性:is-father-of 的domain是类:男人。这样,就算我们没有明显的说“比尔盖茨”是男的,但是通过上面这个属性定义,OWL的推理机就能知道 比尔盖茨 是 男人 的实例。

属性也类似类那样,有子属性(Subproperty)的概念。例如,类:酒 有一个属性是:有说明书,说明书可能包括酒的颜色、酒精含量、生产日期等,酒 还有一个属性是:有颜色标签,这样,其实颜色标签就是一种简单的说明书——只是里面只说明了酒的颜色,所以,有颜色标签 这个属性就是 有说明书 属性的子属性。

3. OWL 更多内容——公理和约束

除了上面这些基本的东西以外(上面的东西太太太太。。。基本了,实际上OWL的重点是有很多预定义(built-in)的公理和约束),OWL有很多的公 理和约束,这些才是真正使得OWL能够表示语义数据的东西。想了解关于这些的东西,可以参见这些文章(和其中提到的相关论文):

  1. OWL Web Ontology Language Guide [en]
  2. OWL Web Ontology Language Reference [en]
  3. OWL Web Ontology Language Semantics and Abstract Syntax [en]

source:

http://hi.baidu.com/wuxicn/item/4501ca31fde41b20b2c0c598

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注