2016-07-22 6 views
2

Wikidataに質問して、ラベルに単語が含まれているすべてのアイテムを取得するにはどうすればよいですか? 私はこれを試しましたが、うまくいきませんでした。それは何も検索しなかった。ラベルを使ってWikidataアイテムに問い合わせる方法は?

SELECT ?item ?itemLabel WHERE { 
    SERVICE wikibase:label { 
    bd:serviceParam wikibase:language "en". 
    ?item rdfs:label ?itemLabel. 
    } 
FILTER(CONTAINS(LCASE(?itemLabel), "keyword")) 
} 
LIMIT 1000 
+0

「ウィキベース:ラベル」とは何ですか?接頭辞がなければ、何がうまくいかないと言うのは難しいです。 – AKSW

+0

PREFIX wikibase:

+0

そして、このデータセットの 'wikibase:language'情報はどこにありますか?そうでなければ、結合は明らかに単一のSPARQLクエリとして実行されるSERVICE部分では空です。私はあなたがSERVICE句の外に最初のトリプルを置くとうまくいくと思います。 – AKSW

答えて

3

は、あなたの質問および提供有益なコメントに続いて、私は、それらの結果

item   itemLabel 
wd:Q515  city 
wd:Q7930989 city 
wd:Q15253706 city 
wd:Q532039 The Eternal City 
wd:Q1969820 The Eternal City 
wd:Q3986838 The Eternal City 
wd:Q7732543 The Eternal City 
wd:Q7737016 The Golden City 
wd:Q5119  capital city 
wd:Q1555  Guatemala City 

try it here

0

はい私が得ているため、このクエリ

SELECT ?item ?itemLabel 
WHERE { 
    ?item rdfs:label ?itemLabel. 
    FILTER(CONTAINS(LCASE(?itemLabel), "city"@en)). 
} limit 10 

であなたを終わりましたラベルで検索できます。例:

SELECT distinct ?item ?itemLabel ?itemDescription WHERE{ 
    ?item ?label "Something"@en. 
    ?article schema:about ?item . 
    ?article schema:inLanguage "en" . 
    ?article schema:isPartOf <https://en.wikipedia.org/>. 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }  
} 

Query pageでご覧ください。

関連する問題