Ещё одна схема адресации: населённый пункт без улиц

А может, addr:street=no ? типа “Нету улицы в этом адресе”.

Что значит “пропускаем”?
Не надо путать валидность и информационную полноту. Если валидатор действительно проверяет валидность, а не указывает на “подозрительные” с т.з. информационной полноты места, то он не должен считать невалидным отсутствие addr:street. Иначе это не валидатор.

Если внимательно приглядеться, там это и написано:

Понимаете, правила валидации могут быть разные. В данном случае, если Вы пройдете по ссылке, Вы увидите, что там должны быть улицы. В Москве вообще не так много мест, которые адресуются по территории и те, обычно, забиты в addr:street.
То есть в данном случае, если мы считаем отсутствие addr:street валидным для России - мы пропустим огромное число незанесенных улиц.

Это проблемы того, кто эту чушь написал. Сам по себе адрес без улицы вполне валиден, тем более что в странах типа Японии улица вообще в адресации не участвует.

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

UPD
Для примера, вот тут достаточно полный адресный реестр района - можно посмотреть количество правильных адресов без улиц: http://gis-lab.info/data/mp/addr/?base=istra

В Москве есть Зеленоград и Акулово - в них куча домов должны быть без addr:street (и даже без его аналогов)

Понимаю. Тогда, наверное, разные правила надо применять к разным объектам.

Прошёл. Скорее всего должны быть, но лучше проверить на местности или с помощью авторитетных источников. Это всего лишь подозрительные, но при этом валидные объекты.

Но все-таки их больше 0? Значит, даже в Москве надо применять разные правила валидации?

Ну и неправильно. Такой приём даёт невалидный результат.

Это не проблема валидатора. Это проблема средства автоматической проверки полноты адресных данных.

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

Спор насколько применим термин “невалидные” к неполным данным считаю заранее неконструктивным и не приближающим нас к решению проблемы.

Scondo, тогда нужно про каждый возможный тег придумать, как обозначать его отсутствие, и везде его обозначать :slight_smile:
amenity:no=yes
natural:no=yes
sport:no=yes
etc
А то вдруг кто-то подумает, что просто забыли обозначить

Но ведь пишут же скажем oneway=no и т.п. :wink:

Три решения:

  1. валидатор не считает ошибкой незаполненную улицу, как вариант, может выдавать предупреждение или же ошибку, но по настройкам пользователя.
  2. валидатор должен знать в лицо все места, где улица в адресе отсутствует законно, то есть имеет свою базу таких мест.
  3. валидатор берет информацию о законности из ОСМ. Информацию можно занести или в каждый дом (что-то вроде addr:street=no / addr:emptystreet=yes) или куда-нибудь в район/населенный пункт.

Первый вариант вообще ничему не мешает. Тот, кто работает с Зеленоградом - может в любой момент отключить эту проверку, если она мешает.
Второй вариант тоже ничему не мешает. Только добавлять в базу придется через какой-то специальный механизм (веб-интерфейс или письмо автору).
Третий вариант позволяет любому править информацию о допустимости таких адресов в конкретном месте, но будет замусоривать ОСМ.

Первый вариант должен работать по-любому - пункты 2)/3) ведь могут и не сработать где-то из-за отсутствии для них информации.

“и т.п” нужны для изменения дефолтов, а у addr:* вроде никаких дефолтов и нет

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

Подниму связанную тему.
Не адресация, но группировка.

Обычно при поиске (в нафигаторах) дома группируются по улицам, но если улицы нет, то не всегда получается удобно и/или общепринято.

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

Больше того, даже адреса с улицами зачастую люди ожидают увидеть тоже сгруппированными по микрорайонам/районам и т.п., хотя в адрес эти понятия вовсе не входят.

wowik, группировать, если нужно, вполне можно (и даже удобно) по начальным подстрокам.
Никаких дополнительных обозначений при этом не требуется.

Вот и addr:street точно так же не должен предполагаться.

addr:street - необязательный элемент и никто не должен предполагать его наличие. Я это вам, как зеленоградец, точно говорю!
В отечественной адресации вообще ничего заранее предполагать нельзя :slight_smile: ! В адресе, как мне кажется, нет ни одного обязательного элемента :wink:

Если это и проблема, то не схемы. Схема просто не предназначена для оценки полноты данных.

Проблема может быть решена только при помощи внешнего по-отношению к ОСМ источника информации.
Глядя на данные только из ОСМ эту проблему не решить.

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

Действительно можно, действительно не требуется, но не удобно. Опять же, алгоритм определения какие подстроки брать для группировки надо зашивать в конвертор/навигатор?
Видал я такое, так часть первого микрорайона и десятого сваливают в одну кучу, а другую часть первого и одиннадцатый сваливают в другую и т.п.

корп 100
корп 1001
корп 1002
корп 1009
корп 101
корп 1010

корп 110
корп 1101
корп 1102
корп 1109
корп 111
корп 1110

При отстутствии “информации о законности” проблема не решается. Поэтому это решение, наверное, будет работать, если второе предложение будет начинаться так: “Информацию нужно занести…”. Будет ли внесена эта информация?..