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 Baso Minangkabau bosanski brezhoneg català čeština 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 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 поддерживают лишь весьма ограниченное количество тегов с пространствами имён.