コードで語るマニフェスト:日本政府データの機械可読性をエンジニア視点で検証する

どうも〜おかむーです!今天来点技术味儿的公共数据聊骚,带着「コードで語るマニフェスト」的心情,从工程师角度审视日本政府/自治体公开数据的现状和改进路线图。
- 这篇文章基于政府与地方公开CSV/PDF资料(例:notice.go.jp、digital.go.jp、cas.go.jp、各地オープンデータカタログ)实地观察
- 结论是:有公开但不够「AI/機械可読」——格式、エンコーディング、メタデータ、API缺失是主要痛点
- 提案包括:统一Schema、API优先、CI数据质量驗証、与RDF/JSON-LD结合以加速利活用
結論
政府已经在把数据放出来,但从工程视角看,离「机器随手可用」还有一段距离。CSV虽多,但格式不统一、编码混乱、缺乏スキーマとメタデータ、API不足,导致数据二次利用成本高。要达到“AI-Ready社会”的目标(参见内閣官房资料),需要从规范、发布流程、技術スタック三个层面做工程化改造。
レポート本文
状况速写:哪些东西能抓到、抓不到
これ見てくださいよ:检索结果里有多种CSV资源——
- notice.go.jp 的 status_notice.csv(例)提供了公告状况,但没有统一的描述文档
- 内閣府、デジタル庁在公开CSV样本(如 https://www5.cao.go.jp/.../d1-1-4.csv、https://www.digital.go.jp/.../resources_survey_answers_04.csv)讨论过结构化数据
- 各県市(例:東京都オープンデータカタログ、地方オープンデータ)已放很多CSV,但质量参差不齐
- 一些列表(病院列表等)以CSV发布(https://www.digital.go.jp/.../xxxxxx_hospital.csv),但经常缺少统一字段名、坐标精度说明、ライセンス说明
要するに:数据「有」但是不够「可用」。
技术问题细分(工程师角度)
- エンコーディング混乱:BOM付きUTF-8、Shift_JIS、ISO-2022混在,导致读取时出错。这在实际爬取时极耗时间。
- スキーマ不一致:同一概念在不同数据集中字段名不统一(例:lat/lon、緯度/経度、latitude/longitude),类型也不固定(字符串 vs 数値)。
- メタデータ缺失:缺少更新頻度、作成日時、正規のライセンス、フィールド説明,二次利用判断难。
- API不統一或缺失:很多データ只放CSV/Excel,沒有REST/GraphQL接口,实时性和フィルタリング能力弱。
- PDF埋め込みデータ:统计資料仍大量以PDF发布,OCR/テーブル抽出成本高。内閣官房也在讨论機械可読性ルール(参照 https://www.cas.go.jp/.../data8_siryou1.pdf)。
具体例子与代码示例
工程师常用的第一步是读取并标准化CSV。示例代码(Python/pandas):
import pandas as pd
读取时尝试处理BOM与エンコーディング
df = pd.read_csv('https://notice.go.jp/docs/status_notice.csv', encoding='utf-8', engine='python')
统一字段名
df = df.rename(columns=lambda c: c.strip().lower()
.replace('緯度','latitude')
.replace('経度','longitude'))
转换类型
df['latitude'] = pd.to_numeric(df['latitude'], errors='coerce')
简单校验
print(df[['latitude','longitude']].dropna().head())
工程师的直觉:上面这类处理太常见,政府如果提供API并说明Schema,就能省掉大量前処理成本!API 示例(curl)说明如何设计:
curl 'https://api.pref.example.jp/v1/hospitals?limit=100' \
-H 'Accept: application/json'
政策数值目标 vs 实绩
政府文件常给出中长期目标(例如推动AI-Ready社会、デジタル行財政改革),但公开的数据难以证明进展。要评估政策效果,必须有:
- 可比的时间序列数据(同一スキーマ、同一粒度)
- 指標の定義と算出式(可再現性)
改善提案(実装可用の工程案)
- 各省庁で共通のフィールド辞書を作る(例:住所、緯度経度、更新日、ライセンス)。
- スキーマをJSON-Schemaで公開し、データ公開時にバリデーションを自動実行。
- CSVはバックアップ用に残すが、主力はREST/GraphQL API。APIはCORS、ページネーション、フィルタを備える。
- 中央のデータカタログ(例:portal.data.metro.tokyo.lg.jpや各地カタログ)にAPIエンドポイントを明示。
- 毎datasetにmachine-readable license、更新日時、作成方法(測定器/集計ルール)を添付。
- GitベースでCSV/Schemaを管理、PRで差分チェック、データ品質の自動テスト(欠損、型チェック、外れ値検出)。
- Digital庁・内閣官房の決定(機械可読性ルール)をAPI/公開プロセスに直接埋め込む。
- 統合的にデータを連結するため、主要データセットはJSON-LDを提供して構造化リンクを容易にする。
活用シナリオ(こう使えるよ)
- 地方自治体が公開する病院CSV(緯度経度付き)をAPIで取得→地図と連携して災害対応ダッシュボードを即座に立ち上げ
- 新車販売台数の時系列をクレンジングして政策効果を可視化→補助金や税制改定のエビデンスに
まとめ
エビデンスとしては「データは出ているが、コードで語れるレベルには至っていない」。エンジニア的には、スキーマの統一、API優先、メタデータ必須、CIによる品質保証の導入がセットで必要。内閣官房・デジタル庁が提示する機械可読性ルールは方向性として正しいが、現場への落とし込み(ツール、テンプレ、バリデーション)が重要だ。
おかむーから一言
技术能把政策变成可检证的承诺,这才叫真正的民主だ!エンジニアとして一緒に作り直そうぜ!
信息来源
- https://notice.go.jp/docs/status_notice.csv
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/ea851c04-54d0-43ab-b352-4cb537ee5347/20210609_resources_survey_answers_04.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/0066e8a8-6734-44ab-a9a9-8e09ba9cb508/xxxxxx_hospital.csv
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/data8/data8_siryou1.pdf
- https://www.zhihu.com/question/290714454
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/kakusyoDX4/kakusyoDX4.html
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/data8/data8_siryou2.pdf
- https://www.zhihu.com/question/6430289390
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://portal.data.metro.tokyo.lg.jp/
- https://opendata.pref.tokushima.lg.jp/dataset/5036.html
- https://www.harp.lg.jp/opendata/dataset/79.html
- https://opendata.pref.aomori.lg.jp/dataset/1480.html
相关报告

代码で語るマニフェスト:以香川县公共设施预约系统为例的技术与数据审视
以香川县公共设施预约系统为例,从API、数据格式与标准化角度检视自治体系统,给出可执行的技术改进方案与代码示例。

用代码说话的宣言:从机器可读性到API化,解读日本数字化政策的数据工程路径
从Digital庁到e-Stat,评估日本数位政策的数据交付形态,提出API化与工程化改进路线,附代码与验证示例。

コードで語るマニフェスト:日本政府データをエンジニア視点で検証する
政府のマニフェストをデータとコードで検証。PDF多用やAPI断片化を指摘し、e-StatやJapan Dashboardを例に具体的な改善案とコード例を提示します。