コードで語るマニフェスト:自治体データとシステムをエンジニア視点で検証する

IT政策提案
コードで語るマニフェスト:自治体データとシステムをエンジニア視点で検証する

どうもー、おかむーです!今日はちょっとエンジニアっぽい話をしますよ〜政府・自治体のデータ公開とシステム標準化を「コードで語るマニフェスト」ってコンセプトで見ていきます。

  • これ見てくださいよ:国はJapan Dashboardやe-StatのAPIを整備してるけど、自治体側はPDF多めで機械処理が難しい!
  • 結論:標準化API+機械可読KPIスキーマがあれば、交付金の実績検証や市民参加も一気に進む!
  • 提案:CSV/JSON公開・OpenAPI仕様・中央のカタログ(CKAN的)・差分公開で監査可能にする。

結論

国の方針(デジタル庁: https://www.digital.go.jp/、総務省の標準化計画: https://www.soumu.go.jp/)は正しい方向に向かってます。ただ、現場(自治体)のデータ公開フォーマットがバラバラで、KPIの実績はPDFレポートに埋められてることが多く、エンジニア的に言うとAPI一本で解決する話なんですよね。要するに「機械可読化」と「標準スキーマ化」を早急にやるべき、ということです。

レポート本文

背景と現状ソース

  • e-Stat / 統計ダッシュボード(https://dashboard.e-stat.go.jp/)は良い例で、APIやグラフ表示がある。エビデンスは機械で取れる!
  • Japan Dashboard(https://www.digital.go.jp/resources/japandashboard)も公開のハブを目指している。
  • 一方で、デジタル田園都市交付金の実績評価や自治体ごとの報告はPDF中心(例:交付金KPIガイドラインPDF: https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf、須賀川市の実績評価ページ: https://www.city.sukagawa.fukushima.jp/…)で、スクレイピングやOCRが前提になりがち。

技術的問題点(要するに何が困るか)

  • PDF埋め込み表:テーブルが画像/非構造化で、CSV/JSONに変換するコストが高い
  • スキーマ不在:自治体ごとにKPI名称や単位が違うため横断集計が難しい
  • APIの未整備:一括取得APIがない、認証・バージョン管理が不十分
  • 監査性の欠如:差分や変更ログが公開されないため、後追い検証が困難

実績ギャップの見え方

国が提示するKPIと地方の実績報告を比べると、「実績(見込み)」と「計画」欄が別ファイル・別フォーマットで、定期更新もまちまち。須賀川市の外部有識者検証のように個別に検証しているケースはあるけど、これを全国横断でやるにはデータ自動集計が必須。

技術的改善提案(具体的)

  • 統一KPIスキーマ(JSON Schema)を定義する
  • - 例フィールド: project_id, fiscal_year, kpi_code, kpi_label, unit, target_value, actual_value, last_updated, source_url

  • OpenAPIで自治体ごとの公開APIを標準化
  • - 認証はAPIキーまたはOAuth2、レスポンスはJSON、ページネーションと更新日時を必須に

  • 中央カタログ(CKANやGitHubリポジトリ)にメタデータ登録
  • - データセットのライセンス・更新頻度・スキーマを明示

  • PDFは原本として残しつつ、機械可読のCSV/JSONを主流に
  • - 差分(delta)を公開し、変更履歴を追えるようにする

  • バリデーションCIを導入
  • - 提出時にスキーマチェックを自動化してフォーマットエラーを弾く

    具体的なコード例(データ取得〜検証のイメージ)

    # e-Stat API取得(仮)とPandasでの簡単検証
    

    import requests

    import pandas as pd

    API_KEY = 'YOUR_API_KEY'

    url = 'https://api.e-stat.go.jp/rest/3.0/app/getSimpleStatsData'

    params = {'appId': API_KEY, 'statsDataId': '0003412310', 'lang': 'J'}

    r = requests.get(url, params=params)

    仮にJSONを返す前提で処理

    data = r.json()

    df = pd.json_normalize(data['GET_STATS_DATA']['STATISTICAL_DATA']['DATA_INF']['VALUE'])

    print(df.head())

    要するに、APIがちゃんとあればこれくらいで集計できるということです。

    運用面の提案

    • 中央(国)側はスキーマ・サンプル実装・テストデータを用意して自治体に導入支援を行う(総務省の標準化PMOツールの活用: https://www.soumu.go.jp/)
    • 交付金やKPIは提出フォーマットをCSV/JSONに限定し、PDFは補完資料にする

    まとめ

    現状:国はダッシュボードや標準化方針を出しているけど、現場のデータはまだPDF多めで機械可読性が低い。結論:OpenAPI+JSON Schema+中央カタログで一気に生産性と透明性が上がる。技術的には十分実現可能で、重要なのは運用ルールと支援体制です!

    おかむーから一言

    テクノロジーで社会をアップデートするのは現場のデータを“使える形”にすることから。ガバメントももっとコードで語ってほしいですね、俺は本気で手伝いますよ!