代码で語るマニフェスト:从PDF到API,自治体数据能怎么变得可用?

IT政策提案
代码で語るマニフェスト:从PDF到API,自治体数据能怎么变得可用?

どうも〜おかむーです!大家好,今天来点偏工程师的GovTech闲聊〜

  • 这篇文章从“机器可读性”和工程实现角度看自治体/政府数据的现状
  • 指出 PDF 优先 vs CSV/API 的问题,结合 gov/go.jp 的规则与实例分析
  • 给出可操作的改进建议与轻量代码示例,方便工程师和行政人员马上上手

結論

现在许多自治体的数据虽被公开,但仍以PDF/散表为主,机器可读性低,导致二次利用受限。要把“开放”变成“可用”,需要把发布规范化(CSV/JSON/API + DCAT元数据)、做基础质量检查(schema与字段一致性)、并提供示例代码与轻量化API。エンジニア的に言うと、API一本で解決できる話なんですよね!

レポート本文

現状观察(证据与规则)

これ見てくださいよ:数字厅草案《行政データにおける機械可読性に関するルール(案)》では「レベル1:閲覧・転記可能」から「CSV/Excel等の機械が直接読み取れる形式」を明記している(digital.go.jp)。また総務省も統計表の「機械判読可能化」ルールを整備している(soumu.go.jp)。にもかかわらず、実務ではPDFや画像埋め込み表が多く残る。

問題点を技術的に整理すると:

  • フォーマットの一貫性がない(同一指標で年月ごとに列名が変わる)
  • APIが無いか、あっても認証・CORS・レート制限で利用しにくい
  • メタデータがないためデータ発見が困難(DCATやData Package未採用)

参照事例:GovTech東京在都庁ダッシュボード体系化により可視化と再利用を改善している(govtechtokyo.or.jp / note.govtechtokyo.jp)。民間活用事例集もdigital.go.jpで公開されている(例:自治体オープンデータマップ)。

技術検証:PDF vs CSV と変換の実務

要するにPDFだとプログラム的に読み取れない、ということです。工程的な対処は2段階:

1) まず「ネイティブCSV/JSONで配る」ことを目標にする

2) 過去PDF資産は自動パイプラインでテーブル化して品質チェックする

コード例(Python + requests + pandas):

# シンプルにCSVを取ってチェックする例

import requests

import pandas as pd

url = 'https://example.gov/data.csv'

r = requests.get(url, timeout=10)

r.raise_for_status()

from io import StringIO

df = pd.read_csv(StringIO(r.text))

basic checks

assert 'year' in df.columns

print(df.dtypes)

PDFを扱う場合は tabula-py や Camelot を使って抽出し、スキーマ変換とバリデーションをかけるワークフローが現実的。

データ品質と政策評価のギャップ分析

多くの政策には数値目標がある(例えば施策Aで「公開データXの提供率をY%にする」など)が、公開の実態は「PDFで公開=達成」と扱われがち。要するに“公開済み”と“利用可能”を同列にしてしまうと評価が甘くなる。

改善のための指標(提案):

  • 機械可読率:公開データのうちCSV/JSON/APIで取得できる割合
  • スキーマ安定性:過去6期で列名/型が変わった件数
  • API利用指標:エンドポイント数、CORS有無、レスポンスの平均レイテンシ

自治体はこれらをKPIにして段階的に改善すべき。GovTechの事例ではダッシュボード整備で業務改善が見られている(参考:GovTech東京の記事)。

実務的改善提案(すぐできること)

  • 公開ルールの明文化:CSV/JSONを第一選択とし、PDFは二次手段に限定(digital.go.jpルール準拠)
  • DCAT-BP や JSON-LD でメタデータを付与し、検索性を上げる
  • 小さなAPIゲートウェイを立てて既存CSVをラップする(認証は最初は不要でOK)
  • CIでスキーマ検証(pandas-schema / great_expectations など)を導入
  • 例コードとSDKを市のリポジトリに置き、民間との間で“成功事例”を共有する

技術スタックの例:

  • ストレージ:S3互換(オブジェクト+バージョン管理)
  • カタログ:CKAN / DataHub / 自作のDCATカタログ
  • ETL:Airflow + Pandas / PySpark(データ量次第)
  • API:FastAPIで軽量APIを公開

まとめ

  • PDF公開は“見せた”だけ、機械可読性がなければ実質的な公開とは言えない
  • digital.go.jp や 総務省のルールを踏まえて、CSV/JSON/APIを第一にし、メタデータとスキーマチェックを自動化するのが最短ルート
  • エンジニア視点では「API一本とスキーマ検証」で多くの課題が解ける。正直、ここは改善の余地ありまくりだと思ってます!

おかむーから一言

どうも〜おかむーです!テクノロジーで行政をアップデートするのってワクワクするんですよね。小さなAPIとちゃんとしたCSVで、政策の説明責任はぐっと高まる。やっていこうぜ!


参考・リンク:

  • デジタル庁「行政データにおける機械可読性に関するルール(案)」: https://www.digital.go.jp
  • 総務省「統計表の機械判読可能ルール」: https://www.soumu.go.jp
  • GovTech東京(データ利活用事例): https://www.govtechtokyo.or.jp
  • 民間活用事例まとめ(インテック): https://www.intec.co.jp/column/smartcity-08.html