1

我正在使用带有以下查询的Wikidata SPARQL 查询服务:

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 的结果?

4

1 回答 1

2

结果中缺少 wd:Q367204,因为“没有图像”,因为没有“实例”声明 (P31)。因此,您可以通过将这两个实例包装在一个 OPTIONAL 块中来获得这两个实例的结果,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". }
}
于 2021-11-10T21:43:51.763 回答