如何使用SPARQL查询wikidata以找到符合特定条件且地理位置靠近另一个城市的地方
我编写了以下SPARQL查询来查找意大利标签为“San Leucio”的wikidata项如何使用SPARQL查询wikidata以找到符合特定条件且地理位置靠近另一个城市的地方,sparql,wikidata,Sparql,Wikidata,我编写了以下SPARQL查询来查找意大利标签为“San Leucio”的wikidata项 SELECT DISTINCT * WHERE { ?location ?label 'San Leucio'@en . ?location wdt:P17 wd:Q38 . ?location rdfs:label ?locationName .
SELECT DISTINCT * WHERE {
?location ?label 'San Leucio'@en .
?location wdt:P17 wd:Q38 .
?location rdfs:label ?locationName .
OPTIONAL {
?article schema:about ?location .
?article schema:isPartOf <https://en.wikivoyage.org/> .
}
?location wdt:P18 ?image .
FILTER(lang(?locationName) = "en")
}
我想要的结果是wd:Q846499,它位于意大利那不勒斯之外。是否有任何方法可以进一步过滤此查询以返回最接近那不勒斯的结果?我知道我可以通过?位置wdt:P625?坐标获得每个项目的地理坐标,但我不确定如何将其与那不勒斯的地理坐标进行比较,以获得我想要的信息。选择DISTINCT*{
SELECT DISTINCT * {
VALUES ?naples {wd:Q2634}
?Napfes wdt:P625 ?naples_coordinates.
?location rdfs:label 'San Leucio'@en .
?location wdt:P17 wd:Q38 .
?location wdt:P18 ?image .
?location wdt:P625 ?location_coordinates.
OPTIONAL {
?article schema:about ?location .
?article schema:isPartOf <https://en.wikivoyage.org/> .
}
BIND (geof:distance(?location_coordinates, ?naples_coordinates) AS ?distance)
} ORDER BY ?distance LIMIT 1
价值观?那不勒斯{wd:Q2634}
那不勒斯wdt:P625?那不勒斯坐标。
?位置rdfs:标签“San Leucio”@en。
?位置wdt:P17 wd:Q38。
?位置wdt:P18?图像。
?位置wdt:P625?位置坐标。
可选的{
?文章架构:关于?位置。
?文章模式:isPartOf。
}
绑定(geof:距离(?位置坐标,?那不勒斯坐标)作为距离)
}订购人?距离限制1
,非常感谢!这正是我想要的。
SELECT DISTINCT * {
VALUES ?naples {wd:Q2634}
?Napfes wdt:P625 ?naples_coordinates.
?location rdfs:label 'San Leucio'@en .
?location wdt:P17 wd:Q38 .
?location wdt:P18 ?image .
?location wdt:P625 ?location_coordinates.
OPTIONAL {
?article schema:about ?location .
?article schema:isPartOf <https://en.wikivoyage.org/> .
}
BIND (geof:distance(?location_coordinates, ?naples_coordinates) AS ?distance)
} ORDER BY ?distance LIMIT 1