RU:Namespace

From OpenStreetMap Wiki
Jump to: navigation, search
Доступные языки — Namespace
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް

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

Пространства имён не применяются в подавляющем большинстве тегов, описывающих наиболее распространённые объекты карты (то есть, в самых обычных тегах, которые новички будут использовать наиболее часто). Для таких тегов нормой являются простые односложные ключи, без каких-либо двоеточий. В общем случае, выигрыш от введения нового тега с пространством имён (возможность более сгруппированного и детального описания) должен быть достаточно велик, чтобы компенсировать вызываемое усложнение картографирования (теги становится менее удобно набирать; список тегов объекта становится труднее воспринимать).

Хранение некой переменной величины в виде отделяемого двоеточием суффикса или префикса ключа не является случаем использования пространства имен, так как в этом случае суффикс (префикс) хранят не метку группировки, а переменную величину. Создания подобных схем стоит избегать, так как это усложняет обработку данных. Большинство приложений, использующих данные OSM, спроектированы так, что ожидают обнаружить значение тега в value, а не в составе key. Хранение значений в суффиксах и префиксах требует более сложной предварительной обработки данных перед их использованием.

Примеры применения

  • maxspeed:forward=* — указание ограничения скорости, которое установлено только для одного направления движения, соответствующего направлению линии дороги.
  • addr:city=Mandaluyong — часть описания адреса.
  • generator:output=* — описывает выходную мощность электростанции.
  • proposed:lanes=* — описывает количество предполагаемых полос (lanes=*) после окончания строительства/реконструкции.

Значение для потребителей данных

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

Многие потребители данных OSM будут обрабатывать данные с пространством имён. Приложения-потребители данных выискивают в данных ключи, которые имеют для них значения и игнорируют нераспознанные. При этом проявляется желанный эффект от применения пространств имён — они могут быть использованы для выделения определённых типов специальной информации, "отводя" таковую от 'основных' данных карты и подчёркивая, что подобные данные скорее всего будут интересны только специфическим обработчикам данных. (например, данные о цвете и форме крыш домов интересуют далеко не каждый рендер)

Чрезмерное употребление

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

  • пространство имён одного проекта; иногда может казаться заманчивым просто ввести новое пространство имён для избежания конфликтов с существующими тегами, вместо того, чтобы найти способ органично подстроиться под существующие схемы тегирования, но это плохая практика. OSM является мультисхемовой базой данных, где один и тот же тег может участвовать в нескольких разных схемах тегирования (как например layer=*), поэтому интеграция с существующими схемами тегирования важна для поддержания организации данных.
  • лишние пространства имён рассогласуют базу данных: когда у нас есть и name=xxx и kakoy_to_project:name=xxx , часто будут возникать ситуации, при которых участник обновит лишь часть из этих данных, пропустив другую. Более простые и общие теги применять удобнее и надёжнее.
  • лишние пространства имён рассеивают базу данных: к примеру, кто-то, ищущий данные об частотах УКВ-связи для причала будет должен провести поиск по ключу бухта:УКВ_частота , плюс маяк:бухта:УКВ_частота, плюс УКВ_частота, плюс шлюз:УКВ_частота, плюс укв, чтобы собрать полные данные... Использование простого ключа укв должно быть достаточно для выведения всей информации, связанной с бухтой или шлюзом, или чем-либо ещё, что мы описываем тегами в OSM.

Отображение

Обработчик картоданных RU:Mapnik и 'стандартный' стиль карты, присутствующий на главной странице OpenStreetMap.org поддерживают лишь весьма ограниченное количество тегов с пространствами имён.