APIを使用して、指定されたプロパティでWikidataエンティティを見つける方法はありますか? たとえば、Freebase ID プロパティ (Property:P646) を持つエンティティはたくさんあります。これは一意の識別子であり、この識別子でエンティティを取得したいと考えています。
これを達成する方法を知っている人はいますか?
APIを使用して、指定されたプロパティでWikidataエンティティを見つける方法はありますか? たとえば、Freebase ID プロパティ (Property:P646) を持つエンティティはたくさんあります。これは一意の識別子であり、この識別子でエンティティを取得したいと考えています。
これを達成する方法を知っている人はいますか?
[更新された回答: SPARQL エンドポイントの使用]
wdq は公式のSPARQLエンドポイントに置き換えられており、このクエリは次のようになります。
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT ?item ?itemLabel WHERE {
?item wdt:P646 "/m/0gnfq" .
}
このクエリの結果を JSON で取得するには、" https://query.wikidata.org/sparql?format=json&query=YOURQUERY " でリクエストを行うことができます。YOURQUERY は URI エンコードされた SPARQL クエリです。
[古い回答: 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
です。
ここでは、string
freebase ID がウィキデータの文字列であるため、クエリはパラメーターを使用しますが、値の型としてウィキデータ エンティティを意味するプロパティについては、claim
パラメーターを使用する必要があります。ドキュメントの例:
claim[138:676555] は、(P138) Francis of Assisi (Q676555) にちなんで名付けられたすべてのアイテムを返します。
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