一个基于图的数据管理系统-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创建一个银行数据管理系统Ⅰ
首先,要创建一个完整的数据管理系统,不是一蹴而就的,一定要要一步一步的来,不断完善,最终方能达到自己想要的结果,所以我在这里也是一点一点分步来做的. 创建数据库,数据库属性在这里用的是默认(不推荐使用 ...
随机推荐
- 重拾c++第四天(7):函数相关
1.引用变量: int a; int &b = a; //引用变量 指向同一地址,必须在初始化时定义,且一直对原变量献上忠诚,主要针对类对象 2.函数重载最好用在功能相同,但数据类型不同的情况 ...
- 大白话建造者模式(Builder Pattern)
前言 起初打算按照之前的日产系列写建造者模式.但参考了网上的很多文章,让我对建造者模式更加的困惑,也害怕自己无法已易懂的方式进行解释.最后通过Google发现了一篇英文文章Builder,使我茅塞顿开 ...
- 树上对抗搜索 - 树形dp
Alice and Bob are going on a trip. Alice is a lazy girl who wants to minimize the total travelling d ...
- python 封装底层实现原理
事实上,python封装特性的实现纯属"投机取巧",之所以类对象无法直接调用私有方法和属性,是因为底层实现时,python偷偷改变了它们的名称. python在底层实现时,将它们的 ...
- 【Java面试】Mybatis篇
1.MyBatis编程步骤是什么样的? ① 创建SqlSessionFactory ② 通过SqlSessionFactory创建SqlSession ③ 通过sqlsession执行数据库操作 ④ ...
- 创建过滤扩展方法 Creating Filtering Extension Methods 精通ASP-NET-MVC-5-弗瑞曼 Listing 4-17
- [白话解析] 深入浅出支持向量机(SVM)之核函数
[白话解析] 深入浅出支持向量机(SVM)之核函数 0x00 摘要 本文在少用数学公式的情况下,尽量仅依靠感性直觉的思考来讲解支持向量机中的核函数概念,并且给大家虚构了一个水浒传的例子来做进一步的通俗 ...
- 快速构建第三方api应用
1.使用框架和扩展 详细请看composer.json "php": "^7.1.3", "laravel-admin-ext/config" ...
- CTF--HTTP服务--PUT上传漏洞
开门见山 1. 扫描靶机ip,发现PCS 192.168.31.48 2. 用nmap扫描靶机的开放服务和版本信息 3. 再扫描全部信息 4. 用nikto探测靶机http服务敏感信息 5. 再用di ...
- SpringCloud与微服务系列专栏
一. 前置知识 学习SpringCloud之前需要具备和掌握如下框架和工具的使用:SpringMVC,Spring,Spring Boot,Mybatis,Maven,Git. SpringCloud ...