用代码说话的宣言:从数据与工程视角审视政府系统

IT政策提案
用代码说话的宣言:从数据与工程视角审视政府系统

大家好,我是おかむー!今天来聊一件很接地气又很工程师的事:政府和自治体的数据、系统和它们的可用性。这篇文章用代码和工程思维去验证政策承诺,给出可落地的改善建议~

  • 这篇三句话要点:
- 政府数据里有好资料也有“埋在PDF”的痛点,机器可读性不够;

- 案例观察(Digital庁、デジタル田園都市、須賀川市)显示KPI公开和実績对齐还不稳定;

- 可以通过统一API、数据目录、Schema校验与CI/CD把政策宣言变成可监测的代码。

結論

简短结论:政策要有代码化的“可测性”。也就是把 KPI、数据源、更新频率、格式、接口都写成可机读的规范(OpenAPI/JSON Schema/DCAT),并在发布流程里把数据质量当成CI的一环。要不然承诺很漂亮,数据却抓不住、比对不了、自动化也做不了。

レポート本文

まず、これ見てくださいよ:

  • デジタル庁(digital.go.jp)正在做顶层协调,但各地方の実装差がある;
  • 「デジタル田園都市構想」相关的交付金KPI指南(内閣府/地方創生ガイドライン)在PDF里规定了評価方式,但实际実績常在地方自治体页面或レポート(例:須賀川市の実績評価)以HTML/PDF形式散落;
  • 政府数据仓库中存在CSV(例:notice.go.jp 的 NICTER CSV)与各种gov域下的CSV文件,但命名、编码、字段不统一。

問題点(技术视角):

  • PDF vs CSV:多くのレポートがPDFで公開されており、テーブルは機械読取しにくい。要するに、人間は読めてもコードは読めないということです。
  • スキーマ不統一:同じ意味の指標が自治体間で列名・単位が違う。要するに正規化されてないデータベースを横串にできない。
  • 更新/メタ情報不足:更新日時、更新頻度、ソースの項目説明が欠落。要するに信頼できる監視が組めない。
  • APIが不在/限定的:CSVを落とすだけのパブリックなAPIがないケースが多く、差分取得や認証・レート管理も考慮されていない。

コードで検証する小さなワークフロー(例)

1) CSVが公開されている場合:Pythonで取得してKPI差分を算出

import requests

import pandas as pd

url = 'https://www.city.sukagawa.fukushima.jp/shisei/gyoseiunei/keikaku/chiho_sosei/1015604/4045.csv'

resp = requests.get(url)

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

df = pd.read_csv('sukagawa.csv')

仮に 'target' と 'actual' 列があれば差分を算出

if 'target' in df.columns and 'actual' in df.columns:

df['gap'] = df['actual'] - df['target']

print(df[['indicator','target','actual','gap']])

要するに、API一本で取れればもっと早いんですよね。PDFしかない場合はCamelotやTabulaで抽出しますが、抽出精度とメタデータ(列の意味、単位)の保証が必要です。

2) スキーマ検証をCI化する提案

  • 各KPIデータにJSON Schemaを付与しておく。
  • GitHub Actions等でCSV→パース→Schema検証を毎日自動実行。
  • 異常が出たらSlack/メールで担当にアラート。

例:JSON Schemaで要求するフィールド

{

"type": "object",

"properties": {

"indicator": {"type":"string"},

"period": {"type":"string","format":"date"},

"value": {"type":"number"},

"unit": {"type":"string"}

},

"required":["indicator","period","value"]

}

3) API設計の具体案

  • エンドポイント例:GET /datasets/{dataset_id}/observations?from=2023-01-01&to=2024-01-01
  • レスポンスはNDJSONかJSON-API、行指向データはCSVも併用。
  • OpenAPIで仕様化し、OAuth2やAPIキーで管理。

4) KPIと実績のギャップ分析(須賀川市の例)

  • 手元の公開資料を見ると、交付金のKPI目標値と実績を並べた「評価レポート」はあるが、項目間での横串集計が手動工程になりがち。
  • エンジニア的に言うと、KPIを時系列で取り出せないとトレンド分析や因果推論ができないんです。

オープンデータ活用のポテンシャル

  • 地方創生の評価指標を時系列でAPI化すれば、民間・研究機関のリアルタイムダッシュボード、異常検知(例:突然の資金投入後に効果が出ていない自治体を抽出)などが可能。
  • 交付金の支出と地元経済指標(雇用、店舗数、人口流入)をジョインして因果推定すると、政策効果の定量的な議論ができる。

具体的な改善ステップ(短期〜中期)

  • 短期(今すぐできる):重要レポートのCSV化、CSVファイルにメタデータ(更新日、ライセンス)を付与。既存PDFには抽出済CSVを添付。
  • 中期(3〜12ヶ月):全公開データにJSON Schemaを付与、OpenAPI仕様でAPIを公開。CIでデータ品質チェックを運用。
  • 中長期(1年〜):全国共通のデータカタログ(DCAT互換)、スキーマレジストリ、分析用サンドボックスを用意して、研究者/民間が自由に試せる環境を整備。

コスト感も重要で、全てを一気にやる必要はないです。まずはKPIの上位10指標を選んでAPI化するだけでも、透明性と監視可能性は格段に上がります。

まとめ

  • 政策は宣言だけでなく“可測化”がカギ。データとAPIを設計して初めて政策は検証可能になる。
  • PDFに埋まった表をCSVにするだけでも価値あり。ただしスキーマ・メタデータをちゃんと付けること。
  • 技術的には:OpenAPI、JSON Schema、CIによる品質監視、DCATカタログ化が現実的で効果が大きい。

おかむーから一言

テクノロジーで社会をアップデートするってのは口だけじゃダメで、KPIとデータをコード化して検証可能にすることが第一歩。小さく始めて、ちゃんと測れる仕組みを作ろうぜ!