【知识图谱 赵军 学习笔记】第八章 知识存储和检索


知识图谱是一种 有向图结构,描述了现实世界中存在的实体、事件或者概念以及它们之间的关系。其中图的节点表示实体、事件或者概念,图的边表示相邻节点间的关系

知识图谱的存储

知识图谱中的知识是通过RDF结构进行表示的,其基本构成单元是事实。每个事实是一个三元组 (S,P,O) ,其中S是主语,其取值可以是实体、事件或者概念中的任何一个;P是谓语,其取值可以是关系或者属性;O是宾语,其取值可以是实体、事件、概念或者普通的值(e.g:数字、字符串等)

按存储策略的不同,可分为 基于表结构的存储基于图结构的存储

基于表结构的存储

三元组表

优点:简单直接,易于理解

缺点:

  • 整个知识图谱都存储在一张表中,导致单表的规模太大 ⇒ \Rightarrow 实用性太差
  • 复杂查询在这种存储结构上开销巨大

类型表

为每种类型构建一张表,同一类型的实例存放在相同的表中,虽然可以克服了三元组表的不足,但有新的问题:① 大量数据字段的冗余存储 ; ② 大量的数据列为空值(这是由于并非每个实体在所有属性或关系上都有值)
解决办法: 在构建数据表时,将知识图谱的类别体系考虑进来,即 每个类型的数据表只记录属于该类型的特有属性,不同类别的公共属性保存上一级类型对应的数据表中,下级表继承上级表的所有属性

不足

  • 由于类型表的不同字段表示了不同的属性或者关系,导致在查询时必须指明属性或关系,无法做不确定属性或关系的查询
  • 由于数据表示和具体类型对应的,不同类型的数据表具有不同的结构,因此在查询之前必须知道目标对象的类型才能确定查找的数据表
  • 当查询涉及不同类型的实体时,需要进行多表的链接,这一操作开销巨大,限制了知识图谱对复杂查询的处理能力
  • 知识图谱通常包含丰富的实体类型,因此需要创建大量的数据表,并且这些数据表之间又具有复杂的关系 ⇒ \Rightarrow 为数据的管理加大了难度

关系数据库

关系数据库以二维表对数据进行组织和存储,表的每一列表示一个属性,每一行表示一条记录。
每张表可以由任意数量的属性组成,这些属性按照各自的特点可以分为以下几类:

  • 候选键
  • 主键
  • 外键
  • 主属性和非主属性

常见的关系数据库:

  • DB2
  • Oracle
  • Microsoft SQL Server
  • PostgreSQL
  • MySQL

基于图结构的存储

能够准确地反映知识图谱的内部结构,有利于对知识的查询

基于图结构的存储模型

节点表示实体,边表示实体之间的关系,其中节点可以定义属性,用于描述实体的特征,也可以为边定义属性

常用的图数据库:

  • Neo4j
  • OrientDB
  • InfoGrid
  • HyperGraphDB
  • Infi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值