Openlink virtuoso安装与加载知识图谱

国盛
2023-12-01

Openlink virtuoso安装、运行与加载知识图谱

1. 下载资源

从SOURCEFORGE上下载资源。作者这里使用7.2.5版本的已编译版本,比较方便。

2. 安装

  1. 解压文件:
tar -xvzf virtuoso-opensource.x86_64-generic_glibc25-linux-gnu.tar.gz
  1. 进入virtuoso-opensource/database文件夹,重命名virtuoso.ini.sample为virtuoso.ini
  2. 修改virtuoso.ini中的参数,下面列出可能需要修改的参数:
DirsAllowed			= ., ../vad, /usr/share/proj, /YOUR/KG/FILE/PATH  # 允许virtuoso加载知识图谱的地址,即知识图谱所在的文件夹路径

;; Uncomment next two lines if there is 32 GB system memory free
NumberOfBuffers          = 2720000  # 根据服务器的内存选择合适的缓冲区,作者的服务器是32G
MaxDirtyBuffers          = 2000000  # 内存(句首的;为注释
;NumberOfBuffers          = 10000
;MaxDirtyBuffers          = 6000

MaxQueryExecutionTime      	= 600	; in seconds # 最大单个查询时间,本来参数值为60,但是有些查询语句比较耗时,故改成600

3. 运行

命令行当前路径为virtuoso-opensource/database,运行virtuoso:(或者阅读第一篇参考文献添加环境变量,方便启动)

../bin/virtuoso-t -fd

4. 加载知识图谱

命令行当前路径为virtuoso-opensource/bin,启动isql:

isql 1111 dba dba  # 后两个参数分别为默认账号、密码

若发生错误:[ISQL]ERROR: Could not SQLConnect,将当前目录下的isql重命名为isql-v,启动isql:

../bin/isql-v 1111 dba dba

通过上述命令进入数据库的命令管理工具 ISQL,然后开始加载知识图谱:

# 先介绍一下几个命令的区别:
# 加载单个文件命令:ld_add(知识图谱文件目录, 载入到图的名字) # 图(graph)用于区分知识图谱
# 加载: ld_dir('/your/kg/file/path', '*.ttl', 'http://knowledge.graph')
# 加载某个文件夹下某个格式的所有文件:ld_dir_all('/your/kg/file/path', '*.ttl', 'http://knowledge.graph')

# 下面开始加载知识图谱,假设只有一个文件。
# 添加要加载的知识图谱文件路径
ld_add('/your/kg/path.ttl', 'http://your.knowledge.graph');
# 查看是否已经正确添加
select * from DB.DBA.load_list;
# 执行加载:
rdf_loader_run();
# 测试加载是否成功
SPARQL select count(*) from <http://knowledge.graph> where {?s ?r ?o};
# 保存加载至硬盘:若不执行checkpoint,加载的知识图谱存在于内存中,下次启动virtuoso就需要重新加载
checkpoint;
# 退出isql
exit;

5. 结语

至此virtuoso的安装、运行与加载知识图谱就完成了,下次运行virtuoso即可使用SPARQL在端口查询。

默认设置启动virtuoso后,查询端口:本机使用为http://localhost: 8890/sparql;局域网内其他主机使用为http://ip:8890/sparql。

6. 参考文献

Linux系统下virtuoso数据库安装与使用 - 小田狗儿 - 博客园

openlink virtuoso loader

Virtuoso Bulk Load Example: DBpedia data sets

Setting up a Linked Data mirror from RDF dumps (DBpedia 2015-04, Freebase, Wikidata, LinkedGeoData, …) with Virtuoso 7.2.1 and Docker (optional) | Jörn’s Blog

 类似资料: