Импорт Перекрестка

Всем привет!
Я представляю компанию Rocketdata.io, мы занимаемся актуализацией данных наших клиентов (владельцев компаний) в картах и справочниках. Мы запустили Conflator Audit по адресу https://osm.rocketdata.io/. Пока там есть только один из наших клиентов Перекресток. Это большая сеть супермаркетов https://www.perekrestok.ru, которую мы собираемся импортировать в OSM и просим вас, OSM сообщество, проверить и дать разрешение на загрузку данных на карты.

Здравствуйте! Уже довелось столкнуться с Вашим творчеством: например, в этой правке Вы создали рядом с созданной 8 лет назад точкой магазина “Перекрёсток” дубликат, расположенный, конечно, относительно близко к магазину, но не в нём.

  1. Создавать рядом с точкой магазина, которую пользователи уже поместили вручную на реальное местоположение, не следует.
    Также ряд используемых Вами тегов является если не ошибочным, то, по крайней мере, спорным:
  2. opening_hours = Mo-Su 00:00-23:59 . Вы уверены, что на дверях магазина указан такой режим работы? Этот магазин вроде бы 24-часовой, что описывается тегом opening_hours = 24/7
  3. name = Перекресток . Такое название использовано, т. к. магазин, действительно, позиционирует себя как Перекресток, а не Перекрёсток, или у Вас просто буквы “ё” на клавиатуре не оказалось?
  4. operator = Торговый дом “ПЕРЕКРЕСТОК” . После слова “Торговый” использованы 2 пробела, а не 1. Уверены ли Вы, что в качестве значения данного тега корректно указывать именно “ПЕРЕКРЕСТОК”, да ещё и заглавными буквами. Даже если в документах буквы заглавные, не уверен, что с точки зрения русского языка нам корректно писать так же.

Предыдущий импорт, на мой взгляд, был плохо подготовлен.

Сообщите, пожалуйста, план Вашего импорта: как Вы собираетесь проверять наличие POI магазина в базе OSM, что Вы собираетесь делать при наличии POI, как собираетесь определять положение новой точки при отсутствии POI магазина в базе, какие значения тега планируете использовать и на каком основании.

Но таки на объектах в osm иногда прослеживается Ё. Значит это было (и будет случается в будущем) неверно.

Здравствуйте.
Сразу к делу:

  1. Да, были проблемы с поиском, но исправляем и развиваемся. Как можете убедиться в аудиторе по ссылке выше, эти проблемы уже прошли.
  2. Да, такая ошибка у нас была в прошлом, в текущей версии исправлено. Убедиться, опятьже, можно по ссылке выше.
  3. Да, мы специально связались с правообладателем и уточнили эту информацию. Буква Ё в их бренде нигде не встречаются. Все Ё в названии - домыслы сообщества.
  4. Что поделать, если у этого акционерного общества именно такое название. https://www.x5.ru/ru/Pages/Investors/InformationDisclosureForPerekrestok.aspx. Приходится выбирать, или правильно, или красиво. С пробелами да, была проблема. Исправлена в текущей версии.

MyrikLD, тогда ещё пример. Вот магазин “Перекрёсток”, год назад переименованный из “Пятёрочки”. А вот точка, созданная Вашими чаяниями 3 недели назад. Час назад Вы отредактировали “Вашу” точку (новую), проигнорировав старую. Почему? На мой взгляд, Ваш валидатор должен был сообщить о наличии на расстоянии 20 метров двух точек одного магазина и выдать рекомендацию на удаление “Вашей” точки как лишней. Пока я не вижу, чтобы Ваш валидатор хоть как-то решал проблему дублирования точек POI.

Пример 2: Вы только что загрузили новую точку магазина, хотя она уже была обозначена ещё 9 лет назад.

Пример 3: созданная Вами точка дублирует старую, созданную 10 месяцев назад. И проблема тут не сколько в том, что Вы до сих пор не удалили дубликат, а в том, что Ваш валидатор не видит проблемы: он довольно подсвечивает “Вашу” новую точку, игнорируя наличие старой.

Пример 4: Вы создали и час назад отредактировали новую точку магазина, проигнорировав старую, созданную 2 года назад.

Пример 5: Вы только что загрузили новую точку магазина, хотя она уже была обозначена 2 года назад.

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

Как можно убедиться по приведённым выше ссылкам, проблемы не прошли.

Перешёл по ссылке, увидел “Устав ЗАО «Торговый дом «Перекрёсток»:slight_smile:

Заглянул на YouTube-канал владельца, увидел: “В Геленджике открылся 555-й «Перекрёсток»! За штурвалом — Х5 Retail Group! В 2016 году мы открыли 500-ый «Перекрёсток». Юбилейным стал супермаркет в подмосковных Мытищах. А 21 июня 2017 года 555-й магазин заработал в солнечном Геленджике!”.

Было бы правильнее написать “Ждать было некогда, импорт уже выполняем”.

Эта Ваша свежая правка, затрагивающая семь сотен магазинов, вообще не очень хорошо смотрится. Мы ещё после нашествия x5_ru не оправились, а Вы опять к каждому магазину сбоку по новой точке пририсовываете. Я бы вообще предложил Вам на первом этапе удалить все “Перекрёстки”, которые создали в OSM (проверив правки со всех ваших учётных записей), а затем уже, отлаживая механизм и добавляя вручную по паре магазинов за раз (там, где это действительно нужно делать), готовиться к глобальному импорту.

Правообладатели знают, как звучное название “Пер☰крестОк” коверкают рекламщики — “ПерекрЁсток”?! Жуть…

Не домыслы сообщества, а банальное следование правилам русского языка - в качестве бренда было выбрано ведь не какое-то синтетическое название (которое по праву изобретателя можно писать, как угодно), а вполне себе общеупотребительное слово. И как было замечено, произносится всё равно через Ё.

Тут ещё такой момент: в OSM информацию стараются заносить в наиболее детальном виде. Любой потребитель данных может получить из написания с Ё написание с Е можно простой автозаменой. Обратное же вот так одним щелчком не сделаешь, потребуется словарь + в ряде случаев анализ контекста.

Теги на линиях и отношениях проверяете? А то x5_ru успел наплодить дубликатов…

MyrikLD, вы открыли обсуждение, вам привели кучу справедливых вопросов, а вы на это плюете и просто снова заливаете точки, причем во многом дубликаты? https://www.openstreetmap.org/changeset/65875392

Удивительное неуважение к сообществу.

UPD: похоже, если в базе нет точного адреса, магазин тупо льется в центр населенного пункта: https://www.openstreetmap.org/node/6171598478#map=17/55.92920/37.19455

MyrikLD, я заметил, что Вы начали удалять отдельные дубликаты. Полагаю, Вы это делаете не вполне корректно. Например, Вы удалили созданную 9 лет назад точку, оставив свой новодел.

Помимо того, что происходит фактическая замена названия “Перекрёсток” на “Перекресток”, пока ещё не одобренная сообществом, теряется история точки, положение которой, практически наверняка, за 9 лет было выверено, в отличие от дистанционно проставленной Вами точки. Приведённый в предыдущем сообщении пример показывает, что Вы ставите POI уж очень примерно: мало того, что поставили точку наобум в центр населённого пункта, так ещё и не заметили уже отмеченный в OSM магазин.

При удалении дубликатов стирайте, пожалуйста, Ваши новые добавленные точки, сохраняя старые.

Думал, перетащить в прошлое положение будет хватать. Прошу прощения, исправлюсь.

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

  1. загружаем из областей, в которых осуществлялся импорт, все точки, линии и отношения с name=Перекресток и name=Перекрёсток,
  2. строим таблицу расстояний между всеми загруженными объектами (для линий можно брать координаты любой из точек линии, для отношений-мультиполигонов - координаты любой из точек любой из линии отношения),
  3. выделяем объекты, у которых есть “соседи” на расстоянии, скажем, менее 300 метров,
  4. внимательно смотрим на получившийся набор, размышляем, выкидываем дубликаты.

Примеры дубликатов, не удалённых на момент написания этого сообщения:
1: новая точка в 100 метрах от существующей,
2: новая точка в 50 метрах от существующей,
3: новая точка в 100 метрах от существующей (интересно, как должен выглядеть супермаркет в 5-этажной брежневке),
4: новая точка в 15 метрах от существующей,
5: новая точка в 10 метрах от существующей.

Ну и до кучи мысль по поводу дальнейшей валидации. По моим представлениям, у каждого магазина должен существовать какой-то уникальный идентификатор (как-то же их различают в отделе кадров, транспортном цехе и бухгалтерии). Его можно было бы добавить в тег ref или в специальный тег вида x5_retail_group_id. Это потом облегчало бы периодическую проверку на наличие всех магазинов в базе (в пределах страны) и нахождение нужного магазина (например, при необходимости исправить изменившийся режим работы).

P. S. Реально, а как они товар в магазины возят? Зашёл на сайт https://www.perekrestok.ru/shops/map - у них там и адреса неправильные попадаются, и точки на карте в километре от магазинов стоят. Может, обязать директора каждого магазина запустить на телефоне навигатор и выдать правильное положение?).

Магазины привязываются по адресу - это унифицированный идентификатор, без всяких там не валидируемых x5_retail_group_id. Незачем городить огород на пустом месте.

Валидация магазинов “Перекрёсток” по адресу, на мой взгляд, не взлетит: во-первых, адрес может быть не внесён в OSM, во-вторых, такой способ требует определения адреса POI из расположения зданий с соответствующим адресом, в-третьих, в базе X5 адрес может быть написан в абы каком формате (считай - не анализируемом роботом), в-четвёртых, адрес в базе X5 может не соответствовать адресу на местности и т. д. и т. п. Хороший идентификатор является уникальным и не позволяет записать себя произвольным образом (пример - цифровой код железнодорожной станции). Рискну предположить, что код магазина должен где-то отображаться в чеке (хотя могу представить ситуацию, когда фактически отдельный магазин является для финансовой отчётности одной из касс какого-то другого магазина).

P. S. Таки хочется переломить ситуацию, когда на магазин приходится по 2, а то и по 3 объекта в базе OSM (меня, извините, на проверку 700 периодически импортируемых с разных учётных записей “Перекрёстков” не хватит). Нужно предложить что-нибудь простое, понятное и работающее).

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

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

Валидацию импортёры и не делают. “Валидацией” они называют “мы вам сейчас зальём кучу данных, но, так и быть, дадим их поисправлять перед этим”.

У заказчика требования другие, чем у маперов.
Заказчику кажется важным лишь то, чтобы все магазины были на карте.
Появятся лишние или нет они и не задумываются.

Мои претензии к импорту в текущем формате (помимо уже высказанных, к которым присоединяюсь). Из общения в чате с представителем Рокетдата я вынес, что в случае, если в базе уже был магазин, нанесенный, например, местным маппером, с временем работы, списанным с таблички, рокетдата все равно затирает это данными из базы. То есть данные с мест, с on the ground затираются данными из табличек и сайтов, которые, по моему опыту, часто не соответствуют действительности. Нарушение базового принципа проекта.

Решение: проставлять время работы только тогда, когда его нет на имеющейся точке (+ при дальнейших заливках менять его только если кроме аккаунтов Рокетдаты никто не трогал).

Мы учли ваши предложения. Сейчас мы собираемся добавить только изменения текущих точек, без создания новых.
По поводу поиска:
Мы ищем по вхождению русского и английского имени с учетом буквы Е и Ё (regex) по радиусу 100м. Также выбираем ближайшее к точке здание и ищем внутри этого здания.
Проверить будущий импорт можно по адресу https://osm.rocketdata.io/project/5084c
Имена и время работы добавляем только в случае отсутствия в точке на данный момент.