OWL入门介绍
博客专区 > Airship 的博客 > 博客详情
OWL入门介绍
Airship 发表于11个月前
OWL入门介绍
  • 发表于 11个月前
  • 阅读 23
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

1. OWL是什么?

    OWL全写是:Web Ontologoy Language,翻译过来是:网络本体语言。是用来定义和实例化网络本体的语言。(什么是本体?我的这篇博客给了一个简单的定义:【转】一篇关于本体概念的综述。更详细的可以去w3c上找相关论文)
    光看定义肯定很抽象,来举一个例子说明一下:
    “请告诉我,如果我想为每道菜准备一种开胃酒,我都应该买哪些酒?顺便说一下,我不喜欢法国苏特恩白葡萄酒。” 这个问题请求,现在的互联网是无法回答的,这样就需要引入语义数据这个概念了。而为了表示语义数据,就需要用到我们今天的主角——OWL。

    OWL包含三个语言,分别是:OWL LiteOWL DL 和 OWL Full,他们之间是递进的关系,即OWL Lite最简单、能力最弱,OWL DL较强,OWL Full最强、包含前面两个的全部内容。
    OWL Lite OWL Lite是表达能力最弱的子语言。它是OWL DL的一个子集,但是通过降低OWL DL中的公理约束,保证了迅速高效的推理。它支持基数约束,但基数值只能为0或l。因为OWL Lite表达能力较弱,为其开发支持工具要比其他两个子语言容易一些。OWL Lite用于提供给那些仅需要一个分类层次和简单约束的用户。
    OWL DL(DL=Description Logic,描述逻辑)将可判定推理能力和较强表达能力作为首要目标,而忽略了对RDFS的兼容性。OWL DL包括了OWL语言的所有语言成分,但使用时必须符合一定的约束,受到一定的限制。OWL DL提供了描述逻辑的推理功能,描述逻辑是OWL的形式化基础。
    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里包括两种属性:
    1. 类型属性(datatype properties):描述类与其实例之间关系的属性。
    2. 对象属性(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]

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 31
博文 772
码字总数 18996
×
Airship
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: