文章目录

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

前言(本体详解)

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

1.本体概念

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

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

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

2.本体分类

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

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

3.本体组成

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

  • 类/概念(class):集合(sets)、概念、对象类型或者说事物的种类,如大学、电影、人等。
  • 关系(relations):类与个体之间的彼此关联所可能具有的方式,即用于描述类(概念)之间的关系,如part-of、kind-of等。四种基本关系如下:
  • 函数(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这个软件。

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,根据电脑的系统下载相应的版本,一般都是下载最新版本的。如下图:
  2. 下载之后解压缩得到以下文件夹,再找到后缀名为.exe的可执行文件双击打开,按照提示直接下一步即可安装完毕啦。
  3. 安装完成打开软件,有些tabs默认没有显示,在window里面可以找到,如图:

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语言,对创建的本体进行查询,获取查询结果。


改正:ObjectProperty (对象属性),link an individual to an individual(实体和实体之间的关系)
DatatypeProperty(数据属性) , link an individual to the data(实例的数据)

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

3.案例

以下图为例子,用protege创建文献本体。

(1)创建模型层数据

本体分为模型层和数据层,模型层主要定义类和类之间的关系。Thing是所有类型的根节点,也就是基类,所有的类型都是从Thing派生出来的。
在父类下面创建子类需要先选中父类,再按住快捷键ctrl+E创建新的子类,先创建内容、载体、语言、形式这是个大类,接着再创建各自的小类。如下图:

批量加入子类步骤如下:

(2)可以为实体之间添加关系
例如汉语与英语是互斥的关系,可以在class下面添加disjoint with(与…不相交)选择英语。

(3)创建实体关系

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

(4)创建实体属性

创建实体的属性,在Data properties这个tab页面。添加属性后,在Built in datatypes中选择xsd:string,表示属性值类型是个字符串。

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

(6)本体展示
最后可以点击OntoGraf来展示我们的本体啦,点击上方按钮会用不同方式来显示关系图。

动图如下,太有趣了吧~

三、问题解决方案汇总

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

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

(2)点击确认


(3)选择存储路径,点击保存

(4)下次打开这里会有记录哒。

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

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

  1. 知识图谱初步学习(零)——本体是什么

    知识图谱初步学习(零)--本体是什么 文章目录 知识图谱初步学习(零)--本体是什么 前言 一. 哲学层面理解 二. 引申到语义层面理解 三.学术层面 四.其他层面 - 术语 - 语义网 五.本体与类 ...

  2. 知识图谱文献综述(第二章 知识表示学习)

    第二章 知识表示学习 1. 任务定义.目标和研究意义 知识表示是知识获取与应用的基础,因此知识表示学习问题,是贯穿知识库 的构建与应用全过程的关键问题.人们通常以网络的形式组织知识库中的知识, 网络中 ...

  3. 知识图谱·概念与技术--第1章学习笔记--知识图谱概述--知识图谱的概念,与传统语义网络的区别

    知识图谱·概念与技术--第1章学习笔记--知识图谱概述--知识图谱的概念,与传统语义网络的区别 知识图谱的概念,与传统语义网络的区别 狭义概念 作为语义网络的内涵 与传统语义网络的区别 优点 缺点 与 ...

  4. 有没有编码的知识图谱_没有人告诉您关于学习编码的知识-以及为什么如此困难...

    有没有编码的知识图谱 by Joyce Akiko 通过乔伊斯明子 没有人告诉您关于学习编码的知识-以及为什么如此困难 (What Nobody Tells You About Learning To ...

  5. 知识图谱构建技术综述-2.3知识推理-学习笔记

    文章信息:文章末尾,只是一个自我学习过程的积累,红色为可探索思考的地方. 目录 2.3 节 知识推理 2.3.1 基于规则的推理 2.3.2 基于分布式特征表示推理 (1)基于翻译模型的知识推理 (2 ...

  6. 论文浅尝 - ICLR2020 | 知识图谱中数值规则的可微学习

    论文笔记整理:许泽众,浙江大学博士研究生.研究方向:知识图谱,规则挖掘等. 论文链接:https://openreview.net/pdf?id=rJleKgrKwS 本文解决的是规则的学习问题,学习 ...

  7. 知识图谱相关会议之观后感分享与学习总结

    2015年6月27日,清华大学FIT楼多功能报告厅,中国中文信息学会青年工委系列学术活动--知识图谱研究青年学者研讨会.         由于我毕设是与知识图谱.实体消歧.实体对齐.知识集成相关的,所 ...

  8. 论文浅尝 \ 联合知识图谱实例和本体概念的通用表示学习

    论文笔记整理:周虹廷,浙江大学研究生.研究方向:知识图谱,图表示学习等. 论文链接: http://web.cs.ucla.edu/~yzsun/papers/2019_KDD_JOIE.pdf 本文 ...

  9. 《知识图谱》赵军 学习笔记

    知识图谱读书笔记 文章目录 知识图谱读书笔记 一. 概述 1.1 什么是知识图谱 1.2 知识图谱发展历程 1.3 知识图谱类型 1.4 知识图谱生命周期 知识体系构建 知识获取 知识融合 知识存储 ...

最新文章

  1. 【点云重采样Resampling】Python-pcl 基于多项式平滑点云及法线估计的曲面重建
  2. Java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
  3. JavaScript一次性定时器的设置和取消
  4. DataRow 数组转化成DataTable
  5. 关于volatile(转)
  6. dababase 差异
  7. 设计模式三(工厂方法模式)学习笔记
  8. pythonfor循环输入_python的for循环
  9. 汇编语言基本概念(续13)
  10. 集训被虐第一天7.31
  11. javascript 日期时间函数(经典+完善+实用)
  12. 497.非重叠矩形中的随机点
  13. javaweb项目图
  14. 用html和CSS做个人简历
  15. aws服务器修改root密码,使用Xshell登录AWS EC2服务器设置root+密码方式登录
  16. 震动活塞式柱状取样器的使用
  17. MachO 代码签名剖析
  18. 量子计算(二):为什么需要量子计算
  19. Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/ Using the URLconf defin
  20. 学会Squid之传统代理和透明代理一篇就够了!

热门文章

  1. c语言虚数变量,关于C语言中的Complex(复数类型)和imaginary(虚数类型)
  2. 跟我学aspectj之四 ----- pointcut基础语法
  3. 阿里百秀后台管理项目笔记 ---- Day01
  4. 基于ssm的考勤设备和考勤记录管理系统------(二)
  5. 倒计时软件/倒计时工具/倒计时器
  6. 联想LJ2400打印机 免换齿轮清零方法
  7. 美国服务器的ping值多少网速才算快?
  8. 一年过去了,在中软国际怎么样
  9. 从WORD生成符合S1000D规范的XML文件
  10. android方向本科毕业设计题目,计算机专业毕业设计题目-安卓类