知识存储

这是笔者在完成知识图谱的书籍中的知识存储章节中所记录的内容。

Posted by 南三号 on October 20, 2020

知识存储

含义:知识存储是将有价值的知识经过选择、过滤、加工和提炼后,按照一定的规则保存在适当媒介内,以利于需求者更为便利、快速地使用,并随时更新和重组其内容和结构的活动。

知识图谱主要有两种存储方式:一种是基于 RDF 的存储;另一种是基于图数据库的存储。

RDF 一个重要的设计原则是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上。其次,RDF 以三元组的方式来存储数据而且不包含属性信息,但图数据库一般以属性图为基本的表示形式,所以实体和关系可以包含属性,这就意味着更容易表达现实的业务场景。根据相关统计,图数据库仍然是增长最快的存储系统。相反,关系型数据库的增长基本保持在一个稳定的水平。

基于关系数据库存储

三元组表,水平表,属性表,垂直划分,六重索引,DB2RDF

关系型数据库

Mysql,Oracle,Sql Server

面向RDF的三元组数据库

开源:RDF4J,RDF-3X,gStore

商业:Virtuoso,AllegroGraph,GraphDB,Blazegraph,Stardog

原生图数据库

Neo4j(最流行),JanusGraph(分布式),OrientDB,Cayley

主要知识图谱数据库比较

类型 名称 许可证 存储方案 开发语言 特点描述
基于关系 3store 开源 三元组表 C 早期系统,三元组存储代表
  DLDB 研究原型 水平表 Java 早期系统,水平表存储代表
  Jena 开源 属性表 Java 主流语义Web框架与数据库
  SW-Store 研究原型 垂直划分 C 科研原型系统,垂直划分代表
  IBM DB2 商业 DB2RDF Java 支持RDF的主流商业数据库
  Oracle 12c 商业 关系存储 Java 支持RDF的主流商业数据库
RDF三元组库 RDF4J 开源 SAIL API Java 主流语义Web框架与数据库
  RDF-3X 开源 六重索引 C++ 科研原型系统,六重索引代表
  gStore 开源 VS树 C++ 科研原型系统,原生图存储
  Virtuoso 商业 多模型混合 C/C++ 语义Web项目常用RDF数据库
  AllegroGraph 商业 三元组索引 Common Lisp 擅长语义推理功能
  GraphDB 商业 三元组索引 Java 支持SAIL层推理功能
  Blazegraph 商业 三元组索引 Java 基于RDF三元组库的图数据库
  StarDog 商业 三元组索引 Java 支持OWL2推理机制
图数据库 Neo4j 开源/商业 原生图存储 Java 最流行的图数据库
  JanusGraph 商业 分布式存储 Java 分布式图数据库
  OrientDB 商业 原生图存储 Java 支持多模型数据管理
  Cayley 开源 外部存储 Go 轻量级开源图数据库