祝日.csv の URL はデジタル庁のデータカタログから取得しよう

ちょっと前に話題になってた、祝日一覧が記載された syukujitsu.csv の URL (ファイル名)が予告なく変更されて混乱をもたらした件、結局は URL の変更が revert されて騒動は収まりました。

見られた意見には、

  • ファイル名を変更するなんてとんでもない!
  • 自分でホストすればよかったのでは?(直リンはよくない)

などがありました。

件の syukujitsu.csv は、内閣府のホームページ で公開されていますが、このページだけを見ても、実はこのファイルのライセンスについての記述は見つかりません。だいぶ不便ですし、内閣府はデータ公開している意識も薄いと感じられます。

一方、デジタル庁が管理している https://www.data.go.jp/ というオープンデータカタログサイトがあり、syukujitsu.csv はこちらにも(前述のサイトへの参照が)掲載されています。

以下はそのデータセットへのリンクです。

https://www.data.go.jp/data/dataset/cao_20190522_0002/resource/d9ad35a5-6c9c-4127-bdbe-aa138fdffe42

image.png

こちらには、ライセンスが CC-BY と明記されており、これがオープンデータであることを示しています。

CC-BY とは、データの出典を示せば、それをどのように利用しても(加工しても、営利目的で使用しても、etc)構わないというもので、とても自由度の高いライセンスです。

つまり意見で散見された「自分でホストすれば?」については「可能」だと言えます(出典を示せば)。CSV のまま github などにホストしてもよいし、JSON に加工しても構いません。どんどんやりましょう。

次に「ファイル名を変更するなんてとんでもない!」についてですが、これは「予告なく(短絡的に)」変更したのが問題だったと考えますが、計画的な変更が行われた場合、このオープンデータカタログから実URLを取得して利用することができます。

オープンデータカタログは CKAN という OSS が使用されており、そのデータ(データセットという)には一意な「データセットID」が付与されています。

この祝日情報の場合 cao_20190522_0002 がそれにあたります。

また、CKAN には API も用意されており、「データセットIDを指定して、データセットのメタデータを取得する」ことができます。

ここまで来ればもうおわかりと思いますが、CKAN の API を使って、祝日データセットのメタデータを取得し、そこから実データのURLを取得することで、 データカタログが適切に運営されていれば 、実URLの変更の影響を受けることはなくなります。

data.go.jp の API の使い方については、メニューの「開発者向け情報」 > 「開発者向け情報」から、「APIを使用したJSON形式でのメタデータの取得について( Excel形式 )」が入手できます(なんで EXCEL? というツッコミは大いにすべきでしょう)。

開発者向け情報に記載されている、data.go.jp の API のエンドポイントは https://www.data.go.jp/data/apiです。

祝日.csvのデータセットIDは cao_20190522_0002 であり、メタデータの取得は次のような URL で行えます。

curl "https://www.data.go.jp/data/api/action/package_show?id=cao_20190522_0002"

返却される JSON は次のようになります。

{
  "help": "https://www.data.go.jp/data/api/3/action/help_show?name=package_show",
  "success": true,
  "result": {
    "license_title": null,
    "maintainer": null,
    "relationships_as_object": [],
    "private": false,
    "maintainer_email": null,
    "num_tags": 1,
    "id": "95eac548-e03d-4800-9d02-82e5baa06b2b",
    "metadata_created": "2019-06-10T01:54:04.060902",
    "metadata_modified": "2022-08-17T02:14:55.463035",
    "author": null,
    "author_email": null,
    "state": "active",
    "version": null,
    "creator_user_id": "976f266d-15ff-4f84-b381-fe98d3d6621a",
    "type": "dataset",
    "resources": [
      {
        "cache_last_updated": null,
        "last_modified_date": "2019-04",
        "package_id": "95eac548-e03d-4800-9d02-82e5baa06b2b",
        "datastore_active": false,
        "id": "d9ad35a5-6c9c-4127-bdbe-aa138fdffe42",
        "size": 19000,
        "copyright": "",
        "state": "active",
        "last_modified": null,
        "hash": "",
        "description": "昭和30年(1955年)から令和2年(2020年)国民の祝日等(いわゆる振替休日等を含む)",
        "format": "CSV",
        "mimetype_inner": null,
        "url_type": null,
        "mimetype": null,
        "cache_url": null,
        "name": "昭和30年(1955年)から令和2年(2020年)国民の祝日等(いわゆる振替休日等を含む)(csv形式:19KB)",
        "language": "jpn",
        "created": "2019-06-10T10:54:04.094557",
        "url": "https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv",
        "resource_license_id": "CC-BY",
        "position": 0,
        "revision_id": "67674436-238b-4533-9f33-a3c631336596",
        "resource_type": null
      }
    ],
(以下略)

last_modified_date とか created をちゃんとメンテしてくれよ(版<バージョン>の管理もできるはず)、と思いますが、url に目的のファイルへのリンクが入っていることが確認できるので、プログラムでここを取り出せばよいことになります。

ということで、 data.go.jp の紹介でした。 ここには、国が公開するオープンデータのすべてが掲載されるべきなので、積極的に活用して 活発な運用を促していきたい ところです。

けど、祝日.csv 程度の少量データならセルフホストも全然OKだし、ライセンス的にも許可されています。本件に関しては、自分でもセルフホストを選択すると思います。