无法获取标签查询维基数据SPARQL端点

问题描述 投票:0回答:1

我正在尝试通过 Python 脚本查询 Wikidata SPARQL 端点。我已成功获取实体的 QID,但无法获取标签。

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?item ?itemLabel WHERE {
      {
        ?item p:P31 ?statement0.
        ?statement0 (ps:P31/(wdt:P279*)) wd:Q103890060.
        FILTER(NOT EXISTS { ?statement0 prov:wasDerivedFrom ?reference. })
        SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]".
      }
    }
  }

在查询服务应用程序中,这是我得到的结果:

但是,当我使用脚本查询时,我没有得到标签,我只得到 uri 和 qid:

{
   "item":{
      "type":"uri",
      "value":"http://www.wikidata.org/entity/Q5449566"
   },
   "itemLabel":{
      "type":"literal",
      "value":"Q5449566"
   }
}

我需要 URI 和标签,而不是 QID。

我不确定我的查询出了什么问题。我使用维基数据查询服务提供的 python 代码来查看是否缺少参数或其他内容,但这也提供了上述结果。

python sparql wikidata
1个回答
0
投票

根据评论和Wikidata文档

维基数据查询服务网站自动将[AUTO_LANGUAGE]替换为当前用户界面的语言代码。例如,如果用户的 UI 为法语,则 SPARQL 的代码 bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" 将在发送到查询服务之前转换为 bd:serviceParam wikibase:language "fr,en"。

当您从脚本构建请求时,不要使用

[AUTO_LANGUAGE]
,而使用“en”或“fr”等标签。

© www.soinside.com 2019 - 2024. All rights reserved.