2017-06-06 11 views
0

すべての都市はからDBpediaデータベースから取得します。SPARQLを使用してDBpediaからすべての都市を取得

私は多くのstackoverflowソリューションを試しましたが、これまで私は必要な出力を得ていませんでした。

SPARQLを使用してすべての都市をフェッチする方法。 DBpediaの中のデータは、(ここでの唯一のinfoboxes)ウィキペディアからのマッピングに基づいているため

+1

これまでに何を試しましたか? – AKSW

+0

私は都市と国を取得しようとしましたが、このクエリを使用して=> 選択DISTINCT都市?国 どこですか?都市名:タイプdbo:市; rdfs:label?label; dbo:国?国 } –

答えて

1

は(確かに)不完全されることがあります。

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbr: <http://dbpedia.org/resource/> 
SELECT ?s WHERE { 
?s a dbo:City ; 
    dbo:country dbr:India 
} 

それとも、ウィキペディアのカテゴリを使用しようとすることができます:

PREFIX dbc: <http://dbpedia.org/resource/Category:> 
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> 
PREFIX dct: <http://purl.org/dc/terms/> 
SELECT DISTINCT ?s WHERE { 
?s dct:subject/skos:broader* dbc:Cities_and_towns_in_India 
} 
+0

ありがとうございます。どうして "北京"市が中国国に出て行っていないのか教えてください。 [dbr:China] My Query => SELECT?placeName WHERE { ?placeName a dbo:City; dbo:国dbr:中国 } –

+0

あなたはいつでも、対応するページ:http://dbpedia.org/resource/Beijingを見ることができます。それはクラス「dbo:City」に属しません - なぜ、私は言うことができません。これは、ウィキペディア – AKSW

+0

ああにインフォボックスマッピングに依存します!だから、私はそのようなタイプの都市を示すために何をすることができますか? –

0

私はCities of Countryを取得するソリューションを得ました。あなたの助けのためのインド

SELECT DISTINCT ?placeName WHERE { 
?placeName a yago:City108524735 ; dbo:country dbr:India 
} 

あなたのクエリのおかげで@AKSWを:私たちはインドの都市を取得したい場合たとえば、その後 DBRを使用しています。