通过 QID 获取属性?

Get properties by QID?

我可以通过标签获取项目及其属性:

SELECT distinct ?item ?itemLabel ?itemDescription
  (SAMPLE(?DR) as ?DR) (SAMPLE(?article)as ?article)
WHERE {
  ?item wdt:P31 wd:Q5.
  ?item ?label "Einstein"@en
  OPTIONAL{?item wdt:P569 ?DR .}
  ?article schema:about ?item .
  ?article schema:inLanguage "en" .
  ?article schema:isPartOf <https://en.wikipedia.org/>.
  OPTIONAL{?item wdt:P570 ?RIP .}
  OPTIONAL{?item wdt:P18 ?image .}
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
GROUP BY ?item ?itemLabel ?itemDescription

Wikidata Query Services

如何使用 QID 而不是标签来做同样的事情?

如果您已经有了要查找的实体的 QID,只需查找其属性和标签,最好使用 Wikidata API wbgetentities module

在 A. Einstein (Q937) 案例中,会给出以下 API 调用: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q937&format=json

使用 URI 而不是变量 ?item 将获取基于实体 Albert Einstein 的信息:

PREFIX  schema: <http://schema.org/>
PREFIX  bd:   <http://www.bigdata.com/rdf#>
PREFIX  wdt:  <http://www.wikidata.org/prop/direct/>
PREFIX  wikibase: <http://wikiba.se/ontology#>

SELECT DISTINCT  ?item ?itemLabel ?itemDescription (SAMPLE(?DR) AS ?DRSample) (SAMPLE(?article) AS ?articleSample)
WHERE
  { ?article  schema:about       ?item ;
              schema:inLanguage  "en" ;
              schema:isPartOf    <https://en.wikipedia.org/>
    FILTER ( ?item = <http://www.wikidata.org/entity/Q937> )
    OPTIONAL
      { ?item  wdt:P569  ?DR }
    OPTIONAL
      { ?item  wdt:P570  ?RIP }
    OPTIONAL
      { ?item  wdt:P18  ?image }
    SERVICE wikibase:label
      { bd:serviceParam
                  wikibase:language  "en"
      }
  }
GROUP BY ?item ?itemLabel ?itemDescription

您可以使用已知的 QID BIND:

BIND(wd:Q937 AS ?item).
...