知识图谱初步学习(一)——本体+Protege新手学习

文章目录

  • 前言(本体详解)
    • 1.本体概念
    • 2.本体分类
    • 3.本体组成
    • 4.本体构建方法
    • 5.本体构建的原则
    • 6.本体应用
  • 一、protege简介
  • 二、软件使用步骤
    • 1.安装
    • 2.使用
    • 3.案例
  • 三、问题解决方案汇总


前言(本体详解)

在开始学习知识图谱的过程中,首先就是要了解什么是本体(ontology)。

1.本体概念

本体的概念最初源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体是可以在语义的层次上来对知识进行描述,可以看做是某一个领域知识的通用模型。
在人工智能界,最早给出本体定义的是Neches等人,他们将本体定义为“给出构成相关领域词汇的基本术语和关系,以及利用这些术语和关系构成的规定这些词汇外延的规则的定义”。
本体是从客观世界中抽象出来的一个概念模型,这个模型包含了某个学科领域内的基本术语和术语之间的关系(或者称为概念以及概念之间的关系)。

简而言之,本体是共享概念模型的形式化、规范、明确的说明。这个定义包含了四个方面:共享(share)、概念化(Conceptualization)、形式化(Formal)、明确(Explicit),下面对这4个分别介绍:

  • 共享:所体现的知识是被大家都认可的,是这个领域公认的术语组成的集合。
  • 概念化:指本体对事物的描述所形成了一组组的概念。
  • 明确性:指本体中的术语、属性和定理都是有明确的定义,不是模棱两可的。
  • 形式化:指本体能够被计算机可读,能够被计算机所处理。

2.本体分类

本体最常见的分类是根据本体的应用主题来进行分类,通常分为以下5类:领域本体、通用/常识本体、语言学本体、任务本体和知识本体。依据本体的层次和领域依赖度,Guarino等人将其分为4类:顶层本体、领域本体、任务本体和应用本体。

  • 顶层本体:研究通用的概念以及概念之间的关系,如空间、时间、事件、行为等,与具体的应用无关,完全独立于限定的领域,因此可以在较大范围内进行共享。
  • 领域本体:研究的是特定领域内概念及概念之间的关系。
  • 任务本体:定义一些通用任务或者相关的推理活动,用来表达具体任务内的概念及概念之间关系。
  • 应用本体:用来描述一些特定的应用,既可以引用领域本体中特定的概念,又可以引用任务本体中出现的概念。
    四者关系如图:
    知识图谱初步学习(一)——本体+Protege新手学习_第1张图片

3.本体组成

一个本体大部分由类(概念)(class)、关系(relations)、函数(function)、公理(axioms)和实例(instances)五种元素组成。

  • 类/概念(class):集合(sets)、概念、对象类型或者说事物的种类,如大学、电影、人等。
  • 关系(relations):类与个体之间的彼此关联所可能具有的方式,即用于描述类(概念)之间的关系,如part-of、kind-of等。四种基本关系如下:
    知识图谱初步学习(一)——本体+Protege新手学习_第2张图片
  • 函数(function):在声明语句当中,可用来代替具体术语的特定关系所构成的复杂结构。函数是一类特殊的关系,在这种关系中前n-1个元素可以唯一决定第n个元素,如father-of关系就是一个函数,father-of(x,y)表示y是x的父亲,x可以唯一确定它的父亲y;
  • 公理(axioms):公理代表本体内存在的事实,可以对本体内类或者关系进行约束,如概念甲属于概念乙的范围。采取特定逻辑形式的断言(包括规则在内)所共同构成的就是其本体在相应应用领域当中所描述的整个理论。这种定义有别于产生式语法和形式逻辑当中所说的“公理”。在这些学科当中,公理之中仅仅包括那些被断言为先验知识的声明。就这里的用法而言,“公理”之中还包括依据公理型声明所推导得出的理论。
  • 实例(个体):基础的或者说“底层的”对象。
    除此之外还包括以下几个部分:
  • 约束(限制):采取形式化方式所声明的,关于接受某项断言作为输入而必须成立的情况的描述。
  • 规则:用于描述可以依据特定形式的某项断言所能够得出的逻辑推论的,if-then(前因-后果)式语句形式的声明。
  • 属性:对象(和类)所可能具有的属性、特征、特性、特点和参数。
  • 事件(哲学):属性或关系的变化。

4.本体构建方法

W3C推荐的本体描述语言主要有RDF(资源描述框架 Resource Description Framework)、RDFS(RDF词汇描述语言RDF Schem)和OWL(Web本体语言Web Ontology Language)三种语言。

  • RDF:
    客观世界中任何一种关系都可以用一个三元组(主体/主语、谓语、客体/宾语)来进行表达。RDF用于描述web上的资源,是使用XML语言编写、计算机可读的,不是为了向用户展示。RDF使用web标识符(主体/主语)来标记资源,使用属性(谓语)和属性值(客体/宾语)来描述资源。这里的资源、属性和属性值就构成了一个陈述(或者被称为陈述中的主体、谓语和客体)。
    RDF是1997年10月W3C 发布的草案。RDF 的设计目的是通过对一般意义上的语义、语法和结构的支持,提供在各种不同的元数据体系之间的互操作性。RDF本身只有很少的语义定义元素,而是只提供一种框架体系,使不同的用户或团体能够在这一框架下应用他们自己的元数据元素。
    RDF基本的数据模型由三种对象类型组成:
    (1)资源(resource): RDF 表述的所有事物都被称为资源。
    (2)属性(properties): 描述资源的具体方面。特性或相互关系等。
    (3)声明(statement): 一个有属性及其值的特定资源称为RDF声明。
  • RDFS:
    RDFS是在RDF基础上对其进行扩展而形成的本体语言,解决了RDF模型原有的缺点,定义了类、属性、属性值来描述客观世界,并且通过定义域和值域来约束资源,更加形象化表达了知识
  • OWL:
    用来对本体进行语义描述。 细粒度的中文领域本体建议采用OWL进行描述了网络本体语言OWL (Web Ontology Language) 是实现语义Web的核心语言工具,它为网络本体的构建提供了丰富的建模原语。
    其保持了原有RDF、RDFS的兼容性,有保证率较好的语义表达能力,OWL本体中有3种基本元素:类、属性和实例。根据表达能力的递增顺序OWL分为三种子语言:
  • OWL-Lite:用于提供给那些只需要一个分类层次和简单约束的用户。表达能力最弱。
  • OWL-DL:(Description Logic,描述逻辑) 支持那些需要最强表达能力的推理系统的用户, OWL-DL旨在支持已有的描述逻辑商业处理和具有良好计算性质的推理系统。
  • OWL-Full: 支持那些需要尽管没有可计算性保证,但有最强的表达能力和完全自由的RDF语法的用户。
    三者关系如图:
    知识图谱初步学习(一)——本体+Protege新手学习_第3张图片
    介绍完本体之后,如何构建本体呢,就要用到protege这个软件。

5.本体构建的原则

自问题域和具体工程的考虑,构造本体的过程也是各不相同的。由于没有一个标准的本体构造方法,不少研究人员出于指导开发本体的目的,从实践出发,提出了不少有益于构造本体的标准。下面列举一些在实践中被证明比较有用的本体构建准则。

  1. 清晰性和客观性(Clarity and Objectivity):本体应该通过客观定义和自然语言文档对所定义的术语给出明确的、客观的语义定义。
  2. 完全性(Completeness):本体所给出的术语定义是完整的,完全能表达所描述术语的含义。
  3. 一致性(Coherence):由术语得出的推论与术语本身的含义是相容的,即支持与其定义相一致的推理,不会产生矛盾;所定义的公理以及用自然语言进行说明的文档也应该具有一致性。
  4. 最大单调可扩展性(Maximum Monotonic
    Extendibility):向本体中添加通用或专用的术语时,不需要修改其已有的概念定义和内容,支持在已有的概念基础上定义新术语。
  5. 最小本体承诺(Minimal Ontological Commitments):本体约定应该最小,对待建模对象应给出尽可能少的约束。而所谓的承诺,在本体中指的是对怎样以一致的、相容的方式使用共享词汇所达成的共识。一般地,本体约定只要能够满足特定的知识共享需求即可,这可以通过定义约束最弱的公理以及只定义交流所需的词汇来保证。
  6. 本体描述原则(Ontological Distinction Principle):本体中的类应该是互不相交的。
  7. 概念层次多样化(Diversification of hierarchies)增强多继承机制的能力。
  8. 模块化设计(Modularity)以最小化模块化之间的耦合度。
  9. 语义距离最小化(Minimization of the semantic distance):兄弟概念之间的语义距离最小化,尽可能把含义相似的概念抽象出来,用相同的元语来表示。
  10. 命名标准化(Standardization of names):尽可能使用标准的名字。
    这十条构建准则给出了构造本体的基本思路和框架,然而,明显的不足之处就是它们所反映的内容非常模糊且难于把握。

6.本体应用

目前,国内外关于本体论的研究广泛应用于知识管理、信息抽取、自然语言的处
理、信息系统的集成以及语义 Web
等。研究多集中于以下方面:
信息检索。当前主流的信息检索多是基于关键词的搜索,带来的直接问题就 是会产生很多的无用信息,严重影响了检索的效率。本体因其具有良好的概念层次关系和逻辑推理功能,可以在语义层面上消除信息的冗余,提高搜索效率。
信息抽取。传统的信息抽取技术尽管能提取出信息实体,但不能判别信息实 体间的分类与非分类关系。 应用了本体的信息抽取技术能有效地提升实体间分类与层 次关系,提高信息抽取的可用性。
信息系统间的互操作。目前存在于分布式网络环境下的信息系统,所面临的 主要问题就是各系统间的不兼容性,其核心问题就是异构问题。本体作为概念间的规 范说明,能够从语法、模式及语义层面上解决特定领域的异构问题,从而为信息系统 的大规模融合提供可能的解决方案。
语义 Web 服务。传统的语义 Web 对语义的操作能力有限,对服务的执行效 果产生根本的影响。本体理论作为语义网体系的核心层,提供共同的概念体系标准, 提升计算机的可理解性,提高语义 Web 的服务性能。

一、protege简介

  1. 来源:Protégé软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,或者说是本体开发工具,也是基于知识的编辑器,属于开放源代码软件。
  2. 用途:这个软件主要用于语义网中本体的构建,是语义网中本体构建的核心开发工具,现在的最新版本为5.5.0版本。
    提供了本体概念类,关系,属性和实例的构建,并且屏蔽了具体的本体描述语言,用户只需在概念层次上进行领域本体模型的构建。

二、软件使用步骤

1.安装

  1. 首先进入官方下载地址https://protege.stanford.edu/products.php,根据电脑的系统下载相应的版本,一般都是下载最新版本的。如下图:
    知识图谱初步学习(一)——本体+Protege新手学习_第4张图片
  2. 下载之后解压缩得到以下文件夹,再找到后缀名为.exe的可执行文件双击打开,按照提示直接下一步即可安装完毕啦。
    知识图谱初步学习(一)——本体+Protege新手学习_第5张图片
  3. 安装完成打开软件,有些tabs默认没有显示,在window里面可以找到,如图:
    知识图谱初步学习(一)——本体+Protege新手学习_第6张图片

2.使用

各tab的含义及作用如下:

  • Activeontology是显示当前的实体名称,以URI的形式显示,前面是www.semanticweb.org后面跟着主机名(我的主机名称为dell),再后面是默认的根据时间命名实体。
  • Entities,可以看作是实体的总览,能够看到我们创建实体的一些主要信息,是对实体信息的汇总。
  • Classes,是对本体模型中,类型部分的编辑,能够定义类之间的层次关系,相互之间的关系。
  • Object properties,物体关系,可以理解为编辑实体外部的关系,也就是实体和实体之间的关系。
  • Data properties,数据属性,可以理解为编辑实体内部的属性,用来定义实体本身所具有的属性以及属性值。
  • Annotation Properties,标注属性,是w3c定义的一些常用的属性,根据URI可以看到这些属性的具体说明。
  • Individuals by class,根据类型创建的实例,用来编辑实例信息,类似于java程序中的对象,要归于某个类别。
  • OntoGraf,本体关系图,用来展示我们创建的本体里面各个实体之间的层次关系。
  • SPARQL Query,SPARQL查询,使用SPARQL语言,对创建的本体进行查询,获取查询结果。

知识图谱初步学习(一)——本体+Protege新手学习_第7张图片
改正:ObjectProperty (对象属性),link an individual to an individual(实体和实体之间的关系)
DatatypeProperty(数据属性) , link an individual to the data(实例的数据)

对象属性和数据属性的定义可以这么理解:假如有-对夫妻小红和小绿,那么我们可以先定义两个类一男人、女人;小红是类"女人”的一个实例,小绿是类"男人"的一个实例。之后我们可以定义小红和小绿之间的夫妻关系,这个关系就是对象属性"夫妻"。同时我们又知道小红今年30岁,那么我们可以定义小红的一个数据属性"年龄",属性值是"30"。

3.案例

以下图为例子,用protege创建文献本体。
知识图谱初步学习(一)——本体+Protege新手学习_第8张图片

(1)创建模型层数据

本体分为模型层和数据层,模型层主要定义类和类之间的关系。Thing是所有类型的根节点,也就是基类,所有的类型都是从Thing派生出来的。
在父类下面创建子类需要先选中父类,再按住快捷键ctrl+E创建新的子类,先创建内容、载体、语言、形式这是个大类,接着再创建各自的小类。如下图:
知识图谱初步学习(一)——本体+Protege新手学习_第9张图片
批量加入子类步骤如下:
知识图谱初步学习(一)——本体+Protege新手学习_第10张图片
知识图谱初步学习(一)——本体+Protege新手学习_第11张图片

(2)可以为实体之间添加关系
例如汉语与英语是互斥的关系,可以在class下面添加disjoint with(与…不相交)选择英语。
知识图谱初步学习(一)——本体+Protege新手学习_第12张图片
(3)创建实体关系

创建实体之间的关系,在Object Properties这个tab页面。编辑方法和添加类型的tab页面类似,最顶层的实体关系为owl:topObjectProperty,选择后,点击工具栏的按钮或者右键选择add sub-properties,添加使用这个关系。对于“使用”这个关系,Domains选择内容,Ranges选择语言,代表三元组中主语是内容,谓语是使用,宾语是语言,组成的三元组就是内容使用语言。

知识图谱初步学习(一)——本体+Protege新手学习_第13张图片

(4)创建实体属性

创建实体的属性,在Data properties这个tab页面。添加属性后,在Built in datatypes中选择xsd:string,表示属性值类型是个字符串。
知识图谱初步学习(一)——本体+Protege新手学习_第14张图片

(5)创建实例
创建本体的实例,在Individuals by class这个tab页面。这里我的案例没有用到这个,下次换一个案例试试。

(6)本体展示
最后可以点击OntoGraf来展示我们的本体啦,点击上方按钮会用不同方式来显示关系图。
知识图谱初步学习(一)——本体+Protege新手学习_第15张图片
动图如下,太有趣了吧~

三、问题解决方案汇总

暂时刚入门,后续遇到问题再进行汇总。

  • 完成本体构建如何保存?
    第一次使用我没有找到保存的按钮,以为是自动保存的,结果第二次看没有了,这次长记性了,以后一定要记得保存!!!保存的步骤如下:
    (1)点击new新建文件,编辑完成之后点击save as,如下图:
    知识图谱初步学习(一)——本体+Protege新手学习_第16张图片

(2)点击确认

知识图谱初步学习(一)——本体+Protege新手学习_第17张图片
(3)选择存储路径,点击保存
知识图谱初步学习(一)——本体+Protege新手学习_第18张图片
(4)下次打开这里会有记录哒。
知识图谱初步学习(一)——本体+Protege新手学习_第19张图片

部分内容参考博客:1.https://blog.csdn.net/cooldream2009/article/details/97657836
2.https://blog.csdn.net/baijinswpu/article/details/81113314

你可能感兴趣的:(知识图谱,本体,Protege)