如何用SPARQL查询维基百科页面的可用语言版本数量
SPARQL查询修正方案
你需要统计的维基百科语言版本数量可以通过关联Wikidata条目对应的跨语言站点链接实现,不需要调用额外的Wikidata属性,修改后的完整查询如下:
SELECT ?label (COUNT(DISTINCT ?lang) AS ?number) WHERE { VALUES ?type {wd:Q571 wd:Q7725634} # 匹配书籍或文学作品 ?item wdt:P31 ?type . ?item wdt:P577 ?date FILTER (?date > "1980-01-01T00:00:00Z"^^xsd:dateTime) . # 1980年及之后出版 ?item rdfs:label ?label FILTER (lang(?label) = "it") . ?item wdt:P495 wd:Q38 . # 匹配意大利国别作品 # 关联跨语言维基百科页面 ?sitelink schema:about ?item . ?sitelink schema:inLanguage ?lang . } GROUP BY ?item ?label ORDER BY DESC(?number)
本次修改的核心逻辑如下:
- 调整了输出字段,直接返回意大利语书名
?label和对应语言版本计数?number,和你要求的输出格式匹配,执行查询后导出CSV即可得到书籍名,版本数格式的结果 - 新增了站点关联逻辑:通过
schema:about关联Wikidata书籍条目和对应的所有维基百科页面,用schema:inLanguage获取页面对应的语言 - 用
GROUP BY按条目和书名分组,通过COUNT(DISTINCT ?lang)统计去重后的语言版本总数,避免同一语言多个页面重复计数 - 可选添加
ORDER BY DESC(?number)可以按语言版本数量从多到少排序,方便查看热门作品
内容的提问来源于stack exchange,提问作者Semantic_researcher
相关产品推荐
相关产品推荐

