我刚刚成功创建了一个本地独立的 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