Позднее Ctrl + ↑

Под гнётом меритократии

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

Начинают они с того, что поверье (у 70% населения, по опросам), будто усилия приводят к процветанию, — полное заблуждение и не подтверждается практикой. При этом, заблуждаются обе стороны: бедные считают, что если бы они чуть меньше ленились и взяли, например, побольше задач, то сразу же разбогатели бы. А богатые — что они всего добились собственными умом и упорством. Разумеется, это не так, иначе бы петербуржские академики не продавали свои книжки в переходах, а миллионы на благотворительность жертвовал бы не Билл Гейтс, а программисты поспособнее.

К богатству ведёт не труд, а сочетание начальных условий (родиться в богатой семье лучше, чем в бедной; в Америке — лучше, чем в Польше), предрасположенности к предпринимательству, воспитания и, конечно, удачи. Сто программистов могут придумать алгоритм, но только один продаст его условному фейсбуку — и не потому, что он самый умный. Множество талантливых и упорных людей собирают вам айфоны на китайских фабриках.

Хуже того, продолжает Клифтон Марк, научные исследования показывают, что вера в меритократию откровенно вредит. Люди, убеждённые в ней, ведут себя более эгоистично, менее самокритично и допускают дискриминацию по любым признакам. Например, есть известная игра «ультиматум», когда есть условные 100$ и одному человеку нужно предложить второму такую долю, чтобы он или она согласились. Обычно первый предлагает 40-50$. Но если перед этим с ним или с ней сыграть в другую игру, убеждающую в уме или усидчивости, то вне зависимости от результата, в «ультиматуме» этот игрок предлагает другому меньшую сумму. Второй игрок, если не проходил аналогичную «подготовку», был готов на неё согласиться.

Многие успешные люди не считают свои деньги и статус следствием удачи. Интересно, что если про неё напомнить, у них повышается вероятность пожертвований и в целом щедрых жестов, хотя обычно они таким людям не свойственны. Когда в компаниях провозглашают следование принципам меритократии, возрастает зарплатное неравенство между людьми разных полов или рас. Игнорируют меритократию — разница исчезает. То есть, принцип, который как будто должен устранить неравенство и воздать каждому по заслугам, приводит ровно к противоположному результату.

Сообщество OpenStreetMap взращивалось на принципах меритократии, do-ocracy: они работали, когда этим сообществом была группа друзей (технари мужского пола из Западной Европы). Когда мы все присоединялись лет десять назад, мы верили: трудись — и сможешь влиять на проект. Теперь ежу понятно, что проектом рулят только те, кто успел войти в него до 2008 года и разделить ценности создателей. Только решив эту проблему, сменив политический строй, OpenStreetMap сможет повернуться лицом к пользователям и перейти на следующий уровень качества.

От Upload Filters к Sanity Filter

Какое главное требование к любому сервису для коммерческого использования? Не скорость, не дешевизна, не качество результата. Надёжность. Если сервис надёжен, то есть, гарантирует, что запрос не обвалится и не выдаст неожиданный результат когда-нибудь в будущем или один раз из тысячи, то компании готовы платить за него миллионы долларов.

Пока американские картографы в Slack обсуждают, почему для Waze карту обновляют так много добровольцев (как и в России для Яндекса), немецкий картографический интернет тупо отключается, сервис за сервисом. На openstreetmap.de карта зияет чёрными тайлами. Overpass API отключен до 23:00 по Москве. Выгрузки Geofabrik тоже отключены. Вместо всей немецкой википедии — чёрная страница с горой длинных слов. Если вы использовали хоть один из этих сервисов, вы теперь знаете, что такое надёжность открытого проекта.

Да, тринадцатая статья, за которую во вторник будет голосовать Европарламент, сломает нам весь интернет. Контент-проектам типа OSM и Википедии придётся вводить сложные системы цензурирования контента, чтобы не платить штрафы за нарушение авторского права. Потому что отвечать за это будут не пользователи их данных, как сейчас, а сами проекты. Этот законопроект подобен таким же идиотским проектам русского правительства. Если бы я жил в Европе, я бы вышел 23 марта на улицу вместе со всеми. Но сейчас ни я, ни люди из США, Африки, Азии, России не могут пользоваться сервисами, и почему меня должны касаться проблемы белых людей?

Реакция на 13 статью подобна русским контрсанкциям: назло бабушке отморожу сервер. Парламентарии не заметят, а тысячи пользователей со всего мира поймут, что этим немцам (которые до сих пор рулят во всех направляющих дискуссиях в OpenStreetMap) доверять нельзя, какие-то они нервные и не думают о других. Лучше пойти на сервисы, которые обеспечивают надёжность, пусть и не такие дешёвые.

Проблема только в том, что адекватных платных сервисов на базе OpenStreetMap нет. Mapbox приближается к этой планке, но от вида их картостиля хочется биться головой о карту на столе, а качество геокодера заставляет лить слёзы. И мы не говорим о свежести данных ещё: известно же, что слепок OSM — это не OSM. И это всё: остальные не тянут объёма запросов и кастомизацию. Хороши только пользовательские продукты, отвязанные от корневых серверов: тот же Maps.Me или Cycle.Travel.

Вот и получается: почему обычные пользователи правят не OSM, а проприетарные карты? Потому что они с ними работают. Почему они работают не с открытой альтернативой? Потому что если бы компании, производящие продукт, её выбрали, то потом бы ежедневно обливались слезами. Открытым данным доверять нельзя — и не потому, что они открытые (это, как раз, хорошо), а потому что вокруг них вырастают ненадёжные, часто откровенно вредящие сервисы. Проще пожертвовать источником, чем пытаться их исправить.

Нет, подождите

Фотография © primechaniya.ru

Вчера вечером Совет OSMF отменил решение DWG по Крыму, восстановив в правах резолюцию 2014 года. Полуостров снова принадлежит двум странам.

Как замечают в чатике, это серьёзное попрание основного принципа OpenStreetMap: верифицируемости, truth on the ground. Не только в Крым нельзя въехать из Украины без визы, но и ничего украинского вы там не найдёте: ни почты, ни банков. Единственное, что объединяет страну и полуостров, — это слова. На нашей карте мы стараемся рисовать то, что местный житель может проверить и подтвердить. Какой житель Крыма может подтвердить, что полуостров управляется Украиной?

Более того, посколько OSM — это truth on the ground, украинские картографы своей победой показывают, что Крым в реальности украинский — а значит, никаких проблем с полуостровом у них нет, контроль восстановлен, можно расходиться. (сарказм)

Но есть и другая сторона. Административные границы — один из немногих элементов OpenStreetMap, которые не верифицируемы. Нет линии на земле, которую можно трассировать с GPS и внести в базу. У каждого государства, региона, города, владельца участка свои представления о правильной границе. Открытых точных данных по государственным границам, совместимых с «условиями участия», нет почти ни в одной стране. Поэтому в общем случае, закартировать административную границу правильно нельзя.

OpenStreetMap — не монархический проект, карта у нас принадлежит участникам, которые сами решают, как и что рисовать. Теги выбирают картографы, рисовать или не рисовать поребрики полигонами — тоже решение не рабочих групп, а картографов. Мы оказались в ситуации, когда одной небольшой группе участников оказалось очень важно, что одно из отношений состоит из строго определённых элементов, а всем остальным, в общем-то, без разницы. Неудобно, но за четыре года научились обходить.

Рабочая группа по данным, поменяв статус-кво, дала второй группе повод изменить это отношение, в то время как первая группа за это время осталась при своём мнении. Не важно, что это решение соответствует принципам OpenStreetMap и решению от 2013 года, которое за пять лет никто не опротестовал. Между корректностью и чувствами участников в нашем проекте всегда побеждают последние. Поэтому некоторые участники начали сомневаться в легитимности DWG: странно, что решением противоречий занимается группа, участники которой не до конца понимают свой проект.

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

Порядок с Крымом

Главное условие для добавления чего-то в OpenStreetMap — наличие этого на местности. Если другой человек может прийти и отметить то же самое, то всё правильно. Для административных границ этот принцип применить сложнее: часто линии проводят по карте, а не по полям и лесам. Однако для спорных территорий «truth on the ground» неожиданно подошёл в качестве инструмента разрешения противоречий: пункт 3 информационного листка, утверждённого DWG в 2013 году, гласит: кто территорию контролирует — того и тапки.

Это правило весело применять в отношении эмоциональных запросов от азербайджанских, китайских, индийских, турецких и других отдалённых пользователей. Вот бумажка, такова жизнь, до свидания. Сложнее — когда спорная территория стала твоей неизлечимой болячкой на протяжении многих лет. Кажется, в этом случае можно сделать исключение из правила: нормально же общались, зачем что-то менять?

14 ноября рабочая группа по данным обновила свою резолюцию по Крыму. Ничего не изменилось, кроме пункта 1: полуостров теперь должен входить только в административную границу России, но не Украины, покуда РФ сохраняет контроль над территорией.

Несмотря на постоянные напоминания, что эта резолюция не отражает политической повестки и лишь повторяет принятое в 2013 году соглашение, которое никто ни разу не оспаривал, сообщество отреагировало относительно шумно. Томас Страупис обвинил OSMF в ангажированности с Россией и апеллирует к репутации проекта в Европе. Елена в ответ заметила, что если мы отображаем Крым украинским, то это означает, что Украина получила над ним полный контроль и ситуация урегулирована — что едва ли хотят демонстрировать европейцы. Фредерик из DWG терпеливо напоминает про пограничный контроль, «на местности ≠ по закону», про историю вопроса и официальные запросы, которые OSM технически не может удовлетворить.

Русский форум не обсуждает новость — лишь замечает странные комментарии к пакетам правок, в которых участники следуют резолюции DWG, убирая Крым из Украины. Картографы из пострадавшей страны выступают эффектнее: они обвинили DWG в коллаборации с Россией и провоцировании войны, потребовали у десяти организаций и всего цивилизованного мира надавить на OSMF для отмены резолюции, Алексей на форуме поставил под сомнение легитимность DWG, а Kilkenni в блоге привёл ряд убедительных аргументов в пользу отображения Крыма как части Украины. Но только не в контексте OpenStreetMap, потому что у нас не политическая карта, как замечает Кристоф в комментариях.

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

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

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

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

Шесть лет назад слои были у всех на устах. «Какие слои в вашем проекте закончены?» — спрашивали на конференциях. «Рано или поздно придётся внести понятие слоёв», — комментировали в штосме. И вот мы в 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, алгоримов модерации, интерфейса «народных карт»... Да, подвох тут очевиден. Продолжение следует.

Ранее Ctrl + ↓

Мнения, высказанные на этом сайте, отражают точку зрения лично автора сайта и ничью больше: ни его бывших или настоящих работодателей, ни семьи и знакомых.