从 DBpedia 获取以色列所有定居点坐标
Get all settlements coordinates in Israel from 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")) }
但我只得到了几个结果。
例如我没有得到:
有什么改进查询的想法吗?
谢谢。
您得不到您想要的结果,因为他们没有您要求的地理信息。您可以通过 OPTIONAL 子句来完成。
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")) }
另一方面,您可以直接放入以色列的资源而不是 FILTER:
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>. }
对于我的应用程序,我想获取以色列大部分定居点(特拉维夫、海夫等)的名称和地理坐标。
我的想法是从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")) }
但我只得到了几个结果。
例如我没有得到:
有什么改进查询的想法吗?
谢谢。
您得不到您想要的结果,因为他们没有您要求的地理信息。您可以通过 OPTIONAL 子句来完成。
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")) }
另一方面,您可以直接放入以色列的资源而不是 FILTER:
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>. }