如何在 SPARQL 中 return 为空结果?
How to return null results in SPARQL?
我将 Wikidata SPARQL Query Service 与以下查询一起使用:
SELECT ?item ?itemLabel ?class ?classLabel ?projectLabel WHERE {
VALUES ?item { wd:Q1 wd:Q367204 }
?item wdt:P31 ?class;
wdt:P18 ?project.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en,en". } }
当运行查询时有Q1
的结果,因为有图片,但是Q367204
没有结果,因为没有图片。
我的问题:无论是否有可用图像,我如何才能获得 Q1 和 Q367204 的结果?
结果中缺少 wd:Q367204,因为“没有图像”,还有 ,因为没有“实例”语句 (P31)。因此,您可以通过将这两个实例包装在一个可选块中来获得这两个实例的结果,Q367204 仅包含 ?item 和 ?itemLabel,Q1 包含所有变量:
SELECT ?item ?itemLabel ?class ?classLabel ?projectLabel WHERE {
VALUES ?item { wd:Q1 wd:Q367204 }
OPTIONAL {
?item wdt:P31 ?class;
wdt:P18 ?project.
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en,en". }
}
我将 Wikidata SPARQL Query Service 与以下查询一起使用:
SELECT ?item ?itemLabel ?class ?classLabel ?projectLabel WHERE {
VALUES ?item { wd:Q1 wd:Q367204 }
?item wdt:P31 ?class;
wdt:P18 ?project.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en,en". } }
当运行查询时有Q1
的结果,因为有图片,但是Q367204
没有结果,因为没有图片。
我的问题:无论是否有可用图像,我如何才能获得 Q1 和 Q367204 的结果?
wd:Q367204,因为“没有图像”,还有 ,因为没有“实例”语句 (P31)。因此,您可以通过将这两个实例包装在一个可选块中来获得这两个实例的结果,Q367204 仅包含 ?item 和 ?itemLabel,Q1 包含所有变量:
SELECT ?item ?itemLabel ?class ?classLabel ?projectLabel WHERE {
VALUES ?item { wd:Q1 wd:Q367204 }
OPTIONAL {
?item wdt:P31 ?class;
wdt:P18 ?project.
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en,en". }
}