Если остались одни стены - то это уже не совсем здание.
Вы не поняли смысла ввода этих префиксов. Тег abandoned=yes сам по себе не является неправильным. Но его часто применяют неправильно.
Главный принцип обратной совместимости - тег не должен радикально менять смысл других тегов.
Поэтому, если какой-то атрибут перестаёт действовать в силу заброшенности - тогда да, его следует заменить на вариант с префиксом.
Но если заброшенность не отменяет какой-то атрибут - то он должен остаться неизменным.
Пример - заброшенный магазин перестаёт быть магазином, поэтому там надо ставить префикс. Но заброшенное здание не перестаёт быть зданием (если оно не разрушено). И в этом случае abandoned=yes вполне допустим. Ставя префикс у здания вы тем самым указываете, что это уже не здание.
А если будет building=detached + disused:building=detached, то это тоже будет мешать? А зря. Ведь от того, что частный дом не используется, он не перестаёт быть частным домом. Следовательно, он должен быть среди всех других частных домов (building=detached).
building=yes для неразрушеного здания является вполне релевантным текущему состоянию объекта, а значит для него не следует использовать данный префикс.
В том-то и дело что нет. Первый вариант говорит о заброшенном доме. Второй вариант - и о заброшенном(2) и о действующем(1). В таких двух противоречивых тегах только человек может понять, да если ещё сможет.
Мешает или нет — зависит от ваших целей, какие вы запросы будете составлять. Если искать “действующие жилые здания” (запрос building=detached) будут мешать.
Ваши объекты с двумя тегами building=detached + disused:building=detached придётся отфильтровывать, да ещё нужно любителей “простых тегов” отфильтровать или учесть:
building=detached -(“disused:building”=“detached”) -(“abandoned:building”=“detached”) -(“ruined:building”=“detached”) -disused=yes -abandoned=yes -detached=yes
Запрос из одного тега вырос в захламлённое пересечение множеств.
Если же не использовать простые теги building=* на реально заброшенных объектах, а только один тег abandoned:building=*, то запрос для действующих жилых зданий выглядит так:
building=detached
если хочется включить заброшенные жилые, то запрос усложняется (до о ужас):
building=detached | disused:building=detached | abandoned:building=detached
Теги abandoned=yes detached=yes из запросов вообще исчезнут как только избавимся от них.
Конечно.
Дом заброшен его обозначают через abandoned:building=yes.
Старый один тег не используют.
И конечно этот тег не стоит ставить на заброшенные (abandoned:building=yes) и неиспользуемые (disused:building=yes) здания.
Почему-то никто не ставит все какие только можно теги building=yes;residential;apartments, но неймспейсы disused: и abandoned: в корне меняют всё для кого-то.
Ключевое слово здесь - “действующие жилые здания”.
От того, что частный дом не используется или заброшен, он не перестаёт быть частным домом. Значит, он должен иметь тег building=detached.
Если кто-то хочет выбрать из множества частных домов только действующие, то да, ему придётся делать сложные запросы. Если же нужно просто вытащить все частные дома, то запрос предельно прост: все building=detached.
От того, что частный дом не используется или заброшен, он не перестаёт быть жилым домом. Значит, он должен иметь тег building=residential.
От того, что частный дом не используется или заброшен, он не перестаёт быть домом. Значит, он должен иметь тег building=yes.
И что теперь всю гирлянду из этих тегов будете вешать? Никто так не делает прямо сейчас.
Еще раз, так не делают в OSM, отмечают только самый уточняющий класс, а не всё на свете что “подходит”:
Тег building=detached уточняет building=residential, который в свою очередь уточняет building=yes. Поэтому достаточно использовать только тег с самым узким смыслом.
Если линия имеет тег building=*, то это здание. Если линия его не имеет, то это не здание, не так ли? Тогда почему в реальности заброшенный дом не должен быть зданием в OSM?
Контрпример с запросом:
Если нужно выбрать просто все любые здания в определенной местности, то нужно искать
Тег abandoned:building=detached уточняет building=detached, который в свою очередь уточняет building=residential. Поэтому достаточно использовать только тег с самым узким смыслом.
Почему это не правильно когда вам нужно делать запросы:
Тег building=abandoned_detached может уточнять building=detached. Тег abandoned:building=detached не может уточнять building=detached, потому что ключи разные.
Неправильно, потому что запросто может появиться (то есть могут принять) новый тег building=*. И что, каждый раз менять запрос?
Ну, building=no - костыль, поэтому его никак кроме костыля не обработать:
Заброшенное здание не перестаёт быть зданием, поэтому должно иметь тег building. Заброшенный магазин перестаёт быть магазином, поэтому не должен иметь тег shop.
Отлично. С чего вы взяли что правила для building и shop должны отличатся?
И что этот запрос значит? Что если он встретит объект с тегом building=abandoned_detached? Что если он встретит объект с тегом abandoned:building=detached?
Если в здании есть стены/крыша, то оно продолжает выполнять свою функцию здания, грубо говоря, укрывать внутренние помещения от воздействия погодных условий, хоть там никто и не живет/работает.
Если магазин не торгует, даже при сохранившемся торговом оборудовании, он уже не является магазином, так как перестал выполнять свою функцию магазина.
Если у объекта с abandoned:building=detached есть building=detached, то он попадёт в выборку. Если нет - то он отмечен неправильно, и в выборку он не попадёт.