我想获取包含经度和纬度的国家/地区。目前,我有以下这些工作的查询,DBpedia,获取具有经纬度的网站的国家/地区
SELECT DISTINCT ?lat,?long,?place WHERE {
:Taj_Mahal dbpprop:latitude ?lat .
:Taj_Mahal dbpprop:longitude ?long .
}
现在,我怎样才能得到它包含这个纬度和经度使用DBpedia的国家?
我想获取包含经度和纬度的国家/地区。目前,我有以下这些工作的查询,DBpedia,获取具有经纬度的网站的国家/地区
SELECT DISTINCT ?lat,?long,?place WHERE {
:Taj_Mahal dbpprop:latitude ?lat .
:Taj_Mahal dbpprop:longitude ?long .
}
现在,我怎样才能得到它包含这个纬度和经度使用DBpedia的国家?
如果你已经拥有的资源(Taj_Mahal),那么你可以使用此查询:
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} .
}
如果你只有lat
和log
,您可以使用此查询:
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
属性设置此查询工作。这并非所有地方的情况。
我很困惑,对于很多地方来说,经度和纬度属性来自不同的命名空间,例如,对于这个资源http://dbpedia.org/page/Kaaba,它没有dbpprop:latitude但是geo:lat,我们如何处理这个问题。该解决方案是否执行该属性的联合,以便选择可用的联合? – Noor 2013-03-29 12:33:48
该资源具有'dbpprop:latitude'和'dbpprop:longitude'属性(尽管值不如'geo:lat'和'geo:lon'中的值)。你可以尝试'{?target geo:lat
我只是好奇一件事,为什么它是从不同的命名空间使用相同的属性? – Noor 2013-03-30 08:33:38
您不应在'SELECT'子句中的变量之间使用逗号,如http://stackoverflow.com/questions/15680198/error-in-sparql-query中所述。 – 2013-03-29 12:21:13