10

APIを使用して、指定されたプロパティでWikidataエンティティを見つける方法はありますか? たとえば、Freebase ID プロパティ (Property: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%3Fitem%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 ( documentation )を取得できます。

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です。

ここでは、stringfreebase ID がウィキデータの文字列であるため、クエリはパラメーターを使用しますが、値の型としてウィキデータ エンティティを意味するプロパティについては、claimパラメーターを使用する必要があります。ドキュメントの例:

claim[138:676555] は、(P138) Francis of Assisi (Q676555) にちなんで名付けられたすべてのアイテムを返します。

于 2014-11-30T11:57:47.617 に答える
1

https://query.wikidata.orgに SPARQL エンドポイントがあります。

そこに、ウィキデータの SPARQL クエリを入力できます。たとえば、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 に答える