sparql - 独立的 blazegraph wikidata 服务器没有返回结果
问题描述
我刚刚成功创建了一个本地独立的 Blazegraph 实例并按照此处的说明上传了 Wikidata 数据库https://github.com/wikimedia/wikidata-query-rdf/blob/master/docs/getting-started.md。
这是我使用的“超级”命令:
git clone --recurse-submodules https://gerrit.wikimedia.org/r/wikidata/query/rdf wikidata-query-rdf && cd wikidata-query-rdf && mvn package && cd dist/target && unzip service-*-dist.zip && cd service-*/
nohup ./runBlazegraph.sh &
mkdir data && wget https://dumps.wikimedia.org/wikidatawiki/entities/latest-lexemes.ttl.gz && mkdir data/split && ./munge.sh -f latest-lexemes.ttl.gz -d data/split -l en,es -s && ./loadRestAPI.sh -n wdq -d `pwd`/data/split && ./runUpdate.sh -n wdq -l en,es -s
./runUpdate.sh 仍在运行,但已将更新拉到 2019-09-23T13:31:56Z
测试它,我将我本地的维基数据结果与维基数据查询服务结果进行了比较,并且存在差异。
例如,如果我从示例中运行“Cats”查询:
#Cats
SELECT ?item ?itemLabel
WHERE
{
?item wdt:P31 wd:Q146.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
维基数据查询服务有 142 个结果。我没有。
如果我从示例中运行“最近事件”查询:
#Recent Events
SELECT ?event ?eventLabel ?date
WHERE
{
# find events
?event wdt:P31/wdt:P279* wd:Q1190554.
# with a point in time or start date
OPTIONAL { ?event wdt:P585 ?date. }
OPTIONAL { ?event wdt:P580 ?date. }
# but at least one of those
FILTER(BOUND(?date) && DATATYPE(?date) = xsd:dateTime).
# not in the future, and not more than 31 days ago
BIND(NOW() - ?date AS ?distance).
FILTER(0 <= ?distance && ?distance < 31).
# and get a label as well
OPTIONAL {
?event rdfs:label ?eventLabel.
FILTER(LANG(?eventLabel) = "en").
}
}
# limit to 10 results so we don't timeout
LIMIT 10
Wikidata 查询服务显然返回 10 个结果。我有一个。
为什么会出现这种结果差异?是不是我做错了什么?
先感谢您。
关于我运行 Wikidata 的机器的附加信息,以防万一。
- 工作站戴尔 Precision 7510
- Ubuntu 18.04.3 LTS 64 位
- 内存 32G RAM
- 处理器 Intel® Core™ i7-6820HQ CPU @ 2.70GHz × 8
- 显卡 Quadro M2000M/PCIe/SSE2
- 磁盘 250Gb SSD
解决方案
2018 年 1 月,我按照您在http://wiki.bitplan.com/index.php/WikiData#Import中找到的说明成功完成了 Wikidata 导入。我第一次尝试使用标准硬盘花了很长时间,我估计需要 10 天的导入时间。当我切换到 SSD 时,导入时间减少到 2.9 天。当时我需要一个 512 GB 的 SSD 来适应 jnl 文件。
自 2018 年 1 月以来,Wikidata 增长得更多,因此您可以预期导入时间至少会成比例地增加。最近在 Wikidata 邮件列表中对导入进行了一些讨论,因此您会在那里找到有关替代方案和速度问题的提示。
在导入完成之前,您不会得到合理的结果,因为链接三元组可能还没有。
对于猫的例子,我的 2018-01 导入在 2 秒后有 111 个结果。事件示例取决于您何时运行查询、何时执行导入以及该期间每月有多少事件。我将 31 天更改为 600 天,以在大约 30 秒后获得 10 个结果。如果我没有限制地运行查询并且 31 它不会在 7 小时后给出结果......
推荐阅读
- android - 如何在 kotlin 的 Android 中的 Dialog Fragment 中覆盖 onCancel?
- android - 如何从android本机活动中绘制像素数组
- typescript - TypeScript React Hooks,自定义钩子类型推断问题
- python - 在 SQL [Python/SQLite] 中高效搜索子字符串
- c# - 如何使用 C# 更新 BsonDocument 中的 BsonArray 值?
- c - 为什么向量长度 SIMD 代码比普通 C 慢
- python - 如何将函数应用于 numpy 中的滚动窗口?
- c++ - 有没有办法在不覆盖实际分配的情况下使用 vulkan 内部分配回调?
- javascript - 模式:如何从异步函数返回的结果中访问 object.properties(正确)
- pandas - 熊猫注释框重叠