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

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

どうも〜おかむーです!今天来点技术味儿的公共数据聊骚,带着「コードで語るマニフェスト」的心情,从工程师角度审视日本政府/自治体公开数据的现状和改进路线图。

  • 这篇文章基于政府与地方公开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社会、デジタル行財政改革),但公开的数据难以证明进展。要评估政策效果,必须有:

  • 可比的时间序列数据(同一スキーマ、同一粒度)
  • 指標の定義と算出式(可再現性)
例如新車販売台数的CSV(d1-1-4.csv)如果只有單表而缺乏メタデータ,就无法准确对接政策目标如「経済回復の指標」。

改善提案(実装可用の工程案)

  • 标准化スキーマとバージョン管理
  • - 各省庁で共通のフィールド辞書を作る(例:住所、緯度経度、更新日、ライセンス)。

    - スキーマをJSON-Schemaで公開し、データ公開時にバリデーションを自動実行。

  • APIファースト+データカタログ
  • - CSVはバックアップ用に残すが、主力はREST/GraphQL API。APIはCORS、ページネーション、フィルタを備える。

    - 中央のデータカタログ(例:portal.data.metro.tokyo.lg.jpや各地カタログ)にAPIエンドポイントを明示。

  • メタデータとライセンス必須化
  • - 毎datasetにmachine-readable license、更新日時、作成方法(測定器/集計ルール)を添付。

  • CIで数据品質保证
  • - GitベースでCSV/Schemaを管理、PRで差分チェック、データ品質の自動テスト(欠損、型チェック、外れ値検出)。

  • 機械可読性ガイドライン実装
  • - Digital庁・内閣官房の決定(機械可読性ルール)をAPI/公開プロセスに直接埋め込む。

  • JSON-LD / RDFで相互運用性
  • - 統合的にデータを連結するため、主要データセットはJSON-LDを提供して構造化リンクを容易にする。

    活用シナリオ(こう使えるよ)

    • 地方自治体が公開する病院CSV(緯度経度付き)をAPIで取得→地図と連携して災害対応ダッシュボードを即座に立ち上げ
    • 新車販売台数の時系列をクレンジングして政策効果を可視化→補助金や税制改定のエビデンスに

    まとめ

    エビデンスとしては「データは出ているが、コードで語れるレベルには至っていない」。エンジニア的には、スキーマの統一、API優先、メタデータ必須、CIによる品質保証の導入がセットで必要。内閣官房・デジタル庁が提示する機械可読性ルールは方向性として正しいが、現場への落とし込み(ツール、テンプレ、バリデーション)が重要だ。

    おかむーから一言

    技术能把政策变成可检证的承诺,这才叫真正的民主だ!エンジニアとして一緒に作り直そうぜ!