如何在Wikidata SPARQL查询中返回属性缺失时的null结果?
SPARQL查询调整方案
你原查询中wdt:P18 ?project属于强制匹配条件,只有条目存在关联图片属性时才会返回对应条目,要实现无论是否有图片都返回所有指定条目、缺失字段显示为null,仅需将图片属性的匹配逻辑放入OPTIONAL块中即可。
调整后的查询代码如下:
SELECT ?item ?itemLabel ?class ?classLabel ?projectLabel WHERE { VALUES ?item { wd:Q1 wd:Q367204 } ?item wdt:P31 ?class. OPTIONAL { ?item wdt:P18 ?project. } SERVICE wikibase:label { bd:serviceParam wikibase:language "en,en". } }
修改说明:
- 原本和
wdt:P31并列的图片属性匹配语句被移动到OPTIONAL包裹的代码块内,标识该条件为非必须匹配项,无对应图片时?project和派生的?projectLabel字段会自动返回null - 如果你需要优先返回中文标签,可以将SERVICE中的语言参数修改为
"zh,en"
内容的提问来源于stack exchange,提问作者Bob van Luijt
相关产品推荐
相关产品推荐

