10

我想知道,有没有办法使用他们的 API 通过指定的属性找到一个 Wikidata 实体。例如,有很多实体具有 Freebase ID 属性(属性:P646)。它是唯一标识符,我想通过这个标识符获取一个实体。

任何人都知道如何实现这一目标?

4

3 回答 3

13

[更新答案:使用 SPARQL 端点]

wdq 正在被官方SPARQL端点取代,该查询如下所示:

PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT ?item ?itemLabel WHERE {
  ?item wdt:P646 "/m/0gnfq" .
}

你可以在 query.wikidata.org 上试试

要以 JSON 格式获取此查询的结果,您可以在“ https://query.wikidata.org/sparql?format=json&query=YOURQUERY ”发出请求,其中 YOURQUERY 是 URI 编码的 SPARQL 查询:

https://query.wikidata.org/sparql?format=json&query=PREFIX%20wikibase%3A%20%3Chttp%3A%2F%2Fwikiba.se%2Fontology%23%3E%20PREFIX%20wdt%3A%20%3Chttp% 3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2F%3E%20SELECT%20%3Fitem%20%3FitemLabel%20WHERE%20%7B%20%3Fiitem%20wdt%3AP646%20%22%2Fm%2F0gnfq% 22%20.%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22%20.%20%7D%20%7D

[旧答案:使用 WDQ]

您可以像这样获取 wmflabs API(文档):

http://wdq.wmflabs.org/api?q=string[646:/m/0gnfq]

646在这里,我用value的 Property 查询 wikidata 实体/m/0gnfq

答案将如下所示:

{
  "status": {
    "error": "OK",
    "items": 1,
    "querytime": "161ms",
    "parsed_query": "STRING[646:'/m/0gnfq']"
  },
  "items": [
    180736
  ]
}

我正在寻找的实体是因此Q180736

在这里,查询使用string参数,因为 freebase ID 是 wikidata 中的字符串,但对于暗示 wikidata 实体作为值类型的属性,您将需要使用claim参数。文档中的一个示例:

claim[138:676555] 返回以 (P138) Francis of Assisi (Q676555) 命名的所有项目。

于 2014-11-30T11:57:47.617 回答
1

现在在https://query.wikidata.org有一个 SPARQL 端点

您可以在此处输入您的 SPARQL 查询以获取 Wikidata。例如,对于 Freebase 属性,它可能如下所示:

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
PREFIX q: <http://www.wikidata.org/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?subject ?subjectLabel WHERE {
  ?subject wdt:P646 ?object .

  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
  }
} LIMIT 10
于 2015-09-28T14:36:32.033 回答
1

我也更喜欢Wikidata Query API,但如果您需要有关项目的更多信息,您可以使用Wikidata API。例如,在您的情况下,链接到Freebase 标识符 (P646)属性的所有项目都是:

https://www.wikidata.org/w/api.php?action=query&format=xml&generator=backlinks&gblnamespace=0&gbllimit=5000&prop=info&gbltitle=Property:P646
于 2016-01-24T15:18:55.697 回答