2

我使用 D2R 服务器对我的数据库进行 Rdfize,该数据库大约拥有 130 万条记录。转换中一切顺利,但 SPARQL 端点的速度非常慢,并且大多数时候它以 500 个未知错误告终。我正在寻找任何可以加快查询执行过程的解决方案。我有一个例子,用 dbpedia snorql 检查,当我查询时,它会在几秒钟内给我结果。但是当我尝试在我的端点中运行相同类型的查询时,它很晚才产生结果,而且大多数时候没有错误(Java 堆类型或 500 未知)。DBpedia snorql http://dbpedia.org/snorql。试试这个查询

选择计数(*)WHERE { ?s ?p ?o }

我的 snorql http://cbakerlab.unbsj.ca:8080/liapibackup/snorql/

任何意见/建议将不胜感激。Ps 我的服务器有大约 42 GB 的 RAM,所以内存应该不是问题。谢谢

4

1 回答 1

2

原因是您使用的是 D2R。如果您执行一个匹配所有可能的三元组的查询,这意味着必须解析所有映射。这会导致大量 SQL(或您正在使用的任何关系数据库)查询。

有两种可能的解决方案:

只做特定的查询和使用限制:

SELECT ?s ?p ?o WHERE {
  ?s ?p ?o
} LIMIT 10

SELECT ?s WHERE {
  ?s a uysie:DocumentFigures
} LIMIT 100

或者使用 d2r rdf-dump 工具并将结果放入 rdf 存储

于 2013-11-01T06:48:40.567 回答