JA:Open Data License/What is clean?

From OpenStreetMap Wiki
Jump to navigation Jump to search

最終データ切替の前にリマップするために、クリーンなオブジェクトとは何か、そしてどれをリマップすべきか理解することは重要です。これまでのところ、少数の基準だけが考察されてきました("安全な"アプローチ):

安全なアプローチ

  • 履歴に匿名マッパーがひとりでもいれば、そのオブジェクトはダーティである
  • 履歴に明示的にライセンス切替を拒否したマッパーがひとりでもいれば、そのオブジェクトはダーティである
  • 履歴にライセンス切替を承諾も拒否もしていないマッパーがひとりでもいれば、そのオブジェクトはダーティである
  • 履歴にある全てのマッパーがライセンス切替を承諾しているかサインアップ時に承諾が必須となってからプロジェクトに参加している場合は、そのオブジェクトははクリーンである

このドキュメントの目的のために、次のものを不同意マッパーと定義します: 匿名ユーザ、拒否または応答の無いマッパー。

しかし多くのオブジェクトが、履歴に不同意マッパーがいるにも関わらず、もはや二次的著作物とは考えられない程度にまですでにそのマッパーの著作物から派生した要素は何ら含まれていません。このページの意図は、オブジェクトがODbLクリーンである、と考えることができるかもしれない 事例の線引きを明確にすることです。このページは次のように使ってください:

やって良いこと: 議論のためにあなた自身の境界事例を追加してください - そのオブジェクトがクリーンとみなされる事例を代表していることにあなたが同意しているか否かに関わらず。

やって良いこと: (議論のページで)クリーンと考えられるオブジェクトについての良し悪しを議論してください。 やってはいけないこと: ページにインラインにコメントすること

やってはいけないこと: 他人の意見をあなたが認めないというだけで項目を削除すること

(訳注:クリーンとみなされる)境界事例

状況 適用対象 ODbLクリーンなオブジェクトとして残せる理由
不同意マッパーがタグを追加し、引き続き別のマッパーがそれを削除 全て 不同意マッパーの著作物は何も残っておらず、現在のバージョンに何らの影響も無い
不同意マッパーがタグを追加し、引き続き別のマッパーがそれを変更 全て もし現在のバージョンに何ら影響を及ぼしていないならば、不同意マッパーの著作物は何も残っていない
不同意マッパーがノードを追加し、引き続き別のマッパーがそのノードを削除 ウェイ 不同意マッパーの形状(訳注:ジオメトリ)は残っておらず、ウェイのタグは常にクリーン。
不同意マッパーが形状だけのノードを触り(署名のあるタグは無い)、後に承諾マッパーがその位置を変更 ノード 不同意マッパーによる事実情報は残っておらず、リマッパーが他のソースから事実情報をクリーンに抜き出すことに不断の信頼を投資する。
不同意マッパーがPOI ノードを移動(タグの変更無し)、後に承諾マッパーがそれを別の位置に移動 ノード 不同意マッパーが提供した事実情報は残っておらず、リマッパーが他のソースから事実情報をクリーンに抜き出すことに不断の信頼を投資する。
不同意マッパーが"署名の無い"タグ(created_by, source等)を追加または変更 全て この種のタグは編集を説明するためのものであり、実際のマップには反映されない。最悪でも、タグをリバートあるいは削除すれば汚染は全て取り除かれる。
不同意マッパーがタグを削除 全て そこに無い状態のものに著作権を主張できますか?
不同意のマッパーがタグのtypoを訂正したり、タグ付けの規範を別のものに変更 全て マッパーなら誰でも無理なく以前のクリーンなデータに適用できるルールベースの編集

現実的なアプローチ

汚染された(訳注:ODbLクリーンでない)データを取り除くことが目標です。これは不同意マッパーによってこれまでに行われたことを全て元に戻す、ということと同じではありません。

削除は汚染ではない

OSMデータベースから不同意マッパーがオブジェクトを削除する場合、このオブジェクトは汚染されていません。この削除は定義によればクリーンです。この編集の結果についてさらにクリーンにするアクションは不要です。

削除のパラドックス

不同意マッパーが行ったことを全て元に戻そうとすると、オブジェクトの削除取り消しが適切に思えるかもしれませんが、しかしそうではありません。その削除はOSM内に識別可能なオブジェクトを残していません。

削除が所有権に基づく保護を得るための行動であった場合、削除のパラドックスによりOSMデータベースのクリーニングができなくなります。これを見てください。

ユーザA がノードを新規作成。
ユーザB がこのノードを削除。
ユーザA とB は両方とも非同意である。  
ユーザA が新規作成したノードをクリーンにするには、このノードは削除されなければなりません。
ユーザB によるノードの削除をクリーンにするには、このノードは削除取り消しされなければなりません。
かくして、データベースはいつまでもクリーンにできません。  

これは不合理です。削除は汚染ではありません。

汚染されたデータとは?

不同意マッパーが新規作成したノードは汚染されています。

削除することでこのノードをクリーンにします。良いソースから再度マッピングします。

不同意マッパーが移動したノードは汚染されています。

そのノードを移動してクリーンにします。

不同意マッパーが削除したノードは 汚染されていません

アクションは不要です。

不同意マッパーが追加したタグは汚染されています。

そのタグと値を削除してクリーンにします。データベースにこれをクリーンな中間バージョンとして保存します。そして良いソースからリマップし、良いソースがサポートしていればタグと値を含めます。

不同意マッパーの修正したタグは汚染されています。

そのタグと値を削除してクリーンにします。データベースにこれをクリーンな中間バージョンとして保存します。そして良いソースからリマップし、良いソースがサポートしていればタグと値を含めます。

不同意マッパーが削除したタグは汚染されていません

アクションは不要です。

不同意マッパーが新規作成したウェイは汚染されています。

このウェイを削除してクリーンにします。良いソースから再度マッピングします。

不同意マッパーが修正したウェイは汚染されている可能性があります

追加あるいは移動したノードは汚染されています。
削除されたノードは汚染されていません。
追加あるいは修正したタグは汚染されています。
削除したタグは汚染されていません。

不同意マッパーが削除したウェイは汚染されていません

アクションは不要です。

不同意マッパーが新規作成したリレーションは汚染されています。

そのリレーションを削除してクリーンにします。正当なものであれば良いソースから再度マッピングします。

不同意マッパーが修正したリレーションは汚染されている可能性があります

追加あるいは修正したタグは汚染されています。
削除したタグは汚染されていません
クリーニングの手順は上述のタグを参照。
不同意マッパーがリレーションに追加したメンバーは汚染されています。
不同意マッパーがリレーションから削除したメンバーは汚染されていません
不同意マッパーが追加したロールは汚染されています。上述のタグと同様にクリーンにします。
不同意マッパーが修正したロールは汚染されている可能性があります。上述のタグと同様にクリーンにします。
不同意マッパーが削除したロールは汚染されていません
オブジェクト 編集[1] 汚染? クリーニング
ノード 新規作成 Yes ノードを削除。良いソースからのリマップ。
移動 Yes ノードを移動。
削除 No 既にクリーン。
タグ 新規作成 Yes タグを削除。良いソースからのリマップ。[2]
修正 Yes タグを削除。良いソースからのリマップ。[3]
削除 No 既にクリーン。
ウェイ 新規作成 Yes ウェイを削除。良いソースからのリマップ。
修正 Yes 上述の修正されたノード及びタグを参照。ノード及びタグのクリーニングを適用。
削除 No 既にクリーン。
リレーション 新規作成 Yes リレーションの削除。良いソースからのリマップ。
タグ新規作成 Yes タグの削除。良いソースからのリマップ。[4]
タグ修正 Yes タグの削除。良いソースからのリマップ。[5]
タグ削除 No 既にクリーン。
メンバー追加 Yes メンバーの削除。良いソースからのリマップ。[6]
メンバー削除 No 既にクリーン。
ロール追加 Yes ロールの削除。良いソースからのリマップ。[7]
ロール修正 Yes ロールの削除。良いソースからのリマップ。[8]
ロール削除 Yes 既にクリーン。
削除 No 既にクリーン。

中間バージョン

中間バージョンの保存は多少ハックっぽくなります。不同意マッパーにより残された汚染部分の無いデータのバージョンをデータベースに保存します。そしてデータは問題の無いソースから追加することができます。いったんクリーンにされたら、承諾マッパーによってのみ変更され、オブジェクトはクリーンなままとなります。


  1. 不同意マッパーによる
  2. 良いソースから同じ値を置き換えるなら、汚染されたタグの無い中間バージョンを保存してクリーンにします。
  3. 良いソースから同じ値を置き換えるなら、汚染されたタグの無い中間バージョンを保存してクリーンにします。
  4. 良いソースから同じ値を置き換えるなら、汚染されたタグの無い中間バージョンを保存してクリーンにします。
  5. 良いソースから同じ値を置き換えるなら、汚染されたタグの無い中間バージョンを保存してクリーンにします。
  6. 良いソースから同じメンバーを置き換えるなら、汚染されたメンバーの無い中間バージョンを保存してクリーンにします。
  7. 良いソースから同じロールを置き換えるなら、汚染されたロールの無い中間バージョンを保存してクリーンにします。
  8. 良いソースから同じロールを置き換えるなら、汚染されたロールの無い中間バージョンを保存してクリーンにします。