维基数据查询重复 [英] Wikidata query duplicates
本文介绍了维基数据查询重复的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
SELECT DISTINCT ?item ?itemLabel ?author ?name ?creation ?picture
WHERE
{
?item wdt:P136 wd:Q193606 . # book
?item wdt:P50 ?author . # author
?item wdt:P577 ?creation .
?item wdt:P577 ?end .
?author rdfs:label ?name .
OPTIONAL{ ?item wdt:P18 ?picture }
FILTER (?creation >= "1925-01-01T00:00:00Z"^^xsd:dateTime) .
FILTER (?end <= "1950-12-31T23:59:59Z"^^xsd:dateTime) .
SERVICE wikibase:label
{
bd:serviceParam wikibase:language "en" .
}
}
但是,由于某些原因,此查询在列表中放置了重复项。DISTINCT不会做太多事情。过了一段时间,我发现原因是"?item rdfs:label?name."。如果删除此行,则不会列出重复项。但是我需要这行来在列表中显示作者的名字!
您对如何解决此问题有什么建议吗?
推荐答案
查询实际上为您提供了不同的项目。问题是有些项目有多个rdfs:标签。例如,您可以看到以下项目:
SELECT *
WHERE
{
wd:Q2882840 rdfs:label ?label
SERVICE wikibase:label
{
bd:serviceParam wikibase:language "en" .
}
}
由于某些项目有多个rdfs:label谓词,因此它们显示在单独的行中。
这篇关于维基数据查询重复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文