一个基于图的数据管理系统-gStore
gStore是遵循 BSD协议的一个开源项目。一个基于图的 RDF 三元组存储的数据管理系统。该项目是北京大学、滑铁卢大学、香港科技大学的联合研究项目。中国北京大学计算机科学与技术研究所的数据库组对该系统进行开发和维护。目前尚未商业化,需通过技术转让或授权使用。
- gStore从图数据库角度存储和检索RDF知识图谱数据.
- gStore支持W3C定义的SPARQL1.1标准,包含Union,OPTIONAL,FILTER和聚集函数查询;gStore支持有效的增删改操作
- gStore单机可以支持1Billion(十亿)三环组规模的RDF知识图谱的数据管理任务
gStore--基于图的RDF存储和查询系统
gStore主要技术手段:
• 统一的结构和内容编码方法
• 一种高度平衡树 VS-tree索引
• 基于索引的多级过滤机制
查询编码图 Q*
数据编码图 G*
▲代码:除了SPARQL语法解析器外均为独立开发的,目前有14万行C++,完成自主知识产权;共计6人年, 目前是版本v 0.3.0 .
▲开源地址:https://github.com/Caesar11/gStore/
包括全部的系统代码;详细的用户手册;与目前最好的开源和工业系统在多个Benchmark数据集上的对比测试报告;系统使用演示视频。
▲开源协议:基于BSD 协议
▲部署方法:单机和C/S方式部署
▲接口:C++, Java, python, PHP等API接口;接收标准的RDF文件格式(N3,Turtle等格式)
gStore 安装
gStore可以采用单机和C/S方式部署。源码包(C++)编译安装,安装过程中依赖包较多,需分别安装。需注意各依赖包版本问题。总体安装部署难度为:中等。
测试服务器系统配置:
- 操作系统:Centos 6.5
- 架构:x86_64
- 磁盘容量:500G
- 内存空间:32G
gStore命令行
gconsole:
gStore 的主要控制台
gbuild/build:
根据三元组文件生成新的数据库
例如:bin/gbuild test test_data/2.0_zhwiki_dbpedia_links_zh.n3
或在gconsole状态下执行:build test test_data/2.0_zhwiki_dbpedia_links_zh.n3
load:
装载数据库
在gconsole状态下执行:load test
unload:
卸载数据库
在gconsole状态下执行:unload
gadd/add:
向数据库中插入一个文件中的三元组
例如:bin/gadd test test_data/2.0_zhwiki_infobox_properties_zh.n3
或在gconsole状态下执行:add test test_data/2.0_zhwiki_infobox_properties_zh.n3
gsub/sub:
从数据库中删除某一文件中的三元组
例如:bin/gsub test test_data/2.0_zhwiki_infobox_properties_zh.n3
或在gconsole状态下执行:sub test test_data/2.0_zhwiki_infobox_properties_zh.n3
gquery /query:
用包含 SPARQL的文件查询一个已有的数据库
gserver:
一个后台程序。会在使用 gclient 或 API 连接 gStore 时运行。
例如:bin/gserver –s 启动server
bin/gserver –p 3306 指定server监听端口为3306
bin/gserver –t 关闭server
ghttp:
通过 HTTP 协议访问 gStore
例如:bin/ghttp
从数据集建立一个数据库:
http://*.*.*.*:9001/%3Foperation%3Dbuild%26db_name%3Dtest%26ds_path%3dtest_data%2f2.0_zhwiki_dbpedia_links_zh.n3
加载一个数据库:
http://*.*.*.*:9001/%3Foperation%3Dload%26db_name%3Dtest
在当前数据库进行查询:
http://*.*.*.*:9001/%3Foperation%3Dquery%26format%3Djson%26sparql%3d%22select+%3fx+where+%7b+%3fx+%3cub%3aname%3e+%3cFullProfessor0%3e%7d%22
卸载数据库:
http://*.*.*.*:9001/%3Foperation%3Dunload%26db_name%3Dtest
监控服务器:
http://*.*.*.*:9001/%3Foperation%3monitor
显示当前加载的数据库:
http://*.*.*.*:9001/%3Foperation%3show
保存当前数据库:
http://*.*.*.*:9001/%3Foperation%3checkpoint
gStore--HTTP API 接口