2016-11-29 5 views
0

私のアプリケーションでは、イスラエル(Tel Aviv、Haifeなど)のほとんどの和解の名前と地理座標を取得したいと考えています。イスラエルのすべての和解座標をDBpediaから取得

私の考えは、DBpediaから取得することです(英語ページを照会するだけで十分です)。

私はこのクエリを試みた:

SELECT distinct ?subject AS ?mainSubject ?o1 AS ?name ?o2 AS ?point ?o3 AS ?country 
WHERE {?subject ?property <http://dbpedia.org/ontology/PopulatedPlace>. 
?subject <http://xmlns.com/foaf/0.1/name> ?o1. 
?subject <http://www.georss.org/georss/point> ?o2. 
?subject <http://dbpedia.org/ontology/country> ?o3. 
filter (contains(str(?o3),"Israel")) } 

を私はほんの数結果を得ます。

たとえば、私は得ることはありません:より良いクエリの

任意のアイデア?

ありがとうございました。

答えて

2

要求したgeorss情報がないため、必要な結果を得ることができません。あなたはOPTIONAL節でそれを行うことができます。

あなたが直接イスラエルのリソースを置くことができる一方で、代わりにFILTERの
SELECT distinct ?subject AS ?mainSubject ?o1 AS ?name ?o2 AS ?point ?o3 AS ?country WHERE { 
    ?subject ?property <http://dbpedia.org/ontology/PopulatedPlace>. 
    ?subject <http://xmlns.com/foaf/0.1/name> ?o1. 
    OPTIONAL{?subject <http://www.georss.org/georss/point> ?o2.} 
    ?subject <http://dbpedia.org/ontology/country> ?o3. 
    filter (contains(str(?o3),"Israel")) } 

SELECT distinct ?subject AS ?mainSubject ?o1 AS ?name ?o2 AS ?point WHERE { 
    ?subject ?property <http://dbpedia.org/ontology/PopulatedPlace>. 
    ?subject <http://xmlns.com/foaf/0.1/name ?o1. 
    OPTIONAL{?subject <http://www.georss.org/georss/point> ?o2.} 
    ?subject <http://dbpedia.org/ontology/country> <http://dbpedia.org/resource/Israel>. } 
関連する問題