TL;DR:有没有办法可以在本地下载和安装用于 Wikidata 的 SPARQL 端点 query.wikidata.org 的数据和软件?我需要这个的原因是我要运行经常超时的查询。
在另一个 SO 问题中,我读到该软件是 Blazegraph。
长版:
我正在使用 SPARQL 查询服务https://query.wikidata.org对其运行相当繁重的查询。例如,以下查询检索所有化合物的列表(Q11173 或其子类的实例):
SELECT ?item ?boiling_point ?melting_point ?decomp_point ?mass ?smiles
(GROUP_CONCAT(DISTINCT ?chemFormula; SEPARATOR=", ") AS ?chemFormulae)
(GROUP_CONCAT(DISTINCT ?chemStructure; SEPARATOR=", ") AS ?chemStructures)
WHERE {
?item wd:P31/wdt:P279*|wdt:P279* wd:Q11173.
OPTIONAL { ?item wdt:P2102 ?boiling_point. }
OPTIONAL { ?item wdt:P2101 ?melting_point. }
OPTIONAL { ?item wdt:P2107 ?decomp_point. }
OPTIONAL { ?item wdt:P2067 ?mass. }
OPTIONAL { ?item wdt:P274 ?chemFormula. }
OPTIONAL { ?item wdt:P117 ?chemStructure. }
OPTIONAL { ?item wdt:P233 ?smiles. }
}
GROUP BY ?item ?boiling_point ?melting_point ?decomp_point ?mass ?smiles
由于有超过一百万个实例,这个查询达到一分钟的超时,我看不到优化查询的可能性,因为即使没有属性,并且有LIMIT
10 个条目,查询也会超时:
SELECT ?item
WHERE {
?item wd:P31/wdt:P279*|wdt:P279* wd:Q11173.
}
直接链接。
我可以通过编写分而治之的脚本单独查询子类,但在我这样做之前,我想检查一个更简单的可能性: