Раз уж начали ревизировать давние болячки вроде ПКК и адресов, давайте внимательно подойдём ещё к одному тегу - name.
Наверное, ни по одному другому тегу написанное в ру-вики не нарушается в таком масштабе Собственно, все споры, срачи и прочее, связанные с ним, происходят из-за следующего текста на RU:Names:
Именно из-за этой формулировки регулярно происходят экшены вроде выноса аббревиатуры “СНТ” из названий садоводств в тег official_short_type, предложения разложить Детский сад № 3 «Радуга» в official_status=детский сад + ref=3 + name=Радуга и тому подобные, массовое удаление статусной части у населённых пунктов, рек, озёр и иных природных объектов. В случае с СНТ в 2019 году попытка была замечена и закончилась массовыми откатами.
Столь ортодоксальный подход вызывает множество обоснованной критики и возражений.
Во-первых, современная английская страница Names (а исходно RU:Names появилась не как своя особая фишка ру-осма, а именно как перевод английской страницы) даже близко ничего такого не требует:
То есть:
- название не обязано быть именем собственным;
- в него не должна включаться информация из других тегов, не содержащаяся в официальном названии объекта (а не в собственном), то есть официальное название, какое бы оно ни было, резать не предполагается, а тег official_type вообще в оригинале используется только для названий государств, не совпадающих с общеупотребимыми;
- вполне допустимы ситуации, когда не следует убирать из названия даже то, что может быть вынесено без потерь в другие теги.
Это не значит автоматом, что надо вносить (как делает Сова) в name целиком официальное название вида Открытое акционерное общество «XYZ». Но и оснований для пуризма вида “name это только то, что внутри кавычек” нет.
Во-вторых, бескомпромиссная формулировка про имя собственное, которая и является “яблоком раздора”, была впервые внесена в конце 2014 года небезызвестным BushmanK, без каких-либо отсылок на голосование и обсуждение. Учитывая ортодоксальный взгляд автора (известный всем, кто его застал в проекте) на то, что OSM должен быть максимально нормализованной базой данной, есть основание считать, что это была его личная инициатива. Тем более, что он впоследствии был замечен во внесении отсебятины в другие страницы вики (например, mast vs tower). Неудивительно, что этот пункт про голые имена собственные не выполняется практически нигде, кроме магазинов, аптек и иже с ними. Быть может, свою роль сыграла и неоднозначность перевода “name” с английского - это как “название”, так и “имя”.
Поэтому предлагается актуализировать страницу RU:Names, в том числе с использованием перевода актуальной английской версии.
**Основные положения предлагается прописать следующими:
- Тег name должен содержать общеупотребимое название (common default name) объекта.
- В зависимости от типа и конкретного объекта название может иметь разные формы: имя собственное, тип + имя собственное, тип + номер, тип + номер + имя собственное и т. д.
- Название не должно содержать дополнительную информацию, однозначно восстанавливаемую из других тегов (например, напряжение на подстанциях). Но и не следует искусственно дробить общеупотребимое название по разным тегам. Тем более не надо придумывать для этого теги “на ходу”.
- По возможности стоит избегать в названии аббревиатур и сокращений (например, “им.” и “оз.”), но не следует разворачивать искусственно аббревиатуры в случае, если в сокращённом варианте название используется шире, в чем полном (ТЭЦ, ГРЭС, СНТ, ГСК, ТРЦ, ЖК, …).
- Название записывается по правилам орфографии, пунктуации и (желательно) типографики русского языка.**
То есть первое слово с большой буквы (кроме улиц), не писать всё капслоком, после № пробел, угловые кавычки лучше прямых и т. д. Указать, что это не жёстко и исходно можно вносить в любом виде, но не надо заменять, например, угловые кавычки на прямые только потому, что первых у тебя нет в дефолтной раскладке клавиатуры. Тем самым перестать давать повод для войн правок по этому поводу. Кажется, что изобретать свои особые языковые нормы в OSM точно ни к чему, хотя и возможно.
6. Для отдельных типов объектов могут существовать договорённости о более формализованных правилах именования.
Пояснение: тут описать про магазины/аптеки/АЗС (для них уже устоялось - либо имя собственное, либо бренд), невключение ООО/АО/… для организаций, принятые голосованиями правила для дорог/памятников/стройплощадок, official_short_type в электроподстанциях.
Ответы на возможные вопросы и возражения:
- В name должно быть только имя собственное, а тип/статусная часть должны быть в status/official_status/…, у нас не карта, а база данных, и такое раздельное представление упрощает с ней работу, позволяя собрать название в том варианте, в каком нужно потребителю данных.
Никакого упрощения от такой “нормализации” не происходит. Возьмём случай с 3 реальными объектами: озеро Байкал, Ладожское озеро, озеро Энгозеро. Задача: восстановить названия из базы OSM именно в таком виде (это официальный формат записи географических названий, использовавшийся, например, на картах Генштаба). Если отделять статус в отдельный тег, то имеем status=озеро + name=Байкал, status=озеро + name=Ладожское, status=озеро + name=Энгозеро. Помимо того, что само по себе имя “Ладожское” выглядит оборванным, восстановить исходное название нельзя: надо знать, в каком порядке соединять status и name. В своё время даже звучало предложение ради этого заводить два тега (name_prefix и name_suffix), но это уж совсем безумный вариант для гиков.
- Тогда надо выносить status отдельно только, если без него имя сохраняет смысл.
status=озеро + name=Байкал, name=Ладожское озеро, status=озеро + name=Энгозеро. В таком виде этот тег ничем не лучше name:vasya. Теги должны быть верифицируемыми, а наличие/отсутствие статусного типа “озеро” у любого озера объективно не зависит от того, как пишется его название. Поэтому рано или поздно кто-то на полном основании его допишет, получив status=озеро + name=Ладожское озеро. Теперь надо не просто склеивать, а определять, является ли содержимое status отдельным словом в name (даже не просто подстрокой, а именно словом, чтобы не найти его в “Энгозеро”), и только если нет - склеивать их (опять же, в каком порядке?)
- Эти типы выводятся из других тегов, поэтому не должны присутствовать в названии.
“Детский сад” не выводится однозначно из amenity=kindergarten, т. к. тем же тегом обозначаются ясли, детские развивающие центры и т. д. “Котельная” не выводится однозначно ни из power=plant, ни даже из сочетания power=plant + plant:output:heat=yes, т. к. это может быть и “Квартальная тепловая станция”, и “Районная тепловая станция”. amenity=school может означать школу, гимназию, лицей и ещё много чего. И “СНТ” не выводится однозначно из landuse=allotments из-за разных вариантов юридических форм этих образований. И из landuse=garages не следует “ГСК”, а из landuse=commercial - не следует “ТЦ”.
- Аббревиатура СНТ не является неотъемлемой частью названия, поэтому там ей делать нечего.
Как раз является, как минимум потому, что в ряде случаев по СНТ идёт адресация, и в адресе фигурирует именно “СНТ X”. Также если рядом расположено несколько населённых пунктов с одинаковым названием - деревня, сады, коттеджный посёлок - то без этой аббревиатуры “чистый” name перестаёт называть конкретный объект, ибо нельзя понять, к какому из объектов он относится. В Москве есть 2 объекта с названием “Глобал-Сити” бок о бок: один ТК, другой ТРК.
- Но тогда мы превратимся в Викимапию, ибо будут названия вида “опора железобетонная №23”.
Во-первых, ничто не мешает для отдельных типов объектов, по своей природе хорошо формализуемых, определить свои более системные правила тегирования. Опоры из их числа. Во-вторых, не надо впадать ни в одну из крайностей. Викимапия - это когда от существующих широко используемых тегов начнут отказываться в пользу их внесения в name. Но такого никто не предлагает, напротив - все эти “СНТ”, “Школа № 27”, “Котельная № 4” и прочее уже там лежат. Если говорить конкретно про опоры, то это отличный пример того, что тут тип не то что однозначно следует из других тегов, а даже более сильно детализируется ими, нежели словом “опора”: есть варианты power=tower/pole/portal.
- Но ведь есть тег official_short_type, почему бы аббревиатуры не класть из name в него?
Этот тег был мной и предложен конкретно для электрических подстанций - для них общеупотребимым является диспетчерское наименование вида: “ПС-123 110 кВ Центральная”, которое строится по чётко описанным формальным правилам. Поскольку напряжение уже есть в теге voltage, то дублировать его в другом теге не хотелось (надо тогда следить за соответствием). А если не дублировать, то надо уметь его вставлять между “ПС-123” и “Центральная”. Для “123” подходит ref, “Центральная” даже при самом жёстком подходе идёт в name. Оставалось только придумать, откуда взять “ПС” - так вот ровно для этого и был предложен данный тег, выделяющий “начальную” часть названия. О границах договорённостей по его сфере применения чётко написано в первом абзаце на его странице.
К слову, сейчас я считаю, что идея во многом костыльная (ибо по сокращению полный тип однозначно не восстанавливается), и правильнее будет писать всё в ref (ref=ПС-123) - также, как мы не делим на части номера дорог (М-7, Р-152). Но это совсем другая тема, не имеющая отношения к тегу name.
- В названии не должно быть аббревиатур, поэтому СНТ/ТРЦ/ЖК надо либо удалять, либо расшифровывать.
Как было приведено выше, жёсткого запрета на аббревиатуры нет, это надумано. Если расшифровка превращает название в тарабарщину, которую на практике даже не выговорить, то не надо этого делать. В английской версии приведён отличный пример: “the name John F. Kennedy Boulevard is not expanded to John Fitzgerald Kennedy Boulevard in English speaking countries, since the shorter version is the common spelling and pronunciation”. То есть опираться надо на то, является ли вариант с сокращением более распространённым, чем развёрнутый, а не на формальные признаки.
- Если вам нужно, чтобы на основном стиле было читаемое название, то это мапинг под рендер.
Это передёргивание: требование заключается в том, чтобы не вносить заведомо неверные теги ради красивой картинки. А желание любой ценой свести name исключительно до имени собственного - это то же самое рисование под рендер, только наоборот: “выносите в любые теги, только лишь бы этого не было на основном картостиле”.
Вообще нападки на рендеринг сами по себе странные - это один из главных способов использования данных (если не самый основной). И все распространённые рендеры в качестве подписи выводят только name и не хотят поддерживать другие теги - они здраво полагаются на англовики, что в name находится как раз то самое сбалансированное имя: не слишком раздутое и официозное, но достаточное для идентификации объекта на карте. А не обрубок, извлечённый по формальным правилам и являющийся лишь одной из деталей хитрого конструктора. Рендеры, собирающие имя “по частям” (например, использующие official_status для населённых пунктов), так и не появились.
Поэтому к сторонникам “нормализованного представления” встречное предложение: если так нужно именно собственное название, то вносить его в тег proper_name - это хорошо описываемо, формализуемо (в отличие от обратного варианта с display_name), не вызовет никаких споров и конфликтов с использованием имеющихся тегов. А на существующий name уже слишком много всего и давно завязано, чтобы глобально предъявлять к нему такие строгие требования. Иначе будет как с коммунизмом в далёком светлом будущем: за счёт создания неудобств тем, кто пользуется данными здесь и сейчас, мы будем решать проблемы, которые ещё ни у кого не возникли. Но да, когда если лет через дцать появится тру-сервис для конечных пользователей, то для него уже всё готово и причёсано.
По поводу названий географических объектов - как населённых пунктов, так и природных (пример с озёрами) - предлагаю обсудить отдельно в другой теме и потом. Пока давайте определимся с общими принципами, которые я выше выделил жирным. Есть ли возражения?