祝日.csv の URL はデジタル庁のデータカタログから取得しよう
ちょっと前に話題になってた、祝日一覧が記載された syukujitsu.csv
の URL (ファイル名)が予告なく変更されて混乱をもたらした件、結局は URL の変更が revert されて騒動は収まりました。
見られた意見には、
- ファイル名を変更するなんてとんでもない!
- 自分でホストすればよかったのでは?(直リンはよくない)
などがありました。
件の syukujitsu.csv
は、内閣府のホームページ で公開されていますが、このページだけを見ても、実はこのファイルのライセンスについての記述は見つかりません。だいぶ不便ですし、内閣府はデータ公開している意識も薄いと感じられます。
一方、デジタル庁が管理している https://www.data.go.jp/ というオープンデータカタログサイトがあり、syukujitsu.csv
はこちらにも(前述のサイトへの参照が)掲載されています。
以下はそのデータセットへのリンクです。
こちらには、ライセンスが 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だし、ライセンス的にも許可されています。本件に関しては、自分でもセルフホストを選択すると思います。
Discussion