首页 > 解决方案 > 独立的 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 的机器的附加信息,以防万一。

标签: sparqlblazegraphwikidata-query-service

解决方案


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 小时后给出结果......


推荐阅读