【知识图谱合集】四、知识存储

在这里插入图片描述

导读:

  • 1.知识提取:从原始数据语料中自动识别出命名实体。实体是知识图谱中最基本的元素。
https://blog.csdn.net/zkzbhh/article/details/107921135
  • 2.知识表示:介绍了知识表示学习的常见的代表模型:距离模型、单层神经网络模型、能量模型、双线性模型、张量神经网络模型、矩阵分解模型。翻译模型(Trans模型),TransH模型、TransR模型、TransD模型、TranSpare模型、TransA模型、TransG模型、KG2E模型。
https://blog.csdn.net/zkzbhh/article/details/107921258
  • 3.实体对齐:介绍实体消歧和共指消歧的方法。
https://blog.csdn.net/zkzbhh/article/details/107921782

本篇文章,主要介绍知识图谱的知识存储。

1.RDF、RDFS和OWL数据模型

RDF、RDFS和OWL是W3C[1]推荐的本体描述用护眼,也是知识图谱中数据的常用存储格式,它们都是基于XML[2]编写的元数据[3],是用于计算机传输数据,让机器可理解,而不是面向用户展示的数据模型。

(1)RDF

RDF本质是一个数据模型,它提供了一个统一的标准描述web资源,资源指的是类、属性、实例等。RDF在形式上表示为三元组。用于描述具体事物及关系,RDF也可以表示为一张带有标记的有向图,图中有节点和边,节点对应实体,边对应关系或者属性,关系指的是实体之间,实体与属性之间的关系。

RDF中的三元组Triple:
在这里插入图片描述

带有资源标识符URI的三元组:
在这里插入图片描述
声明命名空间ex = http://ex.org/和ex-schema = http://ex.org/schema,于是带有资源标识符的URI三元组就可以表示为下图形式。

声明前缀的三元组:
在这里插入图片描述

RDF以三元组的形式描述资源,简洁明了,但是有着语义表达能力的缺陷。RDF中没有定义类、属性等词汇。RDF只能是对具体的事物进行描述,缺乏抽象能力,无法对同一个类别的事物进行定义和描述。RDF可以描述实体、实体的属性以及他们之间的关系,但是无法描述类与类之间的关系,类的属性等

(2)RDFS

RDFS在RDF的基础上定义了类(class)、属性(property)以及关系(relation)来描述资源,并且通过属性的定义域(domain)和值域(range)来约束资源。RDFS在数据层(data)的基础上引入了模式层(schema),模式层定义了一种约束规则,而数据层是在这种规则下的一个实例填充。

RDFS相比于RDF语义表达能力有所提升,但RDFS依旧有语义表达的缺陷。在RDFS中关于类与类之间的关系它只能声明子类关系,无法声明互斥类的关系,也无法声明多个类、实例、属性是否等价。

(3)OWL

OWL是对RDFS关于描述资源词汇的一个扩展,OWL中添加了额外的预定于词汇来描述资源,具备更好的语义表达能力。在OWL中可以声明资源的等价性,属性的传递性、互斥性、函数性、对称性等等,具体见OWL的词汇扩展。

本体和知识图谱在构建过程中,数据的存储常以RDF格式存放。而基于RDF数据的结构化查询语言SPARQL,可以实现对三元组的查询。在SPARQL中,常以“?”来表示变量或者资源标识符,select子句检索指定资源的资源标识符,where子句限定资源的由来。

2.基于RDF的存储

大部分开放的知识图谱,都是以RDF形式对外开放。

RDF结构:

RDF 为描述资源提供的基本元素有 IRI,字面值和空节点 (blank node)。IRI 就是一个符合特定语法的 UINICODE 字符串,跟 URL 的形式比较类似。其实 URL 属于 IRI 的一种。字面值可以理解为像时间、人名、数字等常量的表示,由字符串和表示数据类型的 IRI 构成。例如数字 1 的字面值可以表示为"1"^^xs:integer,其中 xs:integer 是表示整型数据类型的 IRI。空节点是指没有 IRI 的匿名节点。一般是 RDF 内部使用的一个特殊结构,不可被引用。

**一个 RDF 数据集由一组相关的三元组的组成。**由于这个三元组集合可以抽象为一张 graph,因此也称为 RDF graph。

**例如,**用 RDF 描述一本书,RDF 字典就需要定义一本书需要包含作者、书名、页数、出版时间、语言类型等。RDF 字典定义了数据建模的元数据项,这些元数据项主要包括两种类型 class 和 property。Class 是指对象实例的集合,可以理解为面向对象编程里的 class;Property 还分为两种子类型:一个是表示 class 的属性 (attribute),另一个是表示多个 class 之间的关系 (relationship)。

另外,RDF 字典的定义自身也是一个 RDF graph。这也是说明 RDF 是自描述的数据模型,是一种 schema-free 的数据模型。

3.基于图数据库的存储

图数据库是一种非关系型数据库,以解决现有关系数据库的局限性。图模型明确地列出了数据节点之间的依赖关系,而关系模型和其他 NoSQL 数据库模型则通过隐式连接来链接数据。图数据库从设计上,就是可以简单快速地检索难以在关系系统中建模的复杂层次结构的。

以neo4j为例介绍。

数据存储形式:主要是 节点(node)和 边(edge) 来组织数据。node可以代表知识图谱中的实体,edge可以用来代表实体间的关系,关系可以有方向,两端对应开始节点和结束节点。另外,可以在node上加一个或多个标签(Node Label)表示实体的分类,以及一个键值对集合来表示该实体除了关系属性之外的一些额外属性。关系也可以附带额外的属性。

查询语言Cypher:neo4j采用自己设计的查询语言cypher,其特点和sql有很多相似的地方。match、where、return是最常用到的关键词:

  • match: 相当于 sql中的select,用来说明查询匹配的数据模式(或者说图模式)
  • where: 用来限制node或者关系中部分属性的属性值,从而返回我们想要的数据
  • return: 返回节点或者关系

例子:
图片来自网络,侵权删

猜你喜欢

转载自blog.csdn.net/zkzbhh/article/details/107921940