OSMタグのライフサイクルとの付き合い方を考えてみた

# 1) 2方向からのタグ発明プロセス
OSMには[Just Map](https://wiki.openstreetmap.org/wiki/JA:Just_Map)とか、[Any tags you like](https://wiki.openstreetmap.org/wiki/JA:%E4%BD%95%E3%81%A7%E3%82%82%E5%A5%BD%E3%81%8D%E3%81%AA%E3%82%BF%E3%82%B0%E3%82%92)という言い回しがあり、見当たらないタグはどんどん発明して良い事になっている。発明の手順は大きく言ってトップダウンとボトムアップの2種類があり、前者は「[提案プロセス](https://wiki.openstreetmap.org/wiki/JA:%E6%8F%90%E6%A1%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9)」として整理されている。これは体系的な手順できれいな形であることは間違いないのだが、コミュニティも長年続いているとタグ付けグルみたいな人が多発してw、とりわけ英語話者を中心としてひとつのタグを決めるのに延々と(数十件のスレッドは当たり前！)議論が続くこともしばしばである。この議論に英語があまり得意ではない文化圏の話者がついていくのはかなり厳しい。
他方、後者のボトムアップでタグを発明するやり方はごくシンプルで、タグが見当たらない場合はとりあえずタグを付けてみて、同じ潜在ニーズを持っている人がいれば次第に使われ始めて、いつの間にか標準になってしまう、というやり方だ。タグの付け方が適切でなかったり他のマッパーの興味を惹くものでない場合には自分しか使わないマイナーなタグになるだけだ。もちろん後者の場合でもタグをウィキに文書化することがそのプロセスを自然と後押しすることになる。個人的にはこちらのやり方が好みだ。

# 2) タグのライフサイクル
2方向の発明プロセスから発生するタグを、どの段階から自分のマッピングに使ったらよいかを判断する目安になるのが各タグのウィキページトップ右寄りにあるinfobox内の状態（ステータス）だ。なお、意味欄と有効／無効の区分は私見である。

|状態|日本語|意味|有効|ほぼ有効|中間状態|ほぼ無効|無効|
|-----|-------|----|-----|---------|---------|----------|----|
|Undefined|未定義|状態が不明| | |◯| | |
|Draft|ドラフト|新規タグ提案の草案段階|||◯|||
|Proposal|提案中|提案中（意見募集中）|||	◯|||
|Voting|投票中|投票中|||◯|||
|Abandoned|放棄|提案プロセスの完了前に時間切れなどで終了した|||||◯|
|Canceled|取消|提案は明示的にキャンセルされた|||||◯|
|Rejected|却下|提案は投票の結果、却下された|||||◯|
|Approved|承認|提案は投票の結果、承認された|◯|||||
|In use|使用中|提案プロセスを経ていないが既にある程度の利用実績がある||◯||||
|De facto|デファクト|提案プロセスを経ていないが事実上の標準として使われている|◯|||||
|Discardable|廃棄可|何らかの理由により不要になった。残しておいても実害は無いが削除しても良い|||||◯|
|Obsolete|代替済|後継のタグが承認されたのでこのタグは以後使用しない。新しいタグへの切り替えが推奨される。||||◯||
|Deprecated|非推奨|このタグの使用は非推奨。後継のタグは未定または無し。||||◯||

この表の「有効」「ほぼ有効」は使用して問題になることはまず無いので安心して使うことができる。「中間段階」のものも使って構わないが、タグが変わったり廃止されたりする可能性があることを理解して使う必要がある。「ほぼ無効」「無効」は新規のタグ付けには使わなければ良いだけのことだが、過去分については優先度は低いものの削除したりタグを切り替えたりすることが必要な場合が多い。

# 3) [50音順POIタグ一覧](https://wiki.openstreetmap.org/wiki/JA:How_to_map_a)の現状と課題
[50音順POIタグ一覧](https://wiki.openstreetmap.org/wiki/JA:How_to_map_a)は日本で日常的に見られる地物についてタグの付け方を50音順に引けるようにしたものである。JOSMユーザーはタグ値の確認などに参照しておられるようだ。しかしながら2方向の発明プロセスからタグが追加・更新される頻度や数に追いついていないのが現状だ。タグはOSMウィキ記事として文書化するのが基本であるため、タグを探すのはOSMウィキが中心になる。基本的に英語で作成されるため、その翻訳に手間がかかったり、そもそも翻訳すべき記事を網羅的に見つけること自体が難しいという課題がある。さらにウィキ文書化されずtaginfoでしか拾えないものは反映されることが少ない。

# 4) iDでのタグ付けにおける現状と課題
iDの特徴は不慣れな編集者でも直感的に操作できるようにOSM編集の難しさを極力隠蔽しているところ。最近ではHOTプロジェクトなどで突発的に集まった初心者による低品質の編集をiDのせいにする声があったりしたため、開発者は品質向上に力を入れているように見受けられる。アグレッシブな仕様を意図的に実装するというとんがった方向性を持っているため、興味深いプロジェクトである反面、保守的なコミュニティメンバーからの風当たりも強い。個人的に感じているiDの特徴とも課題とも言える点は大きく2つ。
## 4.1) アグレッシブなプリセットの実装
iDのGithubには新しいタグやiDプリセットに未登録のタグを常時ウォッチしている人が一定数おり、前述のタグのライフサイクルのうち、中間状態のタグも、ウィキ記事が無い段階であってもtaginfoである程度の利用数があるタグや自分で使いたいタグはプルリクエストとして活発にフィードバックされる。これらはコミッターの裁量でマージされる。

全く新規のタグであればさほど問題は無いのだが、既存タグの改定である場合はグローバルなメーリングリストなどでの議論で揉めている内容でも割と早い段階でプリセットとして実装され、コミュニティ的な合意とは別の動きでデファクト化を進める結果になってしまうことがある。例えば現在議論中のcrossing=markedなども随分前にプリセットに実装済みである。プリセットになるとタグ値は隠蔽されるため、詳細はあまり意識せず、結果的にたいていはプリセット通りのタグ付けとなる。まぁ、方針が変われば付け直せば良いだけのことなので人により賛否が別れる部分かもしれない。

ちなみに次のリリースv2.15.0でリリース予定のプリセットは以下の通りで、フィードバックの活発さが伺えると思う：

* Display logos of brand presets (#5167)/brandプリセットのロゴを表示。
* Only show brand presets in their relevant countries (#6124)/brandプリセットは国ごとに出す。
* Add presets for indoor mapping (#6082)/インドアマッピング用のプリセットを追加。
* Add Building Part preset (#6114)/building:part(建物の一部分)プリセットを追加
* Add LGBTQ+ venue presets (#5940, thanks @rory)/LGBTQ+プリセットを追加。
* Add more fields to public transport route presets (#6036, thanks @nlehuby)/公共交通ルートのプリセットに欄を追加。
* Add Self-Service field and Self-Service Laundry preset (#6260, thanks @westnordost)/セルフサービス欄とセルフサービスのランドリーを追加（セルフとそうでないランドリーを区別。日本のコインランドリーはセルフ）
* Add castle presets (#6321, thanks @westnordost)/城のプリセットを追加
* Add Bicycle Parking Garage, Bicycle Lockers, and Bicycle Shed presets (#6259, thanks @westnordost)/ビル内駐輪場、自転車ロッカー、屋根付き駐輪場。
* Add Bust, Graffiti, and Art Installation presets (#6275, thanks @westnordost)/胸像、落書きアート、インスタレーションアート。
* Add Petting Zoo, Wildlife Park, and Safari Park presets (#6317, thanks @westnordost)/ふれあい動物園、野生公園、サファリパーク。
* Add Agricultural Engines Mechanic, Floorer, Joiner, and Parquet Layer presets (#6316, thanks @westnordost)/農機具工場、床張り屋、建具屋、寄せ木床張り職人。
* Add cycleway crossing presets (#6065)/自転車用横断道
* Add standalone Tactile Paving presets (#6015)/単独の点字ブロック。
* Add Toy Library preset (#5390)/おもちゃ資料館。
* Add Social Center preset (#6077)/社交センター。
* Add Raised Curb and Rolled Curb (#6080)/高位縁石(3cm以上)、ロール状縁石。
* Add Cycle & Foot Path preset (#6070)/自転車歩行者道。
* Add Railway Under Construction preset (#6151)/建設中の鉄道。
* Add Underwear Store preset (#6152)/下着店。
* Add Cannabis Shop preset (#6301)/illegal in Japan
* Add Turnstile, Monorail Route, and Stop Area Group presets (#5757)/回転ゲート、モノレールのルート、公共交通の停車エリアグループ。
* Add Shingle preset (#6155)/小石浜。
* Add presets: Zip Line, Jet Bridge, Windsock, Convention Center, Events * Venue, Underground Parking, Ambulatory Care, Chain, Height Restrictor, Houseboat, Hangar Building, Fire Hose, Emergency Stopping Bay, Trailhead, Commemorative Plaque, Horseshoes Pit, Shuffleboard Court, Natural Swimming Area, Cycling Track, Beacon, Beehive, Summit Cross, Levee, Mineshaft, Underground Pipeline, Street Cabinet, Tunnel, Cape, Valley, Wastewater Basin, Water Turbine, Boat Store, Tabletop Game Store, General Store, Lighting Store, Data Center, Trail Marker, Information Terminal, Canal Lock, Lock Gate/ジップライン、ボーディング・ブリッジ、吹流し、コンベンションセンター、催事場、地下駐車場、訪問介護事業所、チェーン（バリア）、高さ制限バー、ハウスボート、格納庫、消火ホース、非常駐車帯、登山口、銘板、ホースシューズ場、シャフルボード場、遊泳区域、自転車競技場、ビーコン、養蜂箱、山頂の十字架、堤防、立坑、パイプライン（地下）、ストリートキャビネット、トンネル（エリア）、岬、谷、下水沈殿池、水力発電機、ボート店、ボードゲーム販売店、よろずや、照明器具店、データセンター、経路マーカー、情報端末、水路上のドック、水門
* Update Embassy and add Consulate, Liaison Office, and Diplomatic Office presets (#6144)/大使館を更新、領事館、交流組織、外交施設。
* Update golf path presets to use highway tags (#6165)/ゴルフカート用の道。
* Add Flood Prone field to minor roads (#6117)/洪水浸水想定区域。
* Add Operator field to Car Wash preset (#6233)/洗車場に運営者欄を追加。
* Add Building Height and Building Levels fields to some presets when they are buildings (#6238)/建物に高さと階数欄を追加。
* Display Internet Access Fee field directly after setting Internet Access in more cases (#6265)インターネットアクセス料金欄を追加。
* Add Floating field to piers and Floating Pier preset/水に浮いているかどうかの欄と浮き桟橋。
* Add Fishing field to water presets/釣り欄を追加。
* Add Air Conditioning field to some points of interest/エアコン有無欄を追加。
* Add Type field to Guest House preset/ゲストハウスに種類欄を追加。
* Add High-Speed Rail field and preset/高速鉄道。
* Add Manufacturer field to some infrastructure presets/メーカー欄。
* Add Max Weight field to roads and paths that are bridges/最大重量。
* Add Microbrewery field and Brewpub preset/地ビール醸造所。
* Add Payment Types field to some presets when a fee is specified/支払いの種類。
* Add generic Playground Equipment and Emergency Feature presets with Type fields/種類欄に遊具全般と緊急時用地物を追加。
* Add Reservations field to some amenities/予約欄を追加。
* Add Screens field to cinemas/映画館にスクリーン数欄を追加。
* Add Pit Latrine and Flush Toilet presets/汲み取り式トイレ、水洗トイレ。
* Add Handwashing and Positions fields to toilet presets/トイレに手洗い場と位置の欄を追加。
* Add Oneway field to some Aerialway presets/索道に一方通行欄を追加。
* Add Overhead Trolley Wires field to some highway presets/道路にトロリーバスの架線欄を追加。
* Remove Curb field from crossings to encourage mapping curbs as nodes (#6078)/横断歩道から縁石欄を削除して縁石を単独ノードでマッピングするように誘導。
* Use a less-confusing placeholder for the Hours field (#6207)/hours欄の改善。
* Add support for public domain icons from The Noun Project (#5691)/Nounプロジェクトのアイコンをサポート。
* Improve the icon for Unmaintained Track Road (#6088)/未舗装の道路用のアイコンを改善。
* Return missing icon to the old Train Platform preset (#6020)/表示されていなかったアイコンの改善。
* Update icons for various presets such as Childcare, Photo Booth, Shower,  Studio, and Garbage Dumpster/様々なアイコンの改善。
* Render route preset icons dynamically, indicating what line types are common members (#5926)/ルートプリセットのアイコンを描画してどのラインの種類が一般的か表示。
* Change the swimmer icon so its head will not be missing when the icon is displayed on point markers (#6307)/スイマーのアイコンを改善。
* Add more search terms to the Road Surface preset (#6309)/路面プリセットに検索語を追加。

## 4.2) アグレッシブなバリデーション
タグ付けの話とやや離れる部分もあるが、iDではKeepRightやImproveOSMといったQAツールとの連携だけでなく、独自のバリデーション（マッピング改善の提案）もかなりの機能がv2.15.0で独自実装されリリースされる見込みである。バリデーション結果は不慣れな人にとっては一刻も早く直さなければならない重大な問題のように捉えてしまう懸念があり、本来は誰もが納得できる改善提案（エラーの指摘）に留められるべきであるが、現状ではfalse positive （偽陽性）の提案が多く見られ、不慣れな人によって不要な修正が行われてしまいかねない面がある。私見であるが現時点での機能に対して以下補足させて頂く。

各バリデーション機能はオン/オフを切り替え可能。ワンタッチでタグを自動補正してくれる機能もあるが、内容をひとつずつ確認し、誤りが確認できた場合のみ対応すべき。自信の無いものや状況がよく分からないものは修正しない。

* Fix Me リクエスト：fixmeタグの付いた地物。現地の知識やタグ付けの知識で改善できる場合に対応する。
* とても近いポイント：同一ウェイ上で20cm以内にあるノード。不要な場合が多いが、緻密なmicro mappingの結果である場合がありえるので注意が必要。
* エリアとしてタグ付けされたライン：
* タグ未設定：タグが何も設定されていないか、nameだけが設定されている場合など。地元の知識などでPOIの種別が分かる場合にメインキーを追加する。
* プライベート情報：民家に電話番号が設定されているなど、プライバシーや個人情報侵害の可能性があるもの。
* ロールが未設定：リレーションメンバーのroleが未設定。分かる場合に設定。
* 一方通行の行き止まり：一方通行の道路で、進行方向が誤っているなどの理由で抜けられない。現地の状況がわかっている場合にウェイの方向を反転したり、接続経路を修正したりする。
* 交差点に未接続：ウェイが近接しているがつながっていない。行き止まり(noexit=yes)などでつながっていないことを明示したり、つながっていれば接続したりする。
* 問題のありそうな名前：喫茶店に「coffee」など、固有名詞ではなく一般名詞のような名前が付けられているもの。指摘が正しければnameを削除するか正しいものに修正する。
* 問題のありそうな情報源：”Google”のような文字列が入ったもの。問題があれば（できれば編集者本人に確認の上）削除。
* 旧式のタグ：タグ付けが見直されて新しいタグ付けに切り替えるべきもの。趣旨は正しいが、メーリングリストなどで最終的な合意が得られていなくても切り替えるようになっている場合があるため、無条件に切り替えるのではなくWikiなどでタグの確認が必要。
* 未接続のウェイ(浮島)：両端がどこにもつながっていない道路など。通常は近くの道路につながるべき。
* 直角でない角：直角に近いが直角でない角を持つ建物など。高解像度の写真や基盤地図2500を丁寧にトレースした結果として微妙に直角でないものは直角にするとむしろ元の形状からずれてしまうため、注意して判断する必要がある。個人的には現時点では修正不要なもの(false positive)が多く見られるため、このチェック機能はオフにすることをお勧めします。
* 重なったウェイ：建物と道路など、本来重なるべきでないものが重なっている。チェックは正しいことが多いが、エラーを消すためだけの修正ではなく、正しいあるべき状態に修正する必要がある。

# 5) 対策の方向性
問題を効率的に解決するには全体像と問題箇所の把握が不可欠であるが、OSMのタグが全部でいくつあるか即答できる人はあまりいないのではないだろうか。

iDを取り巻く課題については一筋縄では行かない部分もあるが、タグに関わる情報を定数的に把握したり整備する上ではWikibaseによって構造化された[データ項目](https://wiki.openstreetmap.org/wiki/JA:Data_items)の活用が鍵となる気がしている。例えばタグの状態（ステータス）が英語版とそれ以外で違っているものを[こちら](http://tinyurl.com/y6ojtwah)のようにSPARQL一発で簡単に一覧化できる。状態はそのタグの有効性に関わる重要な指標であり、それが違うということは日本語訳が古い可能性が高い。このように、タグの記述を最新化する場合、従来だと網羅的に把握することが難しかったが、構造化されたデータを活用すれば効率的に問題箇所を潰していくことができる。このあたりの具体的な内容は次回に。