Rdf DBpedia,获取具有纬度和经度的站点所在国家/地区
我想得到包含纬度和经度的国家。目前,我有下面的查询,它可以工作Rdf DBpedia,获取具有纬度和经度的站点所在国家/地区,rdf,latitude-longitude,sparql,dbpedia,Rdf,Latitude Longitude,Sparql,Dbpedia,我想得到包含纬度和经度的国家。目前,我有下面的查询,它可以工作 SELECT DISTINCT ?lat,?long,?place WHERE { :Taj_Mahal dbpprop:latitude ?lat . :Taj_Mahal dbpprop:longitude ?long . } 现在,如何使用dbpedia获取包含此纬度和经度的国家?如果您已经拥有资源(泰姬陵),则可以使用以下查询: SELECT DISTINCT ?lat ?long (str(?place) as ?pla
SELECT DISTINCT ?lat,?long,?place WHERE {
:Taj_Mahal dbpprop:latitude ?lat .
:Taj_Mahal dbpprop:longitude ?long .
}
现在,如何使用dbpedia获取包含此纬度和经度的国家?如果您已经拥有资源(泰姬陵),则可以使用以下查询:
SELECT DISTINCT ?lat ?long (str(?place) as ?place) ?country1 ?country2
WHERE {
:Taj_Mahal dbpprop:latitude ?lat .
:Taj_Mahal dbpprop:longitude ?long .
:Taj_Mahal dbpedia2:location ?place .
OPTIONAL {:Taj_Mahal dbpedia2:country ?country1} .
OPTIONAL {:Taj_Mahal dbpedia2:locmapin ?country2} .
}
SELECT DISTINCT str(?what) as ?what str(?place) as ?place ?country1 ?country2
WHERE {
?target dbpprop:latitude 27 .
?target dbpprop:longitude 78 .
?target dbpedia2:location ?place .
?target rdfs:label ?what .
OPTIONAL {?target dbpedia2:country ?country1} .
OPTIONAL {?target dbpedia2:locmapin ?country2} .
FILTER (lang(?what) = 'en')
}
如果只有lat
和log
,则可以使用此查询:
SELECT DISTINCT ?lat ?long (str(?place) as ?place) ?country1 ?country2
WHERE {
:Taj_Mahal dbpprop:latitude ?lat .
:Taj_Mahal dbpprop:longitude ?long .
:Taj_Mahal dbpedia2:location ?place .
OPTIONAL {:Taj_Mahal dbpedia2:country ?country1} .
OPTIONAL {:Taj_Mahal dbpedia2:locmapin ?country2} .
}
SELECT DISTINCT str(?what) as ?what str(?place) as ?place ?country1 ?country2
WHERE {
?target dbpprop:latitude 27 .
?target dbpprop:longitude 78 .
?target dbpedia2:location ?place .
?target rdfs:label ?what .
OPTIONAL {?target dbpedia2:country ?country1} .
OPTIONAL {?target dbpedia2:locmapin ?country2} .
FILTER (lang(?what) = 'en')
}
但是,请注意,如果资源(在本例中为泰姬陵)设置了
country
、location
或logmapin
属性,则此查询有效。并非所有地方都是如此。您不应该在SELECT
子句中的变量之间使用逗号,如中所述。我有一个困惑,对于许多地方,latitude和longitude属性来自不同的名称空间,例如,对于这个资源,它没有dbpprop:latitude,但是geo:lat,我们如何处理这个问题。解决方案是否执行属性的并集以选择可用的属性?该资源确实具有dbpprop:latitude
和dbpprop:longitude
属性(尽管这些值不如geo:lat
和geo:lon
中的值精确)。您可以尝试{?target geo:lat;geo:lon}UNION{?target dbpprop:latitude;dbpprop:longitude}
。我只是好奇一件事,为什么在不同的命名空间中使用相同的属性???dbpprop:…
会自动为信息框中的每个字段创建,但是geo:lat
和geo:lon
在链接数据世界中几乎无处不在。因此,为了兼容性,为纬度和经度值添加这些属性是有意义的。