JA:名前空間
名前空間 (namespace) はキーの中の接頭辞や接尾辞、挿入辞です。関連するキーをグループ化したり、キーに追加の修飾を施したりする特別な場合に使用することができます。キー名の中で名前空間を区切るためにコロン記号(:)が使用されます。名前空間付きのキーを導入することによって得られる便益が欠点を上回るようにしなければなりません。
関連するキーを名前空間でグループ化することは、このキーのグループを分離し、名前の衝突を避け、特定のキーにより高い次元のコンテキストを提供するのに役立ちます。
修飾語としての名前空間(例えば言語コードなど)は、関連しない主キーの広い範囲に適用できます。
技術的にはどちらの考え方も、広範にわたって同じように扱うことができます。コロンの区切り記号を含むキー名は、他のキーと同じように扱います。
名前空間の使用例
- addr=* の住所の一部を含む一連のタグ
- contact=* の一連のタグ
- 日付の名前空間 - (JA:ライフサイクルの考え方の比較の中で)タグが有効な時期を定義する日付の名前空間接尾辞が提案されています。例えば "amenity:1835-1965 = school"、"name:1933-1945 = Adolf-Hitler-Straße" のような形です。接尾辞はキーの最後の部分に来ます(例えば言語コード接尾辞の後)。
- generator:output=* 発電所の出力に関する情報を提供するため
- is_in=* データベースに残っている古い名前区間です
- :lanes 接尾辞は車線毎の情報を追加するために使用します。
- ライフサイクルの接頭辞 - (JA:ライフサイクルの考え方の比較の中で)地物が特別な状態にあることを "proposed:", "construction:", "disused:", "abandoned:", "demolished:" のようにタグ付けすることが提案されています。たとえば "construction:aerialway=gondola" のような形です。道路や鉄道には、すでに事実上の標準になっている別のタグ付けがあります。例えば"highway=construction + construction=motorway"です。JA:ライフサイクルの考え方の比較を参照してください。
- 多国語の名称 - 言語コード接尾辞は、"name:ja=..."が地物の日本語の名前を示すように、多くのキーで使用されています。用法については、JA:地図の多国語化とJA:多国語の名称を参照してください。接尾辞はキー名の後に直接つけます。
- parking:lane=* と parking:condition=* highway=*に駐車車線に関する情報を提供するため
- source=* すべてのタグの情報源を示したり、特定の単一タグの情報源を示したりするため
- traffic:hourly=* は交通の密度を示し、名前空間として使用することができます。
- forward, backward, left, right 接頭辞は一部のウェイの方向や側のみに適用されることを示します。
用語集
- 名前空間 (namespace) はすべての概念を記述します(例:このページ)。接頭辞の名前空間として使用される場合、接頭辞の語はよく省略されます。
- 接頭辞 (prefix) はキーの前に名前空間を使うことです(タグ、ライフサイクルの接頭辞、addr で使用)。
- 接尾辞 (suffix) はキーの後で修飾辞を使うことです(タグ、条件付き制限、 name、 車線で使用)。
- サブキー (subkey) は二つのコンテキストで使われます。
- 地物をもっと説明する追加のキーとして(Key:waste、 Key:motorboat で使用)。
- 接尾辞を記述するため(車線、 Key:phone、 Key:addr、 Class:bicycle、 Template:Tag/doc で使用)。
- 挿入辞 (infix) はとても稀に使われます(タグ、Talk right/left)。
このウィキソフトウェアも名前空間の概念を使っていますが、これは OSM の名前空間とは関係ありません。
名前空間の利用
システムの基本的な次元で、名前空間の付いたキーは単なる自由な文字列の一つ(コロンを含む文字列)として扱われます。
OSM データの多くの利用者は、このようにキーを扱います。利用するアプリケーションは関係があるキーに一致するものを利用し、解釈できないキーは無視します。これは名前空間の期待される効果かもしれません。名前空間は「核心」の地図データから、側面的な特定の種類の専門的な情報を分離し、より専門的な利用者のみが興味を持つ情報を明確にするために使用することができます。
過剰な名前空間化
名前空間の利用はデータ体系を構造化するために良い方法ですが、データの価値を下げるもとになる可能性もあります。私たちはこれを過剰な名前空間化 (over-namespacing)と呼びます。
- プロジェクトに関連した名前空間 既存の体系に組み込もうとするためではなく、キーの他のデータとの衝突を防ぐだけのために名前空間を使用していることがあり、これは悪い使い方です。OSMは多重体系のデータベースであり、あらゆるタグが複数の体系、複数のデータの使い方に関連しているので、データの活用を最大限にするために、既に使われている体系に組み込むことが重要です。
- 過剰な名前空間化はデータベースに矛盾をもたらす: もし projectfoobar:name=xxx と name=xxx があると、多くの場合は一方が更新されますがもう一方は更新されません。より単純でより一般的なキーを使用することが、より多く使用され、より広く活用できます。
- 過剰な名前空間化はデータ構造を発散させる: 例えば、VHFのチャンネルデータに関心がある人がデータを収集するのに、harbour:VHF_channelキーに加えてseamark:harbour:VHF_channelキー、加えてVHF_channel、加えてlock:VHF_channel、加えてvhfを見なければならなくなったとしたら・・・。vhfキーだけを使用すれば、港や鍵やその他のタグ付けするOSMオブジェクトに関するこのデータを知るためには十分です。
現在は地図によっては表示されない
OpenStreetmap.orgのフロントページに表示される「標準」地図スタイルに名前空間付きの地物がもっとレンダリングできるよう改善に気軽に協力してください。