コードで語るマニフェスト:政府データをエンジニア視点で検証するレポート

IT政策提案
コードで語るマニフェスト:政府データをエンジニア視点で検証するレポート

どうも〜おかむーです!今日は政府・自治体が公開しているデータ群をエンジニア的に検証してみますよ〜

  • CSVがあるのは良いけど、機械可読性の担保が足りない
  • KPIは出しているが、実績の時系列・一次データが見えないケースが多い
  • API化、メタデータ整備、スキーマ検証で劇的に使いやすくなる

結論

公開されているCSVや資料は「土台」ができてきているんですけど、エンジニア目線だと「API一本」「スキーマ付き」「ライセンス明記」という小さな改善で再利用性が激増します。要するに、今あるデータを機械がスムーズに読める形に揃えることが最優先です。

レポート本文

参照した公開データ(例)

これ見てくださいよ:

  • NICTER注意喚起のCSV(https://notice.go.jp/docs/status_nicter.csv) — 機械可読CSVがある点は素晴らしい
  • 環境省のCSV(https://www.env.go.jp/content/900398071.csv)や厚労省のCSV(https://www.mhlw.go.jp/content/001429177.csv) — 直接CSV公開は好材料
  • 総務省の分類項目CSV(https://www.soumu.go.jp/main_content/000420038.csv) — コード一覧の公開はデータ連携に有用
  • デジタル田園都市関連の施策資料(Digital庁/地方創生PDF群) — KPIあるがPDF中心で機械判読性が低い

現状評価:何が良くて何がまずいか

良い点

  • CSV直置きはダウンロードして解析に入れるまでのボトルネックが少ないです
  • コード一覧(総務省)や領域別データは基礎情報として重要で、連携の土台になります

課題点

  • メタデータ不足:スキーマ(列の型・意味)、更新頻度、ライセンスが明示されていないことが多いです。要するに“この列は何の単位か?”が分からない場合があるんですよね
  • API非整備:CSVを直接fetchして解析するワークフローはあるけど、エンドポイントやフィルタ、ページネーションがなくて運用・自動化が難しい
  • フォーマット不統一:エンコーディング、日時表記、コード体系がばらばらでETLが面倒
  • KPIの実績データがPDFに埋もれている:デジタル田園都市交付金の評価資料はPDF主体で、一次データの時系列が出てこない

技術的にどう改善するか(具体案)

1) スキーマとメタデータの公開

  • 各CSVに対応するJSON Schema / CSVW(CSV on the Web)メタデータを用意
  • 例:列名・型・単位・Null許容・コード表へのリンクを用意する

2) API化とOpenAPI Spec

  • REST/GraphQLの公開でフィルタ・ソート・日付レンジ取得を可能に
  • OpenAPIで仕様を配布するとクライアント生成が楽になりますよね

3) 機械可読なKPI公開

  • 交付金や評価はPDFに加えて、KPIの時系列CSV/JSONを公開
  • プロジェクト毎にユニークID、ジオコード、年度別実績を紐付ける

4) データ品質の自動検証パイプライン(CI)

  • PanderaやGreat Expectationsなどでスキーマ検証をCIに組み込む
  • 例:日付列の整合性、コード表に存在しない値の検出など

5) ライセンスと永続ID

  • 機械可読のライセンス(SPDX等)を明記、データセットにDOIや永続URLを付与

コード例(実践的)

エンジニア的に言うと、まずCSVを叩いてスキーマ検証するところから始められます。これ見てくださいよ、簡単なPython例:

import requests

import pandas as pd

url = 'https://notice.go.jp/docs/status_nicter.csv'

resp = requests.get(url)

open('status_nicter.csv', 'wb').write(resp.content)

df = pd.read_csv('status_nicter.csv', encoding='utf-8')

print(df.dtypes)

スキーマ検証(Panderaのイメージ):

import pandera as pa

schema = pa.DataFrameSchema({

'date': pa.Column(pa.DateTime),

'region_code': pa.Column(pa.String, nullable=False),

'alert_level': pa.Column(pa.Int)

})

schema.validate(df)

CSVをJSON-LDに変換して再利用性を高める例も有効です。要するに、データを単に置くだけじゃなくて“意味”を添えるのが鍵です。

政策評価の視点:KPIと実績のギャップ

  • デジタル田園都市交付金の報告(prefecture PDF群や内閣府報告書)を見ると、KPI設定はあるものの「原データの公開」が不十分です
  • 自己評価主体で機械的な検証が難しいケースがあるので、第三者が追える時系列データを出すべきです
  • 具体的には、プロジェクト単位で以下を公開すると良いです:採択ID、開始・完了日、投入額、KPIの年度別達成率、住民アンケートの生データ(匿名化)

オープンデータの利活用案

  • データカタログ(CKAN等)に登録して、OpenAPIとCSVWメタデータを紐付ける
  • 地方自治体間で共通のコード辞書(総務省の分類をベース)を使うことで横断分析が可能に
  • AI活用を念頭に、列名の英語併記・カテゴリラベルの標準化で国際連携も狙える

まとめ

現場のCSV公開は素晴らしいスタートです!ただ、エンジニア目線だと「スキーマ」「API」「機械可読なKPI」「ライセンス」が揃わないと再利用コストが高すぎます。一次データの公開、メタデータ整備、自動検証パイプラインの導入で、政策の透明性と再現性がぐっと上がりますよ。

おかむーから一言

テクノロジーで社会をアップデートするって言うけど、まずはデータをちゃんと読める形にすることがスタートなんです。エンジニアの力で行政をもっと開かれたものにしていきましょう!