02 知识图谱知识表示与知识建模

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012052268/article/details/88052320

image

知识表示与知识建模

本文是王昊奋老师《知识图谱》系列笔记第2篇。

1知识的概与早期的知识表示方法

1.1 知识的概念

知识表示就是对知识的一种描述,或者说是对知识的一组约定,一种计算机可以接受的用于描述知识的数据结构。它是机器通往智能的基础,使得机器可以像人一样运用知识。

1.1.1 知识的特点

知识具有相对正确性、不确定性、可表示性以及可利用性的特点。

1.1.2 知识的分类

根据不同划分标准,知识可以分为不同的类别。

例如按照作用范围分类,可分为常识性知识和领域性知识。

按作用及表示分类为事实性知识、过程性知识、控制知识。

按确定性分类有确定性知识,不确定性知识。

按结构及表现形式可分为逻辑性知识和形象性知识。

扫描二维码关注公众号,回复: 6028992 查看本文章

1.2 早期的知识表示方法

主要有:

  • 一阶谓词逻辑
  • 产生式系统
  • 框架表示法
  • 语义网络

1.2.1一阶谓词逻辑(不重要)

谓词逻辑(Lp)可以对原子命题做进一步分析,分析出其中的个体词、谓词、量词,研究它们的形式结构的逻辑关系、正确的推理形式和规则。

例子:has_child(X,Y)

一阶谓词逻辑具有自然性、接近自然语言、容易接受、严密性、易于转化为计算机内部形式等优点,但同时也具有无法表示不确定性知识、难以表示启发性知识及元知识、组合爆炸、效率低等缺点。为了克服以上缺点,人们提出了Horn逻辑、描述逻辑等改进方案。

1.2.2产生式系统

产生式系统是一种更广泛的规则系统,和谓词逻辑有关联,也有区别。早起的专家系统多数是基于产生式系统的。产生式知识表示法是常用的知识表示方式之一。

它是依据人类大脑记忆模式中的各种知识之间的大量存在的因果关系,并以“IF-THEN”的形式,即产生式规则表示出来的。

这种形式的规则捕获了人类求解问题的行为特征,并通过认识–行动的循环过程求解问题。一个产生是系统由规则库、综合数据库和控制机构三个基本部分组成。

谓词逻辑中的规则与产生式的基本形式相似,事实上,蕴涵式只是产生式的一种特殊情况。

产生式规则表示法具有非常明显的优点,如自然型好,易于模块化管理、能有效表示知识、知识表示清晰等优点。

但是产生式规则也有着效率不高、不能表达具有结构性的知识等缺点。因此,人们经常将它与其它知识表示方法(如框架表示法、语义网络表示法)相结合。

1.2.3框架表示法(类似一个模版)

框架表示法是明斯基于1975年提出来的,其最突出的特点是善于表示结构性知识,能够把知识的内部结构关系以及知识之间的特殊关系表示出来,并把与某个实体或实体集的相关特性都集中在一起。

框架表示法认为人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中的。当面临一个新事物时,就从记忆中找出一个合适的框架,并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认识。

框架是一种描述固定情况的数据结构,一般可以把框架看成是一个节点和关系组成的网络。框架的最高层次是固定的,并且它描述对于假定情况总是正确的事物,在框架的较低层次上有许多终端–被称为槽(Slots)。在槽中填入具体值,就可以得到一个描述具体事务的框架,每一个槽都可以有一些附加说明–被称为侧面(Facet),其作用是指出槽的取值范围和求值方法等。一个框架中可以包含各种信息:描述事物的信息,如何使用框架的信息,关于下一步将发生什么情况的期望及如果期望的事件没有发生应该怎么办的信息等等,这些信息包含在框架的各个槽或侧面中。

一个具体事物可由槽中已填入值来描述,具有不同的槽值得框架可以反映某一类事物中的各个具体事物。相关的框架链接在一起形成了一个框架系统,框架系统中由一个框架到另一个框架的转换可以表示状态的变化、推理或其它活动。不同的框架可以共享同一个槽值,这种方法可以把不同角度搜集起来的信息较好的协调起来。

image

框架表示法对于知识的描述非常完整和全面;基于框架的知识库质量非常高;且框架允许数值计算,这一点优于其它知识表示语言。但框架的构建成本非常高,对知识库的质量要求非常高;框架的表达形式不灵活,很难同其它形式的数据集相互关联使用。

1.2.4语义网络

语义网络是知识表示中最重要的方法之一,是一种表达能力强而且灵活的知识表示方法。语义网络利用节点和带标记的边结构的有向图描述事件、概念、状况、动作及客体之间的关系。带标记的有向图能十分自然的描述客体之间的关系。

语义网络由于其自然性而被广泛应用。采用语义网络表示的知识库的特征是利用带标记的有向图描述可能事件。结点表示客体、客体性质、概念、事件、状况和动作,带标记的边描述客体之间的关系。知识库的修改是通过插入和删除客体及其相关的关系实现的。采用网络表示法比较合适的领域大多数是根据非常复杂的分类进行推理的领域以及需要表示事件状况、性质以及动作之间的关系的领域。

语义网络的基本形式为(节点, 弧, 节点2),节点表示各种事物、概念、情况、属性、动作、状态等,每个节点可以带有若干属性,一般用框架或元组表示。此外节点还可以是一个语义子网络,形成一个多层次的嵌套结构。语义网络中的弧表示各种语义联系,指明它所连接的节点间某种语义关系。节点和弧都必须带有标示,来方便区分不同对象以及对象间各种不同的语义联系。一个语义网络的例子为:

image

2基于语义网的知识表示框架

在这里插入图片描述

上图为W3C推荐的语义网标准栈,其中RDF和SPARQL为网络数据链接部分。与此同时,W3C还推出五星级标准,规定了RDF为标准数据格式,URI标准为事物命名等规范。

其中对知识图谱最重要的是:RDF、SPARQL

2.1 RDF简介

对RDF的理解还可以参考知乎大神SimmerChan的文章《知识图谱基础之RDF,RDFS与OWL》https://zhuanlan.zhihu.com/p/32122644

RDF概念:资源描述框架(Resource Description Framework, RDF),R代表页面,图片、视频等任何具有URI标识符,D标识属性、特征和资源之间的关系,F标识模型、语言和这些描述的语法。

在RDF中,知识总是以三元组的形式出现,即每一份知识都可以被分解为:(subject, predicate, object)。

image

与此同时,RDF三元组可以看做是图模型的边和顶点 (vertex, edge, vertex) ,还可以将两个三元组结合起来表示:

image

在RDF中resource(实体)和properties(属性)是以URIs的形式表示的,如下。这样我们的表示就变成了这样:

image

需要注意的是:RDF是一种数据模型,不是某种特定的格式,就是说不一定是XML格式的,也可能是json等其他格式的。

2.2 RDFS(RDF Schema)

RDFS(RDF Schema)在RDF的基础上提供了一个术语、概念的定义方式,以及那些属性可以应用到哪些对象上。换句话说,RDFS为RDF模型提供了一个基本的类型系统,提供了一些规范。如:

image

上述三元组表示用户自定义的元数据Author是Dublin Core的元数据Creator的子类。RDF Schema正是通过这样的方式来描述不同词汇集的元数据之间的关系,从而为网络上统一格式的元数据交换打下基础。

有了这些标准的规范,RDFS支持推理功能,如:

image

2.3 OWL和OWL2

前面我们知道,通过RDF(S)可以表达一些简单的语义,但在更复杂的场景下,RDF(S)语义表达能力显得太弱,还缺少诸多常用的特征。

包括对局部值域的属性定义,类、属性、个体的等价性,不相交类的定义,基数约束,关于属性特征的描述等。

因此W3C提出了OWL语言扩展RDF(S),作为语义网上表示本体的推荐语言。

而下面不同的owl版本的区别仅仅是:定义一些新的预定义规则,这些新添加的规则会与描述逻辑(一介谓词逻辑可判定子集)相关联,为的是增加表示能力。

2.3.1 OWL

W3C于2002年7月31日发布了OWL Web本体语言(OWL Web Ontology Language)工作草案的细节其目的是为了更好地开发语义网。OWL有三个子语言:OWL Lite、OWL DL、OWL Full。下表给出OWL三个子语言的特征于区别:

image

OWL与RDF的关系:

Protege操作中,OWL给我的感觉就是在RDFS的基础上,添加了很多描述类别、属性之间关系的定义或约束。,如两个类是否不相交这样的类属性,比如:

image

2.3.2 OWL2

OWL2是OWL的最新版本,老的OWL也称为OWL1,OWL2定义了一些OWL的子语言,通过限制语法使用,使得这些子语言能够更方便地实现,以及服务于不同的应用;OWL2也有三大子语言:OWL2 RL,OWL2 QL, OWL2 EL;

2.3.3 OWL2 QL

QL代表query language的意思,专为基于本体的查询设计:

  • OWL 2 QL的复杂度是AC 0 ,非常适合大规模处理;
  • OWL 2的三大子语言中,QL最为简单;
  • OWL 2 QL是基于描述逻辑语言DL-Lite定义的。

OWL2 QL允许的核心词汇为:
image

2.3.4 OWL2 EL

OWL 2 EL专为概念术语描述,推理而设计:

  • 在生物医疗领域广泛应用,如临床医疗术语本体SNOMED CT;
  • 复杂度是PTime-Complete;
  • OWL2 EL是基于描述逻辑语言EL++定义的;

OWL2 EL允许表达复杂的概念,如:所有喜欢电影,儿子是学生且参加计算机课程的女性:

image

2.3.5 OWL2 RL

降低了复杂度。

OWL 2 RL在ter Horst的工作基础上延伸而来; 该工作的目的是将OWL词汇引入RDFS,使得RDFS在表达能力上丰富起来,同时保持计算复杂度在PTime级别。OWL 2 RL在RDFS的基础上引入属性的特殊特性 (函数性,互反性,对称性);允许声明等价性;允许属性的局部约束。OWL 2 RL与描述逻辑没有直接关系。

2.4 SPARQL简介

SPARQL是RDF的查询语言,它基于RDF数据模型,

  • 可以对不同的数据集撰写复杂的连接(join操作),
  • 同时还被所有主流的图数据库支持。

2.4.1 SPARQL的查询结构

SPARQL的查询结构如下图所示:

image

其中:

  • prefix declarations(前缀声明)为了缩写URL
  • From是要选取一个数据库(不是table)或者选取一张“图”结构
  • 下面的:select、where、order by就是很熟悉的SQL形式。(同理 可以使用嵌套查询等查询)

从语法上结构上来看,SPARQL和SQL语言还是有一定的相似性的。比较重要的区别有:

  • 变量,RDF中的资源,以“?”或者“$”指示;
  • 三元组模板 (triple pattern), 在WHERE子句中列示关联的三元组模板,之所以称之为模板,因为三元组中允许变量;
  • SELECT子句中指示要查询的目标变量

给出一个小例子看操作是什么样子的:“查询所有选修CS228的学生。”

image

  • 其中第一行prefix 进行了命名空间的声明,使得下面的代码书写的更简洁。
  • 后面的语句和SQL几乎一致

例子2:邮箱可选:

在这里插入图片描述

2.4.2 SPARQL中的scheme的作用

如果我们要查找“亲戚”关系,用普通的SQL就要使用“并”操作,把兄弟、姐妹、父母、子女…等关系都罗列清楚;

而定义了scheme之后(RDFs ),直接写“亲戚”即可,数据库自己会把所有的关系找到。

SPARQL中的scheme

同理,“雇员”关系,就包括了CEO、实习生、董事、创建者等关系。

2.5 非rdf系的知识表示方法:

2.5.1 JSON-LD

为了方便程序员阅读知识标识,出现了JSON-LD,JSON-LD是JavaScript Object Notation for Linked Data的缩写,是一种基于JSON表示和传输互联数据 (Linked Data)的方法。JSON-LD描述了如何通过JSON表示有向图,以及如何在一个文档中混合表示互联数据及非互联数据。JSON-LD的语法和JSON兼容。

下图给出JSON-LD事例,可以看出非常容易理解:

image

上图即引入“schema.org”中的概念定义,标识一个人的姓名、主页、照片等信息。这样,知识图谱就可以理解这是一个人。

JSON-LD 的 实 现 没 有 选 择 大 部 分 语 义 网 技 术 栈 (Turtle/SPARQL/Quad Stores)而是以简单、不复杂以及面向一般开发人员的方式推进。下图给出JSON-LD事例,可以看出非常容易理解:

2.5.2 RDFa

RDFa(Resource Description Framework in attributes)是网页标记语言,也是W3C推荐的标准,它扩充了XHTML的几个属性,网页制作者可以利用这些属性在网页中添加可供机器读取的资源。与RDF的对应关系使得RDFa可以将RDF的三元组嵌入在XHTML文档中,它也使得符合标准的使用端可以从RDFa文件中提取出这些RDF三元组来。

RDFa从机器可理解的层面优化搜索,提升访问性以及网页数据的关联性。

image

2.5.3 HTML5 Microdata

Microdata微数据,是在网页标记标记语言嵌入机器可读的属性数据,微数据使用可以来自自定义词汇表、带作用域的键/值对给DOM做标记。

用户可以自定义微数据词汇表,在自己的网页中嵌入自定义的属性。

微数据是给那些已经在页面上可见的数据施加额外的语义。当HTML的词汇不够用时,使用微数据可以取得较好的效果。

image

3典型知识库的知识表示实例

总结:RDF加spasql 比关系型数据库sql的优势在有更高的概念设计,数据更灵活。
深圳位于中国,和深圳位于中国,在SQL中需要三个表。在RDF中,设计好国家与省的概念之后,一个语句就可以搞定。

下面是典型知识库的知识表示实例,比如下图yago2来说,绿色代表schema 蓝色代表资源。

在这里插入图片描述

其他一些主流知识图谱的表述方式如下图:
在这里插入图片描述

其实RDF、owl只是众多表达方式的一种,不一定非要用到这种技术。要把RDF、owl理解为一种数据模式,概念

4基于本体(protege)的知识表示实践

这一节涵盖 软件的下载安装 与使用介绍,网上没搜到比较好的安装教程,博主专门新开一篇博客来详细记录一下便于自己学习:02.1 Protege的下载安装与使用https://blog.csdn.net/u012052268/article/details/88052390

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u012052268/article/details/88052320