-
Notifications
You must be signed in to change notification settings - Fork 1
Geo Dbpedia KP
Kirill Ivashov edited this page Mar 23, 2016
·
6 revisions
Обработка запросов на списки точек от клиентского приложения с использованием сервиса DBPedia.
Запрос содержит координаты, радиус и шаблон-строку. Поскольку DBPedia позволяет выполнять запрос только с использованием простых операций сравнения географических координат, для запросы выполняется следующее:
- Определяются координаты (lat1, lon1, lat2, lon2), ограничивающие круг заданного радиуса на сфере (статья)
- Выполняется запрос к dbpedia с использованием следующего шаблона SPARQL-запроса:
SELECT ?poi, ?label, ?lat, ?long
WHERE { ?poi a geo:SpatialThing ; foaf:name ?label ; geo:lat ?lat ; geo:long ?long .
FILTER (?long > %lon1% && ?long < %lon2% && ?lat > %lat1% && ?lat% < %lat2%) .
FILTER (regex(?label, "%pattern%"))
}
- Из результата запроса к DBPedia отбираются точки входящие в заданный радиус с использованием формулы гаверсинусов.
- Результат публикуется в smartspace.
./geo_db_kp
Для работы требуется наличие в текущем каталоге файла config.ini Фрагмент файла для DBPedia KP
[Sparql]
Endpoint=http://live.dbpedia.org/sparql