cd4pt / feed-format

フィードの全体的なフォーマット定義するためのリポジトリおよびプロジェクト管理用(参加はこちらから)
4 stars 1 forks source link

データ形式は何がよいのか #2

Open ryo-a opened 5 years ago

ryo-a commented 5 years ago

現時点ではJSONで考えているのですが

等色々あると思います。どれが良いか議論できれば幸いです。

ryo-a commented 5 years ago

現時点で個人的にはJSONベースがよいと考えています。

RESTful APIでのデファクト・スタンダードである

JSONはあらゆるAPIで採用されているおなじみの形式です。 交通に馴染みのない開発者やデータサイエンティストでも、簡単なドキュメントを読めばデータが利用でき、GTFS等のように「馴染みのない者はまずは規格の仕様を把握する」という手間が省けます。

データをオープンにする事だけではなく、広く使用してもらうことを考えると「(デファクト・スタンダードという)巨人の方に乗る」のも重要ではないでしょうか。

パースの容易さ

多くのプログラミング言語において、標準ライブラリでパースできます。 言語レベルで読み書きできる仕様であれば、独自形式パースするためのライブラリの作成・メンテナンス等を行う必要がありません。

単なるGTFSの派生になると利用しづらくなる

CD4PTに独自の定義が追加されていくことで、既存のGTFSパーサーでは対応できなくなる恐れがあります。 それでは結果的に乱立しているGTFS亜種を新たに1つ作ることと変わらないのではないかと考えています。

それを回避するには各プログラミングのライブラリを作成することが考えられますが、対応する人的・時間的コストが大変です。前述の通り、JSONは各言語レベルで対応されているので、JSONの枠に納めればパーサーについてはそちらに丸投げしてしまうことができます。

その他

toyotamakenkyusyo commented 5 years ago

データ形式(フォーマット)と項目は別に考えるもので、ここで行うのはデータ形式についてだと思います。 GTFSはCSVのZIP(GTFS-RTではプロトコルバッファ)という形式と項目の双方を定めていますが、ここでの比較ではCSVのZIPまたはプロトコルバッファという形式面のみが問題かと思います。 GTFSのCSVは追加項目が入れやすいので亜種のパースはそれほど難しくないとは思います。しかし、CSVの表現力の低さ、ZIPの扱いにくさ、GTFS-RTのプロトコルバッファの特殊性を考えると、JSONベースの方がいいと思います。