🍉

GBFS(General Bikeshare Feed Specification) v3.0の変更点

2023/08/21に公開

本記事では、
GBFS Version 3.0での変更点を紹介いたします。
今回は約2年半ぶりのメジャーアップデートです。

GBFSの基本的な情報についてはこちらの記事を御覧ください。

https://qiita.com/kumatira/items/f9229c21d9f0db3b5ae3

v3.0 Version

ターゲットとしては2022年中に v3.0がリリースされる予定でしたが、
おそらく2023年にずれ込む様子です。

[追記]
2023年8月時点では、v2.3 が引き続き "current version" ですが、v3.0 が "Ready for implementation"(実装の準備OK)というステータスになっています。

v3.0では、GitHubのissueにて提案されていた
8つの変更点が反映されます。

GBFS の Version history のページをもとに、変更点を順にさらっていきます。

v3.0-Draft (future version)

#182 - Require license_url, add attribution fields
#247 - Required rotation of deeplinks vehicle identifier
#328 - Change to OSM Opening Hours format for times and dates
#351 - Add Phone Number to Field Types
#352 - Remove string field type from price field
#354 - Semantic Changes: Bike becomes Vehicle
#370 - Extending vehicle_types.json
#384 - File requirements and Clarifying changes

https://github.com/NABSA/gbfs/wiki/Complete-Version-History

#182 - Require license_url, add attribution fields

データのライセンスの明記の必須化と参照フィールドの追加

変更のあるファイル:

  • system_information.json

変更内容:以下の項目が追加されました。

license_url がオプションから必須に変更。
また、今後は license_url ではなく、the SPDX License List にある Identifier で記述。

NULLの場合には、public domain : CC0 1.0 Universalとみなされる。

(利用者のプライバシーを保護する方法として)車両 ID のローテーション

GBFSのリアルタイムデータでは、随時データをモニターすることでOD(Origin-Distination)マップを作成可能である。特にステーション(ポート)で貸し借りを行わない free flowting形式(ドッグレス形式)のシェアサイクルでは、これは大きな問題となる可能性がある。例えば、ユーザーが自宅前で借りて自宅前で返却した場合などは利用者の家を特定できてしまいプライバシーの問題が懸念されます。
そのため、bike_idをローテーションしてODマップを作成できないように対策する。

変更のあるファイル:

  • free_bike_status.json

変更内容:以下の項目が追加されました。

bike_id をローテーション(追跡できないように、利用の貸出時、返却時にbike_idを変更)

#328 - Change to OSM Opening Hours format for times and dates

時間や日付をOpenStreetMapの営業時間のフォーマットへの変更

変更のあるファイル:

  • system_information.json
  • station_information.json

変更内容:以下の項目が追加されました。

https://wiki.openstreetmap.org/wiki/Key:opening_hours

#351 - Add Phone Number to Field Types

電話番号の項目を新規追加

変更のあるファイル:

  • system_information.json

変更内容:以下の項目が追加されました。

カラム名は未定だが、
新しく phone number が追加される

#352 - Remove string field type from price field

料金フィールドから文字列タイプを削除

変更のあるファイル:

  • system_pricing_plans.json

変更内容:以下の項目が追加されました。

price にて、
string と non-negative float のデータタイプが許されているが、
non-negative floatに一本化。

#354 - Semantic Changes: Bike becomes Vehicle

(電動キックボードなど多様な乗り物がオープンデータ化されているため)"Bike" ではなく "Vehicle" という単語の使用への変更

変更のあるファイル:

  • gbfs.md
  • README.md

変更内容:
多様な乗り物がサービス提供されているため、
bike という表現ではなく、vehicle に表記を統一する。

#370 - Extending vehicle_types.json

乗り物タイプの種類の追加

変更のあるファイル:

  • vehicle_types.json

変更内容:以下の項目が追加されました。
form_factorの内容を追加。

  • cargo_bicycle
  • scooter_seated
  • scooter_standing

スペックに以下の項目を追加

  • wheel_count
  • maximum_permitted_speed
  • rated_power

#384 - File requirements and Clarifying changes

ファイルの必須項目とその変更の明確化

変更のあるファイル:

  • station_information.json
  • free_bike_status.json

変更内容:

  • ユニークな systemIDという要件を、「SHOULD」から「MUST」に変更。
  • すべてのendpoint と deeplink を HTTPS化

manifest.json の追加

追加されるファイル:

追加内容:

  • system_id 毎のGBFSのバージョンとURLの管理

サンプル:

manifest.json
{
  "last_updated":1667004473,
  "ttl":0,
  "version":"3.0-RC",
  "data":{
    "datasets":[
      {
        "system_id":"example_berlin",
        "versions":[
          {
            "version":"2.0",
            "url":"https://berlin.example.com/gbfs/2/gbfs"
          },
          {
            "version":"3.0-RC",
            "url":"https://berlin.example.com/gbfs/3/gbfs"
          }
        ]
      },
      {
        "system_id":"example_paris",
        "versions":[
          {
            "version":"2.0",
            "url":"https://paris.example.com/gbfs/2/gbfs"
          },
          {
            "version":"3.0-RC",
            "url":"https://paris.example.com/gbfs/3/gbfs"
          }
        ]
      }
    ]
  }
}

補足

実際のver3.0はまだリリースされていないので、
issueから読み取った今回の記事の内容と実際のリリース内容とに違いがあれば、随時修正いたします。

GBFSを活用して広めていきましょう。

Discussion