将维基数据导入到Virtuoso [英] Wikidata import into virtuoso

查看:13
本文介绍了将维基数据导入到Virtuoso的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将Wikidata加载到Virtuoso中。经过几天的搜索,我找不到任何教程,或者至少找不到使用Virtuoso来SPARQL查询维基数据的人。我不想花钱在一台服务器上免费加载50G+数据。 例如,为什么是演奏家,而不是Blazegraph?因为我习惯于使用Virtuoso for DBpedia。

Virtuoso

推荐答案

正如这里和其他地方所述,将Wikidata加载到VirtuosoVirtuoso应该只需从下载中创建TURTER文件(最好有多个TURTER文件)并将其批量加载即可。若要获得良好的性能,必须在viroso.ini中更改许多参数。

但是,将Wikidata加载到Virtuoso时会出现问题,因为Virtuoso中的一个长期存在的错误与其地理坐标的实现有关。要解决此问题,需要修补Virtuoso,而不适用于胆小的人。

以下是关于如何让开源版本的Virtuoso加载Wikidata的说明。请注意,地理坐标代码的修补可能会导致使用生成的KB时出现问题。

1/修补地理坐标文字代码,编辑viroso-opensource/libsrc/Wi/rdfbox.c以注释掉检查非地面坐标的两段代码。请注意,这是Virtuoso中的错误,并且Wikidata符合此数据类型的规范。

/*非陆地冷坐标if(RDF_BOX_GEO_TYPE==type&;&;DV_GEO!=box_dtp&;&;dv_long_int!=box_dtp) SQLR_NEW_ERROR("42000","rdfge","具有几何rdf类型和非几何内容的rdf框");*/

/*非陆地冷坐标IF(TYPE==RDF_BOX_GEO&;&;BOX_DTP!=DV_GEO) SQLR_NEW_ERROR("22023","SR559","几何类型的RDF箱需要空间对象作为值,而不是%s(%d)类型的值",DV_TYPE_TITLE(BOX_Dtp),box_dtp);*/

2/修补Turtle加载器,编辑Virtuoso-opensource/libsrc/Wi/ttlpv.sql中rdf_rl_lang_id的结尾,如下所示。请注意,这是Virtuoso中的另一个错误,由并行加载不同语言的语言字符串触发。

id:=SEQUENCE_NEXT(‘RDF_LANGUAGE_TWOBYTE’,1,1); --PFP插入RDF_LANGUAGE(rl_twobyte,rl_id)值(id,ln); 插入软RDF_LANGUAGE(rl_twobyte,rl_id)值(id,ln); 提交工作;--如果LOAD是非事务性的,则这仍然是清晰的事务边界。 LOG_ENABLE(OLD_MODE,1); --PFP获取实际id,因为它可能不同 ID:=(SELECT RL_TWOBYTE FROM DB.DBA.RDF_LANGUAGE WHERE RL_ID=ln); rdf_cache_id(‘l’,ln,id); 返回id;

这篇关于将维基数据导入到Virtuoso的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆