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的更多相关文章

  1. TRex,一个基于DPDK的数据包发生器,测试仪

    1. introduction TRex是cisco基于Intel dpdk开发的软件程序.推荐在CentOS/RHEL 7.6, 64bits中运行,否则connectx-4网卡不可使用. 笔者在U ...

  2. C++ 基于多态的职工管理系统

    职工管理系统 1.管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工.经理.老板,显示信息时,需要显示职工编 ...

  3. 徒手打造基于Spark的数据工厂(Data Factory):从设计到实现

    在大数据处理和人工智能时代,数据工厂(Data Factory)无疑是一个非常重要的大数据处理平台.市面上也有成熟的相关产品,比如Azure Data Factory,不仅功能强大,而且依托微软的云计 ...

  4. Creating adaptive web recommendation system based on user behavior(设计基于用户行为数据的适应性网络推荐系统)

    文章介绍了一个基于用户行为数据的推荐系统的实现步骤和方法.系统的核心是专家系统,它会根据一定的策略计算所有物品的相关度,并且将相关度最高的物品序列推送给用户.计算相关度的策略分为两部分,第一部分是针对 ...

  5. 开源低代码平台开发实践二:从 0 构建一个基于 ER 图的低代码后端

    前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代 ...

  6. 基于linux c的mysql操作——幼儿园数据管理系统

    上周对于mysql进行了简单的学习,利用c对mysql进行操作,主要用到了以下几个函数: mysql_init(); mysql_real_connect(数据库变量指针,网络地址,用户名,登录密码, ...

  7. 开源一个自己造的轮子:基于图的任务流引擎GraphScheduleEngine

    GraphScheduleEngine是什么: GraphScheduleEngine是一个基于DAG图的任务流引擎,不同语言编写.运行于不同机器上的模块.程序,均可以通过订阅GraphSchedul ...

  8. 基于Vue开发的门户网站展示和后台数据管理系统

    基于Vue的前端框架有很多,这几年随着前端技术的官方应用,总有是学不完的前端知识在等着我们,一个人的精力也是有限,不可能一一掌握,不过我们学习很大程度都会靠兴趣驱动,或者目标导向,最终是可以以点破面, ...

  9. (转载)使用SQL-Server创建一个银行数据管理系统Ⅰ

    首先,要创建一个完整的数据管理系统,不是一蹴而就的,一定要要一步一步的来,不断完善,最终方能达到自己想要的结果,所以我在这里也是一点一点分步来做的. 创建数据库,数据库属性在这里用的是默认(不推荐使用 ...

随机推荐

  1. C#实现把查询出的Table作为参数更新到数据库

    1.ImportData主方法 把传入为object数组类型,按照下标取出对应的参数,此处为Table和Username public object[] ImportData(object[] Par ...

  2. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第三节:WebResponse

    第二节中,我们介绍了WebRequest,它可以帮助我们发送一个请求,不过正所谓“来而不往非礼也”,对方收到我们的请求,不给点回复,貌似不太合适(不过,还真有脸皮厚的:P). 接下来,就重点研究一下, ...

  3. Activiti 规则任务(businessRuleTask)

    Activiti 规则任务(businessRuleTask) 作者:Jesai 目前国内研究Activiti规则任务businessRuleTask)的文章在网上应该不超出3篇 小觑夜漫酒作伴,破晓 ...

  4. Nginx. 用http访问https跨域

    用http 访问 https域名, 报跨越问题 解决方法: 在nginx相应服务的转发配置下添加: add_header 'Access-Control-Allow-Origin' 'http://i ...

  5. mysql 注入问题

    1.实质 MySql语句是用户自行拼接的字符串 2.例子 import pymysql # 获取用户输入信息 username = input("请输入用户名:") pwd = i ...

  6. Tomcat 9 与JDK 8 的安装与配置

    Tomcat 9的安装与配置 解压压缩包,我的解压路径是:D:\Program Files\Java 注意:这里tomcat压缩包不能解压到C盘,否则会因为C盘文件夹访问权限授权问题,没法解决后面出现 ...

  7. 第二阶段冲刺个人任务——three

    今日任务: 优化统计个人博客结果页面的显示. 昨日成果: 优化作业查询结果,按学号排列.

  8. 团队项目-Beta冲刺1(七个小矮人)

    团队项目-Beta冲刺1(七个小矮人) 一.格式描述 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScien ...

  9. 面向初学者的指南:创建时间序列预测 (使用Python)

    https://blog.csdn.net/orDream/article/details/100013682 上面这一篇是对 https://www.analyticsvidhya.com/blog ...

  10. 谈谈模型融合之三 —— GBDT

    前言 本来应该是年后就要写的一篇博客,因为考完试后忙了一段时间课设和实验,然后回家后又在摸鱼,就一直没开动.趁着这段时间只能呆在家里来把这些博客补上.在之前的文章中介绍了 Random Forest ...