オープンデータの実証用サイトOpen DATA METIを使う
2013/01/30
白書や統計などの公表データがより一層活用しやすくなります~オープンデータ実証用サイト「Open DATA METI」(β版)の公開~(METI/経済産業省)
いいことなので歓迎しますけど、結局活用されないと(僕らの税金的な意味で)何にもならないので、とりあえず昨日APIを弄った時のメモを晒しておきます。
カタログデータはJSONで取れる
/api/search/dataset?q=<検索語> でデータセットを取得できる。
% curl http://datameti.go.jp/data/api/search/dataset?q=タイ { "count":2, "results":[ "whitepaper_tsuushou_2012", "whitepaper_tsuushou_2010" ] }
"whitepaper_tsuushou_2012"は2012年版の通算白書。「タイ」でヒットするのは、2011年のタイの洪水被害の影響の報告のためか。もうちょっと詳しくこの通算白書を調べるときは/api/rest/dataset/<ID>を叩く。
% curl http://datameti.go.jp/data/api/rest/dataset/whitepaper_tsuushou_2012 { "license_title":"クリエイティブ・コモンズ 表示 非改変", "maintainer":"通商政策局企画調査室", "maintainer_email":"", "id":"07b9f5cd-416a-41ee-8d5e-171a395f79ca", "metadata_created":"2013-01-17T06:08:57.785640", "relationships":[ ], "license":"クリエイティブ・コモンズ 表示 非改変", "metadata_modified":"2013-01-28T00:22:17.685101", "author":"通商政策局企画調査室", "author_email":"", "download_url":"http://www.meti.go.jp/report/tsuhaku2012/2012honbun/index.html", "state":"active", "version":"", "license_id":"cc-nd", "type":null, "resources":[ { "resource_group_id":"b2db3948-caec-4dbf-b929-97227b049fb9", "cache_last_updated":null, "package_id":"07b9f5cd-416a-41ee-8d5e-171a395f79ca", "webstore_last_updated":null, "id":"9c1c6bf9-c668-4fa7-a8b0-3a2c13bc546a", "size":null, "ライセンスに関する注意点":"本文中の写真については、著作権はその作成者に帰属するため、CCライセンスの対象外となります。", "last_modified":"2012-09-26T00:00:00", "hash":"", "description":"本文版(HTML)", "format":"html", "tracking_summary":{ "total":0, "recent":0 }, "mimetype_inner":"", "mimetype":"text/html", "cache_url":"", "name":"本文版(HTML)", "created":"2013-01-18T04:59:25.408048", "url":"http://www.meti.go.jp/report/tsuhaku2012/2012honbun/index.html", "webstore_url":"", "position":0, "resource_type":"documentation" }, { "resource_group_id":"b2db3948-caec-4dbf-b929-97227b049fb9", ・・・(以下略)
format=htmlだから、この場合はurlを叩いて取得したhtmlをそのまま見ればいい。formatには"xls"とか"ppt"とかの値が入ることが多いから、実際は直で開くというよりは何らかのビューワなりコンバータなりを通す必要がありそう。"license_id"が"cc-nd"となっている、改変禁止のコンテンツが多いのは非常に残念。
もうちょっと気の利いた検索方法
さっきの方法だと目的のリソースにたどり着くまでに2回APIを叩かないといけず、少し冗長な感じがする。CKANのAPIの解説ページ見てるとそれ以外の検索もできそうなのでそちらを試してみる。
% curl http://datameti.go.jp/data/api/search/resource?url=&format=xls&description=人口&offset=0&limit=10&all_fields=1 { "count":49, "results":[ { "id":"938eae0d-3a8b-42d0-be41-4803f7243d55", "resource_group_id":"2576c62f-e6c0-426b-a3aa-0c051113bcb6", "url":"http://www.enecho.meti.go.jp/topics/hakusho/2010energyhtml/data/201-1-5.xls", "format":"xls", "description":"世界人口の地域別推移と見通し", "hash":"", "name":"世界人口の地域別推移と見通し", "resource_type":"file", "mimetype":"application/excel", "mimetype_inner":"", "size":null, "created":"2013-01-26T03:07:23.276633", "last_modified":null, "cache_url":null, "cache_last_updated":null, "webstore_url":null, "webstore_last_updated":null, "position":127, "package_id":"868318c6-da61-4ac8-8998-cf68ddd0d92a", "tracking_summary":{ "total":0, "recent":0 } }, { "id":"d305d1dd-cd27-4534-b56d-06cd89f215e7", ・・・(以下略)
これで一回のリクエストで目的のリソースまでたどり着けそう。だけどこの検索だとライセンス情報やその他の詳細な情報が取れず、最終的にはもう少し通信が必要になるかもしれない。
話は全然脱線するけど、CKANのAPIの解説ページ見ていてGoogle Refineっていうサービスがあることを知った。詳しくはリンク先のYoutube見てもらうと良く分かると思うけど、大きなサイズのデータを取り込んで、表記ゆれがあるデータを統一表記に変換したり(クレンジング)、クラスタリングしたり正規化したりと、データ分析のあれこれをやってくれるぽい。
ちょっと触って作ったもの
といってもただの静的なhtmlファイルだけど、今日時点でアップロードされている全データを取ってきてリンク集にしてみた。5000件前後のファイルがアップロードされてるようで、タイトル読んで、興味のあるものをファイルダウンロードして資料を流し読みするだけでも中々面白かったりする。量が多すぎて読みきれないけど。
時間があれば、この辺のPython to OpenOfficeのブリッジで遊んでみたい。正月に兄ともこの辺の話が話題に上がった気がするんだけど、このブリッジがあればファイルダウンロードした後でxls2pdfしたりできるんじゃないだろうか(できるか知らないでイメージで言ってる)。何かしらのオープンなフォーマットに変換するとかしたりもできそうだし。
この実証段階のオープンデータ、例えば現状のプロプライエタリなファイルフォーマット(.xlsや.ppt)に依存した状態のままだったりすると本当にどうしょうもないけど、今後良いフィードバックを確実に取り込んで変わっていくことができたら可能性がありそうに見える。
そして電子行政に高い志があって、なおかつ腕っぷしのある人は、このポジションに応募すればいいんだろうな。
内閣官房が「政府CIO補佐官」20人程度を公募
Related Posts
Dockerコンテナ内からホストマシンのルートを取る具体的な方法(あるいは/var/run/docker.sockを晒すことへの注意喚起)
ちょっとだけ読みやすいnode.jsからmongoDBへの接続のコードの書き方と、ハマったところ / (A Bit) Nicer Node.js Code To Read To Connect DB, and other small tips
about me
@remore is a software engineer, weekend contrabassist, and occasional public speaker. Read more