一个基于图的数据管理系统-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 接口
一个基于图的数据管理系统-gStore的更多相关文章
- TRex,一个基于DPDK的数据包发生器,测试仪
1. introduction TRex是cisco基于Intel dpdk开发的软件程序.推荐在CentOS/RHEL 7.6, 64bits中运行,否则connectx-4网卡不可使用. 笔者在U ...
- C++ 基于多态的职工管理系统
职工管理系统 1.管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工.经理.老板,显示信息时,需要显示职工编 ...
- 徒手打造基于Spark的数据工厂(Data Factory):从设计到实现
在大数据处理和人工智能时代,数据工厂(Data Factory)无疑是一个非常重要的大数据处理平台.市面上也有成熟的相关产品,比如Azure Data Factory,不仅功能强大,而且依托微软的云计 ...
- Creating adaptive web recommendation system based on user behavior(设计基于用户行为数据的适应性网络推荐系统)
文章介绍了一个基于用户行为数据的推荐系统的实现步骤和方法.系统的核心是专家系统,它会根据一定的策略计算所有物品的相关度,并且将相关度最高的物品序列推送给用户.计算相关度的策略分为两部分,第一部分是针对 ...
- 开源低代码平台开发实践二:从 0 构建一个基于 ER 图的低代码后端
前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代 ...
- 基于linux c的mysql操作——幼儿园数据管理系统
上周对于mysql进行了简单的学习,利用c对mysql进行操作,主要用到了以下几个函数: mysql_init(); mysql_real_connect(数据库变量指针,网络地址,用户名,登录密码, ...
- 开源一个自己造的轮子:基于图的任务流引擎GraphScheduleEngine
GraphScheduleEngine是什么: GraphScheduleEngine是一个基于DAG图的任务流引擎,不同语言编写.运行于不同机器上的模块.程序,均可以通过订阅GraphSchedul ...
- 基于Vue开发的门户网站展示和后台数据管理系统
基于Vue的前端框架有很多,这几年随着前端技术的官方应用,总有是学不完的前端知识在等着我们,一个人的精力也是有限,不可能一一掌握,不过我们学习很大程度都会靠兴趣驱动,或者目标导向,最终是可以以点破面, ...
- (转载)使用SQL-Server创建一个银行数据管理系统Ⅰ
首先,要创建一个完整的数据管理系统,不是一蹴而就的,一定要要一步一步的来,不断完善,最终方能达到自己想要的结果,所以我在这里也是一点一点分步来做的. 创建数据库,数据库属性在这里用的是默认(不推荐使用 ...
随机推荐
- 自媒体工具OpenWrite
自媒体工具OpenWrite 本篇主要介绍一款自媒体工具OpenWrite,如果你平时喜欢写写文章又或者写写笔记 你可以使用OpenWrite 统一将你写的文章发布到各个平台 包括 CSDN . S ...
- 逆元(inv)
推荐博客 : http://blog.csdn.net/baidu_35643793/article/details/75268911 通常我们在计算除法取模时,并不能直接的取模后再去相除,答案会有问 ...
- WebGL简易教程(十五):加载gltf模型
目录 1. 概述 2. 实例 2.1. 数据 2.2. 程序 2.2.1. 文件读取 2.2.2. glTF格式解析 2.2.3. 初始化顶点缓冲区 2.2.4. 其他 3. 结果 4. 参考 5. ...
- ORM补充文件
models.FileField(verbose_name='头像', upload_to='avatars/') 文件 content = models.TextField() 文本 models. ...
- [bzoj1375] [Baltic2002] Bicriterial routing 双调路径
Description 如今的道路收费发展很快.道路的密度越来越大,因此选择最佳路径是很现实的问题.城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用. 路径是连续经过的道路组成的.总时间 ...
- 手势识别控制pygame精灵
步骤: 编写简易pygame精灵游戏(只实现键盘上下左右控制) 解决opencv手势识别核心问题 上述2部分对接上 pygame部分我们只加载个背景,然后里面放1只乌龟精灵,用键盘的上下左右键来控制, ...
- 创建自定义的RouteBase实现(Creating a Custom RouteBase Implementation) |定制路由系统 |
- jenkins 集成jmeter-简单篇
测试用例上传至gitlab后,使用jenkins集成gitlab,并执行压测命令 执行完成后,可在jenkins中查看压测报告不同的项目创建最好创建不同的project) [集成]安装&配置& ...
- cnblogs 美化主题
Silence主题 一个简洁的主题, 不带广告,我很喜欢 cnblogs 域名解析 这需要注意一点是:github.io项目名需要和用户名一致才能正确访问,否则会报404 Markdown格式化编辑 ...
- tomcat梳理
tomcat梳理 Tomcat的缺省端口是多少,怎么修改? 默认接口是8080 修改 1)找到Tomcat目录下的conf文件夹 2)进入conf文件夹里面找到server.xml文件 3)打开ser ...