大家在使用gStore过程中是否踩过很多坑,流过很多泪。本期开发小哥用自己亲身经历来说明哪些地方有坑以及如何避免,以便其他使用者能够顺利使用gStore,达到前方尽是坦途。
1. 数据格式
首先是RDF数据方面的一些格式上的约定:
-
三元组之间必须要要有空格,因为gStore是以空格来切割主语/谓语/宾语;
-
三元组的主语、谓语的内容不能包含有空格。否则会导致数据查出不出来的情况;
-
三元组的主语、谓语、宾语的内容不能包含有换行。否则会导致数据查不出来的情况;
-
三元组的宾语如果是属性值,最好都加上数据类型说明,否则会影响部分函数的正常使用,如:最小值最大值平均值等等。常见数据类型包括
<http://www.w3.org/2001/XMLSchema#integer>
(整数类型),<http://www.w3.org/2001/XMLSchema#decimal>
(定点类型),xsd:double
(双精度浮点类型),<http://www.w3.org/2001/XMLSchema#string>
(字符串类型),<http://www.w3.org/2001/XMLSchema#boolean>
(布尔类型),<http://www.w3.org/2001/XMLSchema#dateTime>
(日期时间类型)。数据文件中也可能出现其他数据类型,只需在查询中使用
^^<
数据类型后缀
>
的形式即可。
示例:
<张三> <性别> "男"^^<http://www.w3.org/2001/XMLSchema#String>.
<张三> <年龄> "28"^^<http://www.w3.org/2001/XMLSchema#Int>.
<张三> <好友> <李四>.
2. 本地命令
其次是gStore相关本地命令的注意事项,不同版本的gStore在执行本地命令时有差别。执行本地命令时的目录,为gStore的根目录,不是gStore根目录下面的bin目录。
2.1. 构建数据库(bin/gbuild)
0.9.1版本:bin/gbuild -db dbname -ffilename
参数说明:dbname:数据库名称 filename:带“.nt” 或者".n3"后缀的文件所在的文件路径
0.8版本:bin/gbuild db_name rdf_triple_file_path
参数说明:db_name:以“.db”结尾的数据库名称 rdf_triple_file_path:带“.nt”或者".n3"后缀的文件所在的文件路径
2.2. 初始化系统数据库(bin/ginit)
0.9.1版本:bin/ginit -db [db_name1],[db_name2],[...]
参数说明:db_name1:数据库名称
0.8版本:bin/ginit -d [db_name1] [db_name2] [...]
参数说明:db_name1:数据库名称
2.3. 数据库状态查询(bin/gmonitor)
0.9.1版本:bin/gmonitor -db db_name
参数说明:db_name:数据库名称
0.8版本:bin/gmonitor db_name
参数说明:db_name:数据库名称
2.4. 数据库查询(bin/gquery)
0.9.1版本:bin/gquery -db db_name -q query_file
参数说明:db_name: 数据库名称 query_file:以“.sql”结尾的SPARQL语句存放的文件路径(其他后缀名也可以)
0.8版本:bin/gquery db_name query_file
参数说明:query_file:以“.sql”结尾的SPARQL语句存放的文件路径(其他后缀名也可以)
2.5. 数据库导出(bin/gexport)
0.9.1版本:bin/gexport -db db_name -f path
参数说明:db_name:数据库名称 path:导出到指定文件夹下(如果为空,则默认导出到gStore根目录下)
0.8版本:bin/gexport db_name [path]
参数说明:db_name:数据库名称 path:导出到指定文件夹下(如果为空,则默认导出到gStore根目录下)
2.6. 数据库删除(bin/gdrop)
0.9.1版本:bin/gdrop -db db_name
参数说明:db_name:数据库名称
0.8版本:bin/gdrop db_name
参数说明:db_name: 数据库名称
2.7. 新增数据(bin/gadd)
0.9.1版本:bin/gadd -db db_name -f rdf_triple_file_path
参数说明:db_name:数据库名称 rdf_triple_file_path:带".nt"或者".n3"后缀的文件路径
0.8版本:bin/gadd db_name rdf_triple_file_path
参数说明:rdf_triple_file_path:带".nt"或者".n3"后缀的文件路径
2.8. 开启ghttp服务(bin/ghttp)
0.9.1版本:bin/ghttp -db db_name -p serverPort -c enable
参数说明:db_name: 要启动ghttp的数据库名称(可选项,如果不填则默认为system数据库,该参数主要作用在于, 启动ghttp时,将把该数据库相关信息load到内存中,如果后续查询其他数据库,服务器也将自动load所需 数据库,因此该参数可以不填;
serverPort: ghttp监听端口,该端口需要手动指定,且需保证该端口不会被服务器防火墙禁止(可选项, 如果不填则默认端口号为9000)
enable: 是否加载CSR资源,0为否,1为是(可选项,默认值为0)
0.8版本:bin/ghttp db_name serverPort
参数说明:db_name:要启动ghttp的数据库名称(可选项,如果不填则默认为system数据库,该参数主 要作用在于,启 动ghttp时,将把该数据库相关信息load到内存中,如果后续查询其他数据库,服务器也将自动load所需数 据库,因此该参数可以不填;
serverPort:ghttp监听端口,该端口需要手动指定, 且需保证该端口不会被服务器防火墙禁止)
2.9. 关闭ghttp服务(bin/shutdown)
0.9.1版本:bin/shutdown -p serverPort
参数说明:serverPort: ghttp启动时设置的端口(如果启动时没有设置端口,则默认为9000)
0.8版本:bin/shutdown serverPort
参数说明:serverPort: ghttp启动时设置的端口(如果启动时没有设置端口,则默认为9000)
2.10. 开启gServer服务(bin/gserver)
0.9.1版本:bin/gserver -s
参数说明:
-t,--stop: 关闭gserver服务;
-r,--restart:重启gserver服务;
-p,--port:修改socket连接端口配置,默认端口为9000,修改后需要重启gserver服务
-P,--printport:打印当前socket连接端口配置
-d,--debug:启动debug模式(保持gserver服务在前台运行)
-k,--kill:强制关闭服务,建议仅在无法正常关闭服务时使用
0.8版本:不支持
2.11. ghttp服务启动失败,提示端口占用,实际端口未被占用的情况
到gStore安装目录下,执行命令 rm -rf system.db/port.txt ,然后再启动ghttp服务。
2.12. 默认启动的ghttp服务,无法使用高级函数
0.9.1版本: 检查ghttp启动命令,必须要加载CSR资源,如:bin/ghttp -db system -p 9000 -c 1。
0.8版本:不支持高级函数
2.13. ghttp使用
接口不同版本支持说明:
针对gStore有任何问题也可通过加运营同学微信,邀请加入gStore图谱社区咨询。
诚邀大家参加
·gStore-weekly技术文章征集活动·
相关技术文章,包含但不限于以下内容:系统技术解析、案例分享、实践总结、开发心得、客户案例、使用技巧、学习笔记等。文章要求原创。
入选周刊即送精美礼品~