如何使用 SPARQL 搜索维基数据 ID 列表和 return P31 ("instance of") 属性?

How to search a list of Wikidata IDs and return the P31 ("instance of") property using SPARQL?

如何在单个查询中获取多个维基数据 ID 的实例类型(即 属性=P31 和相关标签)?理想情况下,我想输出一个包含以下列的列表:Wikidata ID | P31 编号 | P31 标签,如果维基数据 ID 附加了多个 P31,则使用多行。

我正在使用 Web 查询服务,该服务在某种程度上运行良好,但我很难理解其语法。到目前为止,我已经设法弄清楚如何处理一个项目列表,并且 return 每个项目都作为一行(我知道很简单!),但我无法弄清楚如何生成一个新列来提供P31 项目:

SELECT ?item 
WHERE {
  VALUES ?item { wd:Q1347065 wd:Q731635 wd:Q105492052 }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

我从之前回答的问题 中找到了以下内容,其中 return 每个感兴趣的项目有多行,但这需要在一开始就指定 P31 类型,这就是我正在寻找生成。

任何帮助将不胜感激,因为我真的无法理解语法。

更新: 我现在已经弄清楚如何 return P31s 用于单个 ID。我需要扩展此查询以接收 ID 列表,并将 ID 作为列包括在内:

SELECT ?item ?itemLabel
 WHERE
 {
   wd:Q18656 wdt:P31 ?item.
   SERVICE wikibase:label { bd:serviceParam wikibase:language  "[AUTO_LANGUAGE]". }
 } 

如果我正确理解了您的问题,您可以使用以下查询:

SELECT ?item ?class ?classLabel
WHERE {
  VALUES ?item { wd:Q1347065 wd:Q731635 wd:Q105492052 }
  ?item wdt:P31 ?class .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

在这里,首先你确定了 ?item 的可能值,然后你说 ?item 是某个 ?class 的实例并且有争议地你还检索了这样的标签 ?class.