文章目录

  • 前言(本体详解)
    • 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. WTL 出现的SetMsgHandled和IsMsgHandled 错误
  2. 最详细的R-CNN论文笔记
  3. OpenstackNova-KVM性能调优
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的高校大学生社团招新管理系统
  5. Android--手机root获取与判断应用是否获取
  6. 颜色和心理年龄测试软件,超准的色彩心理学:选8个颜色,就可以测出你的心理年龄...
  7. H3C 路由备份与IP聚合
  8. JDK环境变量的两种配置方法——以JDK8和JDK10为例
  9. Ubuntu下挂载Windows分区
  10. 微信图片怎么删除?微信聊天图片批量删除只需要用这2招…
  11. 名人名言摘选-李嘉诚
  12. 计算标准累积正态分布_正态分布在用户等级划分的应用
  13. 新电脑安装系统时提示 File:\Boot\BCD Status:0xc000000e 错误解决方案
  14. 【数据结构】循环队列的front,rear指针以及队列满的条件、计算队列长度
  15. 第03课:如何快速构建自己的ChatGPT应用?
  16. 随心玩玩(七)ELK日志系统配置部署
  17. Typora插入图片的合理保存【windows平台】
  18. 全球及中国TDI相机行业深度调研与未来发展趋势展望报告2021年版
  19. Lua基础:Lua基础
  20. python复数类型转换_python复数类

热门文章

  1. 应用安全的创新,Apiiro和WABBI
  2. android7.0隐藏标题栏,大佬,7.0.22设置后只有标题栏和状态栏能改背景颜色,其它的没变化,要怎么处理一下...
  3. 天猫店铺基础知识分享
  4. uniapp 封装时间选择器组件
  5. C# ushort强制转换int会导致丢失
  6. linux mmap 函数详解,mmap函数详解与代码实操
  7. 免费开源HC小区物业管理系统
  8. 大咖说|试衣到家 CEO:我们卖的不是衣服,是服务【QA完整版】
  9. java 2实验指导_java2实用教程实验指导模版代码答案.doc
  10. 2023美赛建模E题:光污染 - 思路分析