JA:Open Database License/Changes in the API

From OpenStreetMap Wiki
Jump to navigation Jump to search

このページには、ライセンスの変更に伴って API に加えられた変更が記載されています(より正確には、API によって出力される OSM XML データが変更された)。

エディターの作成者、または API その他の方法でやり取りするソフトウェアの作者の皆さんは、このページを読んでソフトウェアを確認し、これらの変更に対応できるように調整願います。

技術のまとめ

ライブデータベースのライセンス変更が実施されました(つまり no dump でリロード)。非同意者が提供したデータは、当面の間はデータベースに保存したままですが、特別なマーク付けをしてあります。

同意のない編集によって何らかの形で汚染されたオブジェクトすべてについて、ボットは現在のバージョンが ODbL 互換になるように、当該のオブジェクトを変更または削除します。(最悪の場合、これは現行バージョンの削除を意味しますが、削除されたバージョンでも ODbL 互換です。)ボットが実施した変更そのものは、この議論の対象から除外します。重要なのはボット作業が完了すると、オブジェクト全件の現在のバージョンが「クリーン」になる点です。

削除する必要があるノードに関する特記事項:ボットがノードを削除すると、その緯度と経度も 0 に設定されます。そうしないとノードを削除したのに、拒否したものが作成した情報がまだ含まれたままになります。バージョンは削除後も、API を通じてアクセス可能です。

履歴バージョンは可能性の面から、ボットによって内部的に「クリーン」ではないとフラグが立ちます。極端な場合、オブジェクトの最新版以外の全バージョンにフラグが付くことがあります。API から要求されても履歴情報としてこれらのバージョンを入れずに返します。履歴バージョンを抑制するプロセスを「編集」と呼びます。「編集」にはモードが2つあります。一部の履歴バージョンは、反対者が作成したものであり編集が必要です。定義上、これらはオブジェクトの最終的なボット変更バージョンに寄与しません (そうでない場合、最終版は CC-BY-SA ライセンスを指定する必要があります)。その他の履歴バージョンは、バージョン自体は同意者によって作成されていても、反対者による情報を継承しているから、これらも編集が必要です。

現状では、2タイプの編集は同じ方法で処理されます。履歴バージョンをどちらかの方法で編集すると、履歴呼び出しには反映されません。後日、同意者によって作成された編集バージョンに関する情報を秘匿せず公開する可能性があります(ユーザー名やタイムスタンプなど)。

簡易な「編集」の例

この表は、特定のノードが反対者と同意者双方から編集を受けたら、が起こるかを示しています。

バージョン 作成者 ライセンス変更より前 アクション ライセンス変更より後
1 agreer node id=123 lat="50.1" lon="8.1"

amenity="レストラン"

allow node id=123 lat="50.1" lon="8.1"

amenity="レストラン"

2 decliner node id=123 lat="50.1" lon="8.1"

amenity="レストラン"
cuisine="ピザ"

編集

"hidden"

バージョンは非表示、反対者が作成したため。
3 賛成者 node id=123 lat="50.1" lon="8.1"

amenity="レストラン"
cuisine="ピザ"
name="Luigi's"

redact

"見える"

バージョンは非表示、反対者が作成した情報を含む可能性があるから。

メタデータ(タイムスタンプ、UID、changeset)は後日、表示する可能性はありますが、現バージョンでは完全に非表示。

4 ライセンス変更ボット 不在 新規バージョンの作成 node id=123 lat="50.1" lon="8.1"

amenity="レストラン"
name="Luigi's"

API コールの変更点

Object history call /api/{node|way|relation}/{id}/history

The history call works as before, and will always return at least one historic version (the latest version). However, some historic versions may be missing from the response. There is no guarantee that a version 1 will exist, for example.

It is possible to modify the request by adding "?show_redactions=true". If you do this, and are authenticated with an account that has moderator privileges, you will be shown the historic versions, with an extra attribute called "redacted", which points to the ID of the redaction process/type - currently 1 for objects redacted because they were contributed by decliners, and 2 for objects redacted because they carried over such information.

If you are not logged in with a moderator account, ?show_redactions=true has no effect.

The history XML for the node in the earlier example would look like this without "show_redactions=true":

<node id="123" version="1" lat="50.1" lon="8.1" uid="1" user="bob" changeset="1" timestamp="...">
   <tag k="amenity" v="restaurant" />
</node>
<node id="123" version="4" lat="50.1" lon="8.1" uid="4" user="OSMF Redaction Accountt" changeset="4" timestamp="...">
   <tag k="amenity" v="restaurant" />
   <tag k="name" v="Luigi's" />
</node>

If you put "show_redactions=true" and have moderator privileges, then you get:

<node id="123" version="1" lat="50.1" lon="8.1" uid="1" user="bob" changeset="1" timestamp="...">
   <tag k="amenity" v="restaurant" />
</node>
<node id="123" version="2" lat="50.1" lon="8.1" uid="2" user="alice" changeset="2" timestamp="..." redacted="1">
   <tag k="amenity" v="restaurant" />
   <tag k="cuisine" v="pizza" />
</node>
<node id="123" version="3" lat="50.1" lon="8.1" uid="3" user="charlie" changeset="3" timestamp="..." redacted="2">
   <tag k="amenity" v="restaurant" />
   <tag k="cuisine" v="pizza" />
   <tag k="name" v="Luigi's" />
</node>
<node id="123" version="4" lat="50.1" lon="8.1" uid="4" user="OSMF Redaction Account" changeset="4" timestamp="...">
   <tag k="amenity" v="restaurant" />
   <tag k="name" v="Luigi's" />
</node>


バージョンごとのアクセスコール /api/0.6/{node|way|relation}/{id}/{version}

Will return a HTTP 403 Forbidden message if an attempt is made to access a "redacted" version.

If "?show_redactions=true" is added and you are authenticated with an account having moderator privileges, you will get a normal response with a "redacted" attribute.

In addition to this, any request for a deleted node does not return a "lat" and "lon" attribute any longer. This was the case before.

Changeset 情報の呼び出し /api/0.6/changeset/{id}

ライセンスの変更に同意しなかったユーザーが作成した特定の changeset は、現時点ではメタデータ (created_at、closed_at、bbox、num_changes) とすべてのタグがそのままアクセスできる状態です。

将来的にはユーザーがライセンスの変更に同意しなかった場合、すべてのタグを省略するように変える可能性があります。

Changeset ダウンロード呼び出し /api/changeset/{id}/download

以前と同様に、Changesets をダウンロードできますが、編集された過去版は Changesets から削除されます。これは、賛成者と反対者の両方の Changesets に影響する可能性があります。反対者の貢献の一部が著作権の保護外と判断できる場合、引き続き表示されます (つまり、すべての反対者の Changesets が必ずしも空とは限りません)。

これにより、コメント(「再調整したラウンドアバウト」)と Changesets の内容を比べると、見た目に矛盾が生じる可能性(例えば削除がいくつかに限定された)に注意してください。

モデレーター権限があっても、完全な Changesets をダウンロードする方法はありません。

その他の API 呼び出し

変更なし。

dump ファイルの変更点

Planet file

変更なし(ライセンスの変更により一部のオブジェクトが削除/変更されましたが、構造上の変更はありません)。

Planet File 全履歴

編集済みのオブジェクト バージョンは失われます。制限付きメタデータを備えたプレースホルダー・オブジェクトの発行を決定するかもしれませんがが、これは現状ではまだ決まっていません。削除されたノードはすべて、緯度/経度の属性を失います。

changesets-latest.osm.bz2

現在は変更なし。後日、却下の changesets からタグを除去する作業あり。