位置: IT常识 - 正文

NLP--知识图谱存储与图数据库总结【分析】(知识图谱ui)

编辑:rootadmin
NLP--知识图谱存储与图数据库总结【分析】 文章目录前言一、知识图谱1、数据模型2、数据库管理系统3、查询语言4、查询操作二、知识图谱存储方式1、关系型存储2、原生图存储三、基于关系的知识图谱存储管理1、三元组表2、水平表3、属性表4、垂直划分5、六重索引四、原生知识图谱存储管理1、Neo4j2、gStore3、分布式图数据库:JanusGraph4、OrientDB5、Cayley6、其他原生图数据库五、图数据库1、图数据库排名2、图数据库选型3、图数据库对比(1) NebulaGraph vs. Dgraph vs. HugeGraph(2) Neo4j vs NebulaGraph vs JanusGraph(3) Dgraph vs. HugeGraph vs. JanusGraph vs. NebulaGraph vs. Neo4j(4) 主要知识图谱数据库对比4、单个性能强图数据库(1) TuGraph(2) NebulaGraph总结参考链接前言

推荐整理分享NLP--知识图谱存储与图数据库总结【分析】(知识图谱ui),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:知识图谱属于nlp范畴吗,知识图谱 csdn,知识图谱schema,知识图谱schema,知识图谱embedding,知识图谱 csdn,知识图谱属于nlp范畴吗,知识图谱 nlp,内容如对您有帮助,希望把文章链接给更多的朋友!

知识图谱是一个大规模语义网,由实体,概念等节点和属性,关系,类型等边构成。 是许多三元组的集合。每一个三元组是由主语(subject),谓语(predicate),宾语(object)构成。 随着各个领域不断增长的知识图谱,知识图谱存储也吸引着很多人进行研究,本文将从知识图谱的数据模型、存储方式、基于关系/原生的知识图谱存储管理、数据库等几方面进行阐述。 【本文篇幅较长计9662字,阅读完大概需十分钟,若有想直接了解的内容,可直接点击目录】

一、知识图谱1、数据模型

知识图谱的两种主流数据模型(数据的结构、操作和约束):

RDF 图模型和属性图模型

数据模型特性数据模型特性RDF图模型属性图模型结构标准化程度 数学模型 表达力 边属性表达 概念层本体定义 串行化格式已由W3C制定了标准化的语法和语义 3-均匀有向标签超图 RDF图模型强于属性图模型 通过额外方法, 如“具体化” RDFS、OWL、 XML、JSON、N-Triples、Turtle等尚未形成工业标准 有向标签属性图 属性图模型弱于RDF图模型 内置支持 不支持 CSV操作查询代数SPARQL代数无查询语言SPARQLCypher、Gremlin、PGQL、G-CORE约束约束语言RDF Shapes约束语言(SHACL)无2、数据库管理系统

知识图谱数据模型的主流数据库管理系统:

RDF三元组库和原生图数据库

3、查询语言

知识图谱查询语言:

SPARQL、Cypher、Gremlin、PGQL 和 G-CORE

语法/语义/特性SPARQLCypherGremlinPGQLG-CORE图模式匹配查询语法CGPCGPCGP(无可选)1CGPCGP语义子图同态、包2无重复边、包2子图同态、包2子图同构3、包2子图同态、包2导航式查询语法RPQ超集(增加反向边和属性集上的否定)RPQ子集(*只能作用在单边)RPQ超集(增加通过表达式比较属性值)RPQ超集(增加比较路径上的顶点和边)RPQ超集(增加复杂路径表达式)语义任意路径、集合4无重复边5、包2任意路径6、包2最短路径7、包8最短路径9、包2分析型查询聚合函数聚合函数聚合函数、PageRank、PeerPressure聚类聚合函数聚合函数查询可组合性否是是否是数据更新语言DMLCRUD10CRUD无无CR数据定义语言DDL无有无无无实现系统Jena、RDF4J、gStore、Virtuoso等Neo4j、AgensGraph等TinkerTop等Oracle PGX无

注:1. Gremlin不显式支持可选(optional)操作, 但可以通过其他语法特性等价模拟.2.可通过DISTINCT关键字支持集合语义.3. PGQL默认的图模式匹配查询语义是子图同构, 可使用ALL关键字改为子图同态.4. SPARQL中只有当使用*运算使得属性路径查询无法等价写为CGP时才使用集合语义.5. Cypher可通过shortestPath函数支持最短路径语义.6. Gremlin中其他语义可以被模拟出来.7. PGQL路径查询可通过用户定义函数实现其他语义.8. PGQL路径查询返回单条最短路径, 集合和包语义相同.9. G-CORE路径查询可通过ALL关键字改为任意路径语义.10. CRUD分别代表CREATE创建、READ读取、UPDATE更新和DELETE删除

4、查询操作

知识图谱上 3 种主要的查询操作类型:

NLP--知识图谱存储与图数据库总结【分析】(知识图谱ui)

图模式匹配、导航式和分析型查询

RDF图: 设U、B 和 L 为互不相交的无限集合,分别代表 URI、空顶点(blank node)和字面量(literal). 一个三元组(s,p,o)∈\in∈(U∪BU \cup BU∪B)×\times×U×\times×(UUU ∪\cup∪ BBB ∪\cup∪ LLL)称为 RDF 三元组,其中,s 为主语,p 为谓语,o 为宾语.RDF 图 G 是 RDF 三元组的有限集合.属性图:属性图 G 是 5 元组(VVV,EEE,ρ\rhoρ,λ\lambdaλ,σ\sigmaσ,),其中, (1) V 是顶点的有限集合; (2) E 是边的有限集合且 V∩E=ϕV\cap E=\phiV∩E=ϕ ; (3) 函数ρ:E→(V×V)\rho:E\rightarrow(V\times V)ρ:E→(V×V)将边关联到顶点对,如ρ(e)=(v1,v2)\rho(e)=(v1,v2)ρ(e)=(v1,v2)表示$ e $是从顶点 v1v1v1 到顶点 v2v2v2 的有向边; (4) 设 LabLabLab 是 标签集合,函数λ:(V∪E)→Lab\lambda: (V\cup E)\rightarrow Labλ:(V∪E)→Lab为顶点或边赋予标签,如 v∈\in∈V(或 e∈\in∈E)且λ(v)=l\lambda(v)=lλ(v)=l(或 λ\lambdaλ(e)=lll),则$ l$ 为顶点 v(或边 e)的标 签; (5) 设PropPropProp是属性集合,ValValVal是值集合,函数ρ:(V∪E)×Prop→Val\rho:(V\cup E)\times Prop \rightarrow Valρ:(V∪E)×Prop→Val为顶点或边关联属性,如v∈V(或e∈E)、p∈Propv \in V (或e \in E)、p \in Propv∈V(或e∈E)、p∈Prop且σ(v,p)=val(\sigma(v,p)=val(σ(v,p)=val(或σ(e,p)=val\sigma(e,p)=valσ(e,p)=val,则顶点v(或边e)v(或边e)v(或边e)上属性p的值为valp的值为valp的值为val二、知识图谱存储方式1、关系型存储

存储大规模知识图谱,且便于对知识进行更新,但当知识图谱查询的选择性较大时,查询性能明显下降

2、原生图存储

无邻接索引的特性能够高效处理复杂的知识图谱查询,但有限的存储容量和不灵活的更新机制使得原生图存储不能很好地应用于大规模知识图谱中

三、基于关系的知识图谱存储管理

关系数据库目前仍是使用最多的数据库管理系统。基于关系的知识图谱存储方案,包括:三元组表、水平表、属性表、垂直划分、六重索引和 DB2RDF。

1、三元组表

三元组表(triple table)是将知识图谱存储到关系数据库的最简单、最直接的办法,就是在关系数据库中建立 一张具有 3 列的表,该表的模式为triple_table(subject,predicate,object),subject、predicate 和 object 这 3 列分别表示主语、谓语和宾语。

三元组表存储方案虽然简单明了,但三元组表的行数与知识图谱的边数相等,其最大问题在于将知识图谱查询翻译为 SQL 查询后会产生三元组表的大量自连接操作RDF 数据库系统 3store 2、水平表

水平表(horizontal table)存储方案同样非常简单。水平表的每行记录存储知识图谱中一个主语的所有谓语 和宾语。实际上,水平表相当于知识图谱的邻接表。水平表的列数是知识图谱中不同谓语的数量,行数是知识图 谱中不同主语的数量。

RDF 数据库系统 DLDB水平表的缺点在于:(1) 所需列的数目等于知识图谱中不同谓语数量,在真实知识图谱数据集中,不同 谓语数量可能为几千个到上万个,很可能超出关系数据库所允许的表中列数目上限(2) 对于一行来说,仅在极 少数列上具有值,表中存在大量空值,空值过多会影响表的存储、索引和查询性能(3) 在知识图谱中,同一主语 和谓语可能具有多个不同宾语,即一对多联系或多值属性,而水平表的一行一列上只能存储一个值,无法应对这种情况(可以将多个值用分隔符连接存储为一个值,但这违反了关系数据库设计的第一范式);(4) 知识图谱的更新往往会引起谓语的增加、修改或删除,即水平表中列的增加、修改或删除,这是对于表结构的改变,成本很高。 3、属性表

属性表(property table)存储方案是对水平表的细分,将同类主语存到一个表中,解决了表中列数目过多的问题。

RDF 三元组库 Jena属性表既克服了三元组表的自连接问题,又解决了水平表中列数目过多的问题。实际上,水平表就是属性表的一种极端情况,即水平表是将所有主语划归为一类,因此属性表中的空值问题得到很大的缓解。属性表仍存 在如下一些缺点:(1) 对于规模稍大的真实知识图谱数据,主语的类别可能有几千到上万个,需要建立几千到上万个表,这往往超过了关系数据库的限制(2) 即使在同一类型中,不同主语具有的谓语集合也可能差异较大,会造成与水平表中类似的空值问题(3) 水平表中存在的一对多联系或多值属性存储问题在属性表中仍然存在 4、垂直划分

垂直划分(vertical partitioning)存储方案,为每种谓语建立一张两列的表(subject,object),表中存放知识图谱中由该谓语连接的主语和宾 语,表的总数量即知识图谱中不同谓语的数量.

SW-Store优点:(1) 谓语表仅存储出现在 知识图谱中的三元组,解决了空值问题;(2) 一个主语的一对多联系或多值属性存储在谓语表的多行中,解决了 多值问题;(3) 每个谓语表都按主语列的值进行排序,能够使用归并排序连接(merge-sort join)快速执行不同谓 语表的连接查询操作.缺点:(1) 需要创建的表的数目与知识图谱中不同谓语数目相等,而大规模的真实知识图谱(如DBpedia、YAGO、WikiData 等)中谓语数目可能超过几千个,在关系数据库中维护如此规模的表需要花费很大开销(2) 越是复杂的知识图谱查询操作,需要执行的表连接操作数量越多,而对于未指定谓语的三元组查询,将发生需要连接全部谓语表进行查询的极端情况(3) 谓语表的数量越多,数据更新维护代价越大,对于一个主语的更新将涉及多张表,产生很高的更新时 I/O 开销。 5、六重索引

六重索引(sextuple indexing)存储方案是对三元组表的扩展,是一种典型的“空间换时间”策略,其将三元组全部6种排列对应地建立为6张表,即spo(主语,谓语,宾语)、pos(谓语,宾语,主语)、osp(宾语,主语,谓语)、sop(主语,宾语,谓语)、pso(谓语,主语,宾语)和ops(宾语,谓语,主语)。不难看出,其中 spo 表就是原来的三元组表。六重索引通过6张表的连接操作不仅缓解了三元组表的单表自连接问题,而且提高了某些典型知识图谱查询的效率。

RDF-3X , Hexastore优点:(1) 知识图谱查询中的每种三元组模式查询都可以直接使用相应的索引进行快速 前缀范围查找;(2) 可以通过不同索引表之间的连接操作 直接加速知识图谱上的连接查询.缺点:(1) 虽然部分缓解了三元组表的单表自连接问题,但需要花费 6 倍的存 储空间开销、索引维护代价和数据更新时的一致性维护代价,随着知识图谱规模的增大,该问题会愈加突出;(2) 当知识图谱查询变得复杂时,会产生大量的连接索引表查询操作,依然不可避免索引表的自连接.DB2RDF 是一种面向实体的 RDF 知识图谱存储方案IBM DB2四、原生知识图谱存储管理

原生知识图谱存储是指专门为知识图谱而设计的底层存储管理方案 目前主要的原生图数据库有Neo4j、gStore、JanusGraph、OrientDB和Cayley。

1、Neo4j

Neo4j是目前最流行的属性图数据库,其原生图存储层的最大特点是具有“无索引邻接(index-free adjacency)”特性。所谓“无索引邻接”是指,每个顶点维护着指向其邻接顶点的直接引用,相当于每个顶点都可看作是其邻接顶点的一个“局部索引”,用其查找邻接顶点比使用“全局索引”节省大量时间。这就意味着图导航操作代价与图大小无关,仅与图的遍历范围成正比

2、gStore

gStore 将 RDF 数据图中每个资源的所有属性和属性值映射到一个二进制位串上。具体而言,对于每个属性 或属性值,gStore 都定义一个固定长度的位串并将位串中所有位置为 0。然后利用若干个预先定义的字符串哈希函数将属性或属性值按照标识符映射到若干个小于位串长度的整数值,进而将位串上这些值所对应的位置置为1。

3、分布式图数据库:JanusGraph

JanusGraph是在原有Titan系统基础上继续开发的开源分布式图数据库。JanusGraph的存储后端与查询引擎是分离的, 可使用分布式Bigtable存储库Cassandra或HBase作为存储后端。JanusGraph借助第三方分布式索引库ElasticSearch、Solr和Lucene实现各类型数据的快速检索功能,包括地理信息数据、数值数据和全文搜索。JanusGraph还具备基于MapReduce的图分析引擎,,可将Gremlin导航查询转化为MapReduce任务。

4、OrientDB

OrientDB最初是由OrientDB公司开发的多模型数据库管理系统。OrientDB虽然支持图、文档、键值、对象、关系等多种数据模型, 但其底层实现主要面向图和文档数据存储管理的需求设计。其存储层中数据记录之间的联系并不是像关系数据库那样通过主外键的引用,而是通过记录之前直接的物理指针。OrientDB对于数据模式的支持相对灵活,可以管理无模式数据(schema-less),也可以像关系数据库那样定义完整的模式(schema-full),还可以适应介于两者之间的混合模式(schema-mixed)数据。在查询语言方面,OrientDB支持扩展的SQL和Gremlin用于图上的导航式查询;OrientDB的MATCH语句实现了

本文链接地址:https://www.jiuchutong.com/zhishi/298543.html 转载请保留说明!

上一篇:HTML+CSS+JS 学习笔记(三)———Javascript(中)(html+css+javascript编程入门指南)

下一篇:直连路由、静态路由、动态路由(直连路由,静态路由)

  • ps的魔棒工具在哪里找(ps魔棒工具在哪个菜单里)

    ps的魔棒工具在哪里找(ps魔棒工具在哪个菜单里)

  • 人气票算主播音浪收入吗(主播人气值是什么意思)

    人气票算主播音浪收入吗(主播人气值是什么意思)

  • 笔记本开机风扇转屏幕没反应(笔记本开机风扇转一下就停了)

    笔记本开机风扇转屏幕没反应(笔记本开机风扇转一下就停了)

  • 佳能3680打印机闪黄灯(佳能3680打印机三角黄灯闪)

    佳能3680打印机闪黄灯(佳能3680打印机三角黄灯闪)

  • 微信实名更改后,所有信息还保留吗(微信实名更改后账单怎样恢复)

    微信实名更改后,所有信息还保留吗(微信实名更改后账单怎样恢复)

  • 微信怎么不让别人拉我进群(微信怎么不让别人加我为好友)

    微信怎么不让别人拉我进群(微信怎么不让别人加我为好友)

  • 锁屏了为什么老显示qq在运行(锁屏为什么老自己换)

    锁屏了为什么老显示qq在运行(锁屏为什么老自己换)

  • 通话中断什么意思(通话中断什么鬼)

    通话中断什么意思(通话中断什么鬼)

  • 华为手机最上面的显示栏没有了(华为手机最上面时间位置怎么调)

    华为手机最上面的显示栏没有了(华为手机最上面时间位置怎么调)

  • dub-al20是什么型号(dub一al2o是什么型号)

    dub-al20是什么型号(dub一al2o是什么型号)

  • 微信逻辑错误登录不了怎么处理(微信号登录显示逻辑错误)

    微信逻辑错误登录不了怎么处理(微信号登录显示逻辑错误)

  • qq群接龙是干什么的(qq群里的群接龙是什么东西)

    qq群接龙是干什么的(qq群里的群接龙是什么东西)

  • 微信置顶语只有自己能看到吗(微信置顶语只有苹果才可以吗)

    微信置顶语只有自己能看到吗(微信置顶语只有苹果才可以吗)

  • ios12怎么屏蔽垃圾短信(iphone12如何屏蔽垃圾电话和信息)

    ios12怎么屏蔽垃圾短信(iphone12如何屏蔽垃圾电话和信息)

  • 手机数据网速不好怎么设置(手机数据网速不好怎么办)

    手机数据网速不好怎么设置(手机数据网速不好怎么办)

  • 苹果旗舰机是什么意思(苹果旗舰机是什么)

    苹果旗舰机是什么意思(苹果旗舰机是什么)

  • vue怎么添加音乐(vue添加的音乐怎么设置小声)

    vue怎么添加音乐(vue添加的音乐怎么设置小声)

  • 拼多多哪里可以加备注(拼多多哪里可以看到好友买的东西)

    拼多多哪里可以加备注(拼多多哪里可以看到好友买的东西)

  • 微信点了冒泡怎么取消(微信里冒泡是什么意思)

    微信点了冒泡怎么取消(微信里冒泡是什么意思)

  • 小米一元流量改运营商(小米手机上的一元流量怎么改成移动的网)

    小米一元流量改运营商(小米手机上的一元流量怎么改成移动的网)

  • naver怎么改中文(naver怎么设置中文)

    naver怎么改中文(naver怎么设置中文)

  • 12123怎么关闭手势密码(交管12123怎么取消手机绑定)

    12123怎么关闭手势密码(交管12123怎么取消手机绑定)

  • itunes账户设置在哪里(itunes账户授权在哪里)

    itunes账户设置在哪里(itunes账户授权在哪里)

  • 相册看不到保存的图片(我的相册里面为什么没有我保存的图片)

    相册看不到保存的图片(我的相册里面为什么没有我保存的图片)

  • 西瓜视频怎么看粉丝数(西瓜视频怎么看历史记录)

    西瓜视频怎么看粉丝数(西瓜视频怎么看历史记录)

  • Vue 3 介绍

    Vue 3 介绍

  • 织梦模板DEDECMS添加和调用自定义字段的教程(织梦模板官网)

    织梦模板DEDECMS添加和调用自定义字段的教程(织梦模板官网)

  • 车船税退税办理时限
  • 房屋用途 居住用房 住宅 区别
  • 哪些资产损失应向税务机关申报扣除?
  • 如何查询增值税申报表
  • 挂车和牵引车如何选
  • 财政部监制章可以报销吗
  • 已认证的专票发票在哪里
  • 所有者权益是
  • 处置其他权益工具投资时,应按取得的价款
  • 医院员工工资表模板
  • 房地产开发企业增值税税率
  • 向境外分配股息
  • 坏账转销会计分录应收帐款金额怎么写
  • 银行变更印鉴多久生效
  • 运输过程中货物丢失
  • 母公司收购少数股东股权,之前的利润母公司不享有
  • 企业购入旧固定资产如何计提折旧
  • 电子发票如何查询发票代码
  • 试分析营改增的重大意义
  • 代扣代缴增值税纳税义务发生时间
  • 消费金融服务要交税吗
  • 对公账户开通网银有什么好处
  • 专利权计入什么所得
  • 认缴实收资本印花税什么时候交
  • 外币报表折算差额怎么算
  • 加班工资是否属劳动关系
  • 印花税退款分录
  • 稿酬所得怎么纳税
  • win11安卓子系统教程
  • windows7怎样升级windows10
  • linux输出结果
  • linux删除文本文件命令
  • 建筑企业如何确认所得税收入
  • php img
  • 公寓增值税税率是多少
  • 高新企业技术服务成本核算
  • 可供出售和交易性金融资产的区别
  • 合伙企业分红个税税率表
  • yolov3原理及代码解析
  • php验证表单方法有哪些
  • 银行承兑汇票应由在承兑银行开立存款账户的存款人签发
  • 用python处理图像
  • 微信小程序在哪里打开
  • 学python真的好就业吗
  • 库存商品用于研发要进项税额转出吗
  • 自然人专项扣除填报
  • 帝国cms8.0
  • 纳税申报的流程表
  • 公司印章样子
  • 应收账款的贷方发生额表示什么
  • 建筑业服务包含哪些?
  • 关于职工薪酬的确认和计量下列说法中不正确的是
  • 零余额账户用款额度年末转入哪个科目
  • 应收账款管理制度
  • 车船税收费标准
  • 固定基金减少的理由
  • 发票开错了只能冲红票吗?
  • macfic
  • 联想lenovoideapad700-15isk
  • xp怎么装系统步骤图解
  • centos7怎么配置
  • linux最常用的shell终端是
  • linux vmware命令行
  • win10电脑磁盘损坏
  • win10开始菜单怎么打开
  • Android GLSurfaceView.Renderer
  • html中的td
  • 常用原生js兼容软件
  • unity只执行一次的方法
  • JavaScript中的this指向
  • python中如何去除空格
  • python函数设置
  • 堆栈模式都是什么意思
  • javascript面向对象精要
  • First Class: UI of Android
  • 更改税务购票员
  • 12366人工服务时间节假日上班吗
  • 税务局函调情况说明
  • 纳税申报的期限是多久
  • 城镇土地使用税减免税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设