gStore常用命令/基本用法之增删改查

2022-04-20 00:00:00 查询 数据 语句 删除 命令

gStore针对RDF三元组数据增删改查都怎么使用呢,有哪些常用命令和用法,我在使用过程中进行了总结:

1.  新增数据
如何向gStore数据库中插入RDF三元组数据呢,我们可以通过以下几种方式:
  • 使用文件添加:gStore有个gadd命令,用于将文件中的三元组插入现有数据库。使用方法如下:
bin/gadd db_namerdf_triple_file_path

rdf_triple_file_path指带".nt"或者".n3"后缀的文件路径

  • 使用编写SPARQL语句添加:SPARQL定义中可以通过insert data指令来实现数据插入,基于此原理,用户也可以通过编写SPARQL插入语句,然后使用gStore的gquery工具来实现数据插入:

insert data {

    <张三> <性别>"男"^^<http://www.w3.org/2001/XMLSchema#String>.

<张三> <年龄>"28"^^<http://www.w3.org/2001/XMLSchema#Int>.

<张三> <好友> <李四>.

}

2.  删除数据
如何向gStore数据库中删除某个RDF三元组数据呢,我们可以通过以下几种方式:
  • 使用文件删除:gStore有个gsub命令,用于从现有数据库中删除文件中的三元组。使用方法如下:
bin/gsubdb_name rdf_triple_file_path

rdf_triple_file_path指带".nt"或者".n3"后缀的文件路径

例如从lubm数据库中删除lubm.nt中的三元组数据

[root@localhost gStore]$ bin/gsub lubm./data/lubm/lubm.nt

...

argc: 3 DB_store:lubm  remove file: ./data/lubm/lubm.nt

...

remove rdf triples done.

removed triples num: 99550

  • 使用编写SPARQL语句删除:SPARQL定义中可以通过delete data指令来实现数据删除,基于此原理,用户也可以通过编写SPARQL删除语句,然后使用gStore的gquery工具来实现数据删除:

delete data {

    <张三> <性别>"男"^^<http://www.w3.org/2001/XMLSchema#String>.

<张三> <年龄>"28"^^<http://www.w3.org/2001/XMLSchema#Int>.

<张三> <好友> <李四>.

}

另外,SPARQL中还可以通过delete where语句来实现根据子查询结构删除数据,例如我们要删除张三实体的所有信息(包括属性和关系):

delete where

{

   <张三> ?x ?y.

}

3.  修改数据

在gstore中,没有直接的修改数据的命令,我们可以通过先删除原数据,再新增实现数据的修改。

4.  查询数据

数据库查询是gStore重要的功能之一,数据查询支持使用包含SPARQL查询的文件查询现有数据库。

如查询名为db_name的数据库,输入以下命令:

 bin/gquery db_name query_file

参数含义:query_file:以“.sql”结尾的SPARQL语句存放的文件路径(其他后缀名也可以),其中query_file中的具体查询语句语法非常丰富,请查看往期分享。

例如,我们执行./data/lubm/lubm_q0.sql中的SPARQL语句查询lubm数据库

[root@localhost gStore]$ bin/gquery lubm./data/lubm/lubm_q0.sql

There has answer: 15

final result is :

?x

<http://www.Department0.University0.edu/FullProfessor0>

<http://www.Department1.University0.edu/FullProfessor0>

<http://www.Department2.University0.edu/FullProfessor0>

<http://www.Department3.University0.edu/FullProfessor0>

<http://www.Department4.University0.edu/FullProfessor0>

<http://www.Department5.University0.edu/FullProfessor0>

<http://www.Department6.University0.edu/FullProfessor0>

<http://www.Department7.University0.edu/FullProfessor0>

<http://www.Department8.University0.edu/FullProfessor0>

<http://www.Department9.University0.edu/FullProfessor0>

<http://www.Department10.University0.edu/FullProfessor0>

<http://www.Department11.University0.edu/FullProfessor0>

<http://www.Department12.University0.edu/FullProfessor0>

<http://www.Department13.University0.edu/FullProfessor0>

<http://www.Department14.University0.edu/FullProfessor0>

了解gquery的详细使用,可以输入以下命令进行查看:
bin/gquery --help
也可进入gquery控制台来进行查询:
bin/gquerydb_name
程序显示命令提示符(“gsql>”),您可以在此处输入命令
使用help看到所有命令的基本信息
输入 quit 以退出gquery控制台。
对于sparql 命令, 使用sparqlquery_file执行SPARQL查询语句,query_file为存放SPARQL语句的文件路径。当程序完成回答查询时,它会再次显示命令提示符。
   PS:在使用命令行gquery查询中需要注意以下问题:
  • 如果没有答案,将打印“[empty result]”,并且在所有结果后面都有一个空行。
  • 使用readline lib,因此您可以使用键盘中的箭头键查看命令历史记录,并使用和箭头键移动和修改整个命令。
  • 实用程序支持路径完成。(不是内置命令完成)
  • 注意不能直接cd到bin目录下,而要在gStore安装根目录执行gquery操作
我们还可以通过可视化工具(gworkbench)和HTTP API(ghttp)进行查询,gworkbench的查询可在云端版本试用gStore云端版试用(http://cloud.gstore.cn/),ghttp是gStore提供的外部访问接口,是一个http API服务,用户通过向ghttp发送http请求,可以实现对gStore的远程连接和远程操作,这个大家也可以自行去体验试试。

相关文章