В чем суть?
Семантический веб развивается всё больше и нынче на большом количестве сайтов можно обнаружить либо RDFa разметку, либо данные в формате RDF по отдельным URL’ам. Появляются системы типа wolframalpha, которые могут использовать такие данные. В мейнстримовых поисковиках типа Google пока что набор поддерживаемых типов семантических данных ограничен, но всё идет к тому что они будут пользоваться ими в полном объеме, и не просто искать текст на страницах, а понимать смысл. Гугл купил freebase.com, крупнейшую базу данных структурированных данных, наполняемую пользователями (и импортами с других сайтов).
И дело не только в поисковиках и других роботах, ходящих по страницам. Выгрузки данных в структурированном виде, в стандартном формате могут быть очень полезны для разных целей. Особенностью RDF, основного семантического формата, являются связи с данными на разных источниках. Например, можно будет узнать что Москва на Википедии, в OSM и еще где-нибудь — это одно и то же.
В Википедии сейчас находится гигантское количество данных, но они теряются среди словесного описания и разных видов таблиц, шаблонов и прочей разметки. Поэтому есть планы по структурированию и сторонний сайт, экстрагирующий данные из шаблонов.
В Openstreetmap данные являются структурированными, но структурированными странно. Всё-таки основной целью было сделать карту, которая бы отрисовывалась и которую бы можно было загрузить в навигаторы, где бы она тоже отрисоывалась и использовалась для роутинга. Цели сделать справочник и базу данных наверно не было.
Все описания, как ставить теги чтобы изобразить такой-то объект, сейчас только словесные в wiki. Тот кто разрабатывает софт, использующий данные OSM, вынужден читать эти словесные описания и реализовывать сложную логику, чтобы привести данные, созданные пользователями по этим пропозалам, в нужный ему вид. Например, чтобы просто получить контуры зданий, нужно сделать обработчик мультиполигонов, а если понадобится определить, где целое здание, а где его части, тут придется определять по адресам и т.д.
Другой пример — POI. Чтобы просто узнать адрес магазина из базы OSM, надо определить, внутри какого замкнутого вея с тегом building=* стоит точка и прочитать у него адрес. А еще это может быть не вей, а релейшен-мультиполигон. И тут тоже два варианта, когда теги адреса стоят на внешнем вее, и когда на релейшене — пропозалы это разрешают. Кроме того, магазин может быть отмечен не точкой, а тегами прямо на вее или релейшене здания. Населенный пункт у адреса придется определять тоже по вхождению в границы.
И не существует программ, которые бы переводили данные из OSM в промежуточный формат, где всё уже нормализовано, здания имеют готовую геометрию в свойствах, магазины имеют связь с объектом адреса, улицы имеют связи со всеми дорогами и зданиями, которые в них входят. Разве что есть osm2pgsql, который вычисляет геометрию у мультиполигонов.
И как раз удобно было бы, если бы такая программа выдавала данные в RDF.
Что бы это всё дало?
- Возможность более просто использовать данные OSM в различных проектах.
- Если создать правила для перевода данных OSM в RDF, то они будут служить формальным описанием всех этих релейшенов и тегов.
- Продвинутые валидаторы.
- Представление осмысленных объектов в редакторах.
- Связь с данными на других проектах. Например, можно будет тянуть дополнительные данные об объекте с Википедии. Вовсе необязательно импортировать их в базу OSM, сторонние программы, например, конвертеры для навигаторов, смогут джойнить дейтасеты с OSM и Википедии сами. Более того, если семантический веб получит распространение, можно будет тянуть данные напрямую с официальных сайтов объектов (если они там будут), например часы работы магазинов.
- Поиск с использованием SPARQL, или user-friendly поиски поверх SPARQL (например, искать только магазины)
- Замена Nominatim
См. также объектно-ориентированный осм.
Что найдено на данный момент:
1. LinkedGeoData
База OSM, переведенная в RDF. Есть поднятый сайт с этой базой, доступной для запросов с помощью SPARQL.
Онтология у них, судя по всему, генерируется автоматически и содержит все самые распространенные возможные ключи тегов. Некоторые объекты фильтруются и не включаются в базу — это, как я понял, все дороги и веи с более чем 20 нодами. И еще много что. Вызвано это, видимо, тем что в базе OSM слишком много данных и существующие технологии хранения и обработки семантических данных не справляются с такими объемами.
Структура данных — малообработанные данные OSM, что не очень хорошо. Это не “человеческие” классы, полученные из данных OSM.
Исходники: http://code.google.com/p/linkedgeodata/
Зато есть связи с dbpedia, формирующиеся из тега wikipedia.
2. OSMSemanticNetwork
http://wiki.openstreetmap.org/wiki/OSMSemanticNetwork
Описание пропозалов в RDF, экстрагированное из wiki.openstreetmap.org.
Особо не смотрел, но формальная схема для описания пропозалов из полученных данных не получается. Скорее только некоторые данные из вики и взаимосвязь между тегами.
3. OSMonto
http://wiki.openstreetmap.org/wiki/OSMonto
Еще один перевод базы OSM в RDF. Опять же в человеческие понятия “дорога”, “здание”, “улица” и т.д. они базу OSM не переводят, а дампят теги один-в-один, как есть. Правда вот дальнейшие правила (например, описанные прямо в онтологии) наверно могут это сделать.
Про проект мало известно, из всего что можно посмотреть есть только pdf. Используется на http://planning.do-roam.org/, который лежит.
4. Семантическая вики для OSM
http://wiki.openstreetmap.org/wiki/Machine-readable_Map_Feature_list/OWL_Semantic_Wiki_and_more
Если в вики OSM добавить семантическую разметку, то при правильном использовании получим формальные описания тегов и пропозалов. Записанные прямо “между строк” обычного текста в описаниях этих самых пропозалов. Что-то типа RDFa. См. http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B2%D0%B8%D0%BA%D0%B8