コードで語るマニフェスト:政府CSVの“使える化”を技術で一気に進める方法

IT政策の提案
コードで語るマニフェスト:政府CSVの“使える化”を技術で一気に進める方法

どうも〜おかむーです!今日はちょっとエンジニアっぽい話をしますよ〜

  • データは公開されているけど「使える」状態になっていないことが多い
  • 機械可読性ルール(Digital庁・内閣官房)の決定と現場のギャップがある
  • 小さな技術投資で再利用性が劇的に上がる、というのが今回の主張です

結論

政府・自治体が出しているCSVは量は豊富だけど、スキーマ・メタデータ・版管理が足りなくて再利用コストが高いです。エンジニア的に言うと「API一本で解決する話」も多いけど、まずはCSVに構造化メタデータ(CSVW / JSON Schema)と変更ログ(delta feed)を付けるだけで現場の改善効果が大きいです。

レポート本文

現状観察(実例を見てみる)

これ見てくださいよ:

  • notice.go.jp の status_notice.csv(https://notice.go.jp/docs/status_notice.csv)はCSVで公開されているが、スキーマ記述や更新履歴の明示がない
  • Digital庁や環境省が公開しているCSV(例:digital.go.jpやenv.go.jpの公開資産)には、BOMや文字コードの扱い、列名の揺れが混在している
  • 内閣官房の資料(機械可読性ルールPDF)ではCSVやJSONを推奨しているが、現場での実装ガイドがまだ十分に普及していない

要するに、データはあるけど「コンピュータが信頼して使える」状態になっていないということです。

技術的に見えてくる問題点

  • スキーマ不在:列の意味や型がドキュメント化されていないと、再利用時に型推論で誤認識が起きる
  • バージョン管理不在:変更があっても差分が追えないため、依存するアプリが壊れるリスクが高い
  • 文字コード・エンコーディング:BOM/Shift-JIS/UTF-8の混在でパーサが落ちる
  • メタデータ不足:license, provenance, update_frequencyが明記されていない

エンジニア的に言うと、これってCIで防げる問題が多いんですよね。

具体的な技術提案(すぐできる施策)

1) CSVに対してTable Schema(CSVW/JSON Schema)を付与する

- 要するに「列Xは日付型」「列Yは緯度経度」みたいに書いておく

2) リリース版の管理:semantic versioning+CHANGELOG URLをdataset metadataに入れる

3) 変更差分の公開(delta feed):更新時に差分ファイルを出す。APIを切らない場合でも差分で効率的に取りに行ける

4) 自動バリデーションパイプライン:PRでCSVを更新したら、型・欠損・エンコーディングをCIでチェック

5) サンプルコードやSDKを提供:pandas, frictionless, csvkitのサンプルを公式で出す

コード書く人ならわかると思うんですけど、こんな感じの検査を自動化すればOKです(例):

# 例: frictionless でスキーマ検証

from frictionless import Package, Resource

res = Resource('https://notice.go.jp/docs/status_notice.csv')

report = res.validate()

print(report.to_descriptor())

エンコーディング検出は chardet や python-charset-normalizer で事前チェックすると安心です。

政策の数値目標とデータのギャップを技術で埋める

政策文書(例:内閣官房の機械可読性ルール)には「AI-Ready社会」の目標が書かれているけど、現場のCSVにスキーマが無いとAIに素直に学習させられない。要するに目標と現場の観測可能性にギャップがあるわけです。

具体的には:

  • 政策目標(例:指標Xを四半期で追う)→ データ更新頻度が月1回だと意味が薄れる
  • 指標の定義が曖昧だと自治体間で比較できない

だから技術的には「メタデータの必須化」と「更新頻度の宣言」を政策要件に入れちゃえばいいんです。

実装ロードマップ(小さなステップで導入)

  • フェーズ0:重要データセットTOP100を選定、CSVWでスキーマを付与
  • フェーズ1:CIで自動検証、公開カタログにバージョンを表示
  • フェーズ2:差分配信+簡易API(マイクロサービス)を用意
  • フェーズ3:SDK・サンプルコードと連携アプリの事例を作る

こうやって段階的にやれば自治体の負担も分散できます。

まとめ

  • 公開CSVは増えているけど「使えるデータ」になるまでにはまだ手が必要
  • CSVにスキーマ・メタデータ・変更ログを付けるだけで再利用コストが下がる
  • 小さなCIや差分配信の導入が現場の運用負荷を減らす

おかむーから一言

テクノロジーで社会をアップデートするって、結局小さな改善の積み重ねなんですよ!まずはCSVにちゃんとスキーマを書こう。SDK作るのはそのあとだ!

シェアする