Самые комментируемые за месяц

Скованные одним слоем

В прошлой заметке мы узнали, что осмеры рисуют карту для себя и поэтому препятствуют внесению большого количества данных. Кроме того, свежесть данных почти невозможно проконтролировать, поэтому лучше сдаться заранее. Откуда взялись эти проблемы — модель данных же предполагает бесконечное расширение? Может быть, это не проблемы, а всего лишь задачи для нынешнего поколения картографов и разработчиков?

Клубок данных

Шесть лет назад слои были у всех на устах. «Какие слои в вашем проекте закончены?» — спрашивали на конференциях. «Рано или поздно придётся внести понятие слоёв», — комментировали в штосме. И вот мы в 2018, как успехи в этом направлении?

У нас были сайт Ito Map и панель фильтров в JOSM: ввела highway=* и получила слой дорог и связанных с ними POI. Теперь к ним добавились тематические сайты на основе Overpass API — например, редакторы полос от Almaz. Это круто, конечно, но не решает общую проблему OpenStreetMap.

Проблема с нашими данными в том, что они неделимы. Это хуже, чем топология (когда объекты собираются из частей): связи в данных невероятно прочны и непредсказуемы. Точка лежачего полицейского в составе линии дороги, территория школы и забор вокруг неё в одном объекте, остров-лес... Мрак для человека, всю жизнь работавшего с шейпфайлами. Добавим сюда отношения с сотнями автобусных маршрутов поверх одних и тех же дорог, административные границы по рекам и прочие радости типа type=person — и трогать данные становится страшновато.

Спрятать лишнее фильтрами? Не только потеряем некоторые сильные связи (см. границы по дорогам), но и наткнёмся на распространённые слабые связи: когда кажется, что объекты не связаны, но их взаимное расположение или общие элементы важны. Например, многие проспекты разбиты на сегменты, которые объединяет только тег name (да и то не всегда). Магазины нередко находятся внутри здания с shop=mall (или без этого тега, но с названием вида «ТЦ Скрытный»). Как узнать адрес кафе? Ищете дом, содержащий кафе, затем точку с адресом, лежащую внутри контура дома, ближайшую к кафе.

Зато модель данных простая!

OpenStreetMap с самого начала был не про дороги. Это много карт в одной: города и административное деление, леса и поля, гидрография, дорожный граф и запреты поворота, улицы и адреса, каталог заведений, схемы общественного транспорта, база объёмных моделей зданий. Классические ГИС позволяют включать и выключать тематические слои, чтобы они не мешали работать. Классические ГИС умерли, потому что слои — слишком сложно. Единственный крестик в OSM — на вкладке браузера.

Справочник

Мы хотим, чтобы наша карта работала в качестве справочника заведений, и в этом не уступала коммерческим альтернативам — от странного Here до агрессивного 2ГИС. Разве не за этим вы старательно вводите часы работы магазина во время стоянки в путешествии? Не для этого удаляете с карты закрытое кафе по пути на работу? Как приятно в незнакомом городе найти хорошее кафе или неочевидную детскую площадку в OsmAnd! Сразу чувствуешь, что картографы-любители работают не зря.

«Смотри-ка, люди пользуются OpenStreetMap» — удивляются владельцы крупных организаций и просят своих менеджеров добавить все заведения сети на карту. Иногда срабатывает: когда заведений немного и их можно добавить руками. Иногда они обращаются к тем же компаниям, что добавляют их в коммерческие справочники — и вы знаете, что происходит. Картографы не хотят, чтобы на карте были все объекты. И не только потому что они будут мешать картированию — а они будут, своей неидеальностью, — но и потому что начнётся неявное соревнование человека и «машины». Бездушной капиталистической машины.

Как только какие-то классы объектов на карте станут относительно полными — например, заправки — картографы и пользователи OSM начнут на них полагаться. «У нас есть почти всё» — будут думать они и пропускать неотмеченные небольшие заправки, предполагая, что уже всё есть. Сейчас картографы чувствуют ответственность: кто, если не они. Это приятно, потому что ощущение ответственности похоже на ощущение власти (и ломка от понимания разницы страшная). Когда мы отдаём заметную часть POI, «справочник», на откуп коммерции и роботов, картографы потеряют к ней интерес. Эта потеря может затронуть и остальную карту: мол, запятнали, сами и рисуйте.

Естественная реакция на подобную задачу — выделить слой справочника в отдельный проект. Тоже открытые данные, но с более жёстким классификатором и более дружелюбный к организациям и импортам. Перенести все POI из OpenStreetMap и установить правило: справочник → там. Короче, предложить OpenCorporates двухсторонний обмен информацией.

Разумеется, это не сработает: OpenCorporates — это коммерческая компания, а одно из главных достоинств OSM — что наши данные ни от кого не зависят. Как и другие достоинства, с другого ракурса оно скорее походит на недостаток. Но чинить, что не сломано, — не наша задача. Поэтому наш справочник — это OpenStreetMap. У нас есть база заведений, мы умеем отделять её от других данных. Насколько эта база хороша?

Доверия к заведениям в OSM нет даже у опытных осмеров. От моего дома до ближайшего неотмеченного на карте заведения двести метров. Уверен, это расстояние не превысит полукилометра для значительной части активных редакторов. Когда нужно найти кафе, я открываю foursquare, когда ищу автосервис — карты яндекса. Чем больше POI на карте, тем меньше уверенности в их актуальности. Точки вполне могли нарисовать несколько лет назад. А когда фрагмент карты выглядит относительно полным, осмеры перестают его замечать. Наши инструменты не делают удобным обновление данных. Приятно отметить новый магазин. Удалить закрытый сложно.

Будущее

«Участвовать в проекте легко — достаточно зарегистрироваться и нажать кнопку „Правка“». Нажимаем, видим мешанину как на рисунке ниже. Как здесь найти магазин, который нужно поправить, или как тыкнуть в парк, чтобы его обвести, или как проложить тротуар и не зацепить ничего лишнего? Любой опытный осмер, запомнивший, какой кнопкой расцеплять линии, ответит, что это почти невозможно. И мы даже не упоминаем отношения. Постепенно территории, где опасно орудовать в iD и неудобно в JOSM, расширяются. Когда-нибудь такой плотной станет вся карта — и это не будет поводом для радости.

Могли бы помочь автофильтры, вот только за полтора года мы не увидели работ в этом направлении. Да и нынешние их воплощения не сильно отличаются от обычных фильтров, проблема которых описана выше. Нет, дополнительной функциональностью существующие редакторы не поправишь. Пора признать, что в OpenStreetMap у стандартного подхода «скачать всё и потом редактировать» нет будущего. Ни JOSM, ни iD, ни Vespucci, ни Go Map не посоветуют новичкам через десять лет.

Что же посоветуют? Другие редакторы, эксперименты в которых мы видим в последние годы. Прежде всего, это Maps.Me и StreetComplete. Несмотря на технические недостатки, ими пользуются десятки тысяч пользователей. Их особенность — они тематические. Не пытаясь обрабатывать весь клубок данных, они вытаскивают и пришивают только интересные им ниточки: POI и дополнительные атрибуты. Пользоваться ими легко, и для работы с этими слоями даже опытные осмеры предпочитают достать телефон, а не запускать редактор на компьютере.

Именно это и произойдёт в будущем: редакторы всё-в-одном расслоятся на низкоуровневые, типа Level0, и тематические. На мобильных устройствах последние уже победили, теперь дело за настольными редакторами. Вдохновляющие заметки о первых попытках их сделать только начинают появляться в ленте. Например, Deriviste от Ричарда: простая (и очень сырая) страничка с фотографией из Mapillary, картой и поиском по заготовкам тегов. Дважды кликаешь на магазин на фотографии, корректируешь его расположение, вводишь «фрукты» и идёшь дальше. Обработка фотографий из картографической прогулки раньше была невыносимо сложной, а теперь это игра. Гениально.

Пока что у нас нет ни единого законченного тематического редактора, которым хотелось бы пользоваться вместо обычных. Близки к таким редакторы полос, упомянутые выше. Может, ещё Conflation Audit для подтверждения изменений при импортах POI. Логичным развитием его будет помощь при загрузке любых пакетных точечных данных — так что видя страницу магазина с пятью адресами, захочется открыть этот редактор, а не JOSM или iD, потому что он удобнее и гарантирует обновление данных, когда обновится сайт.

Чудесные тематические редакторы будущего обойдут все проблемы, которые описаны ранее:

  • Они очевидным образом решают вопрос слоёв, работая только со срезом данных. Например, вы указываете автобусные остановки по маршруту, а редактор сам прокладывает маршрут по ближайшим улицам и после проверки правильно разрезает их и собирает отношения route. Связи между слоями станут не случайными, а осмысленными и одобренными пользователем.
  • Они автоматизируют редактирование: заботы об обновлении данных лягут не на супер-картографов, коих сейчас один человек на миллион жителей, а на машину. Она сама скачает данные из того же источника и сама напомнит, когда ваш вклад начнёт выглядеть устаревшим. Хранение жизненного цикла внутри OSM не работает, в отличие от сторонних сервисов, которые знают, что делать со всеми этими датами.
  • Они дают уверенность в качестве данных, потому что валидируют не только геометрическую и техническую корректность, но и источник, и взаимосвязь объектов внутри темы, и возраст данных. Импорты станут умнее, потому что у импортированных объектов будет история. Авторы редакторов будут писать валидаторы не вширь, как в JOSM, а вглубь, находя новые неочевидные способы убедиться в правильности изменений.

В мире, где люди открывают редактор карты, чтобы поправить время работы или чтобы нарисовать новый маршрут автобуса или вырубку, а не тупо покопаться в месиве из данных, OpenStreetMap будут воспринимать тем, чем он является: множеством разных карт в одной. Которые в сумме больше и полезнее, чем по-отдельности.

Дело за малым: придумать и написать. Авторы потенциальных редакторов-хитов должны не только хорошо разбираться в OpenStreetMap и уметь программировать, но и иметь опыт в проектировании хорошего UX. Знать все примеры хорошего пользовательского дизайна в картографии: сайта Moovit, редактора запретов поворотов в iD, алгоримов модерации, интерфейса «народных карт»... Да, подвох тут очевиден. Продолжение следует.

13 октября   id   ВНЕЗАПНО   проекты

Агентам справочника вход воспрещён

Анна из «народной карты» расписала в их блоге, откуда берутся заведения на картах яндекса. В компании ведут два набора данных: «справочник» и «народная карта». Копирование данных налажено пока только из карты, скоро будет и обратное. И этот поток автоматических правок будет куда сильнее: ведь доля пользовательских данных в наполнении справочника очень мала.

Здесь всплывают две темы: постепенное замещение картографов-любителей роботами на «народных картах» под безграничное терпение первых и приоритеты в картографировании заведений. Обе темы подчёркивают радикальное отличие и «народных карт», и просто карт Яндекса от OpenStreetMap во всех своих ипостасях.

Приоритеты

В заметке перечислены восемь источников данных о заведениях, которые склеиваются и доступны из поиска на карте: правки народных картографов, сообщения из разных видов обратной связи, информация от организаций и от оплачиваемых сборщиков данных. Сколько из них есть в OSM? Только два: правки осмеров и заметки на сайте. Хотя, честно говоря, заметками владельцы заведений не пользуются, потому что их почти невозможно найти.

Где всё остальное? Ладно, у нас нет службы поддержки и сотрудников, обзванивающих организации. Но многие компании специально платят, чтобы их филиалы наносили на карты — и мы осознанно сопротивляемся этим «импортам». Что хорошо для всех популярных карт, оказывается плохо для OpenStreetMap. Как же так?

Дело в целевой аудитории. Кто адресат нашей карты, для кого мы рисуем? На сайте и в вики про это ни слова. «OSM предоставляет данные тысячам сайтов» — ничего не значащее утверждение, этот блог тоже предоставляет. А если OSMF и администраторы сайта отказываются ограничить ЦА карты, за них это сделают сами картографы. Самым очевидным способом.

OpenStreetMap — это карта для картографов под открытой лицензией. Два тезиса, которые определяют все решения в проекте. Открытая лицензия регулирует отношения со внешним миром: запрет на нелегальные данные и обклацывание гугля, публикацию планеты под ODbL, экосистему открытого кода. А первый тезис, что целевая аудитория — это картографы, регулирует все вопросы внутри сообщества. Прежде всего, конечно, тегирование, требования к редакторам и выбор допустимых слоёв для импортирования.

Самое неочевидное, что следует из ориентированности на редакторов карты, — это ограничение на размер данных. Когда их становится слишком много (например, после массового импорта «зелёнки»), сообщество бунтует и заводит reverter. OSM состоит из одного слоя, который непросто разделить по типам объектов, поэтому один перегруженный слой затрудняет редактирование остальных. Нарисовали схему помещений — контур здания теперь не улучшить. Импортировали Corine — проще закрыть редактор, чем обозначить вырубку. Обозначили каждый лоток на рынке — никто не будет обновлять информацию, да и проходы трогать побоятся.

Поэтому участники неодобрительно смотрят на импорты заведений. С одной стороны, пользователям карты хорошо: можно найти в любимом Maps.Me или OsmAnd заправку по пути и кафе у гостиницы. С другой, мы рисуем OSM не для пользователей: сотни тысяч, если не миллионы, импортируемых точек нужно проверять, поддерживать, обновлять. Никто этим не будет заниматься, а потому они не должны быть частью карты. Карта — для того, что интересно рисовать и несложно поддерживать.

Роботы

Задачу поддержки заведений из сторонних источников решить несложно: периодически проверять и импортировать заново. От картографов ничего не понадобится, только верить и не мешать. Разумеется, правки импортированных данных сохранятся после обновления — или нет, смотря сколько времени прошло. В перспективе это можно распространить на «зелёнку» и адреса.

Получится, что за существенную часть данных OpenStreetMap — сотни миллионов объектов — будут отвечать роботы, пусть и курируемые людьми. Медленно процесс поддержки данных OSM будет мигрировать к модели википедии, когда в истории правок любой статьи минимум 10% правок идут от роботов, следящих за порядком. Потому что если можно импортировать, то почему нельзя автоматически amenity=sauna заменять на leisure=sauna? Логично же это поручить роботу и спать спокойно, зная, что база консистентна?

В народных картах Яндекса это само собой разумеется. Там автоматизировано всё: импортирование данных в новых странах, сдвиг объектов при обновлении снимков, обновление данных из справочника. Роботам помогают сотрудники на зарплате и участники «Толоки», которых всё больше. Когда нужна актуальная и полная карта, полагаться на добровольных картографов-любителей недостаточно — это очевидно примерно всем. Поэтому народная карта мигрирует влево по шкале свободы картографии, усиливая контроль над содержимым карты.

Активным участникам сообщества НЯК это, конечно, не нравится. Данные от людей на зарплате предсказуемо хуже работы любителей — по всем показателям, кроме тех, что входят в ТЗ. «Теперь я не слежу за порядком. Спасибо яндексу за это», — хлопают дверью модераторы. Да и под заметкой про интеграцию справочника немало недоумённых комментариев. Это всё люди, которые не успели перестроиться три года назад и не поняли, что «народная карта» больше не самостоятельная песочница, где можно в одиночку нарисовать и поддерживать город, а инструмент обратной связи к картам Яндекса. Народные картографы теперь не столько правят карту, сколько корректируют импортированное и нарисованное профессионалами.

Очевидно, что автоматические правки противоречат целям сообщества OpenStreetMap: иметь карту, которую весело редактировать. Картограф с опытом всегда найдёт, какую претензию предъявить оператору любого скрипта. Данные плохо привязаны. Теги неправильные, но замена неравнозначна. Формат телефонного номера не тот. Это дискриминация против малого бизнеса. Хорошо, но проверяй каждый объект вручную. Этим атрибутам не место в OSM. Посмотрите на TIGER, хотите повторения? Любой импорт или автоматическая правка должны пройти через болото уныния, и редкий энтузиаст доползёт до его середины.

Мы говорим «карту может поправить каждый», но мы же и говорим «карта для любителей, а не корпораций». Мы ратуем за карту без дискриминации, но в то же время рисуем таблички про вход воспрещён. Открытый проект, но пожалуйста, не надо. Решить это противоречие может сильная структура, наделённая правом окончательного голоса. Но в нынешней парадигме «Совет + рабочие группы» такая структура невозможна. Тут либо делать альтернативный проект, либо повторить то, что Стив Кост сделал четырнадцать лет назад: выкручиваться малыми силами, находя новые смыслы в существующих структурах. И не сказать, что это невозможно. Продолжение.

9 октября   ВНЕЗАПНО   источники   няк