小编Dus*_*usk的帖子

维基数据查询重复项

抱歉,如果我的英语不好,但我真的没有任何地方可以用我的母语问这个问题。我一直在尝试为 Wikidata 创建 SPARQL 查询,该查询应该创建 1925-1950 年间创作的所有恐怖小说、作者姓名以及图片(如果有)的列表:

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" .
} 
}
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,该查询在列表中放置了重复项。DISTINCT 没有多大作用。一段时间后,我发现原因是“?item rdfs:label ?name .”。如果删除此行,则不会列出重复项。但我需要这一行来在列表中显示作者姓名!有想法该怎么解决这个吗?

sparql wikidata

6
推荐指数
1
解决办法
2293
查看次数

标签 统计

sparql ×1

wikidata ×1