コードで語るマニフェスト:地方データとAPIをエンジニア視点で検証する

IT 정책 제안
コードで語るマニフェスト:地方データとAPIをエンジニア視点で検証する

안녕하세요~ 오카무입니다! 오늘은 정부·지자체의 데이터와 시스템을 엔지니어 관점으로 파헤쳐보려고 해요〜

  • これ見てくださいよ: 多くの政策資料やKPIがPDFで出されていて、機械判読性が低い
  • APIは増えているけど、スキーマやIDの一貫性がなくて連携が面倒
  • 要するに、オープンデータは出てるけど“使える形”で出してくれたら爆速で価値出せますよね!

結論

国・自治体はデータ公開の基本は押さえているものの、フォーマット(PDF vs CSV/JSON)、標準スキーマ、API設計の品質にばらつきがある。エンジニア的に言うと、API一本・標準スキーマでつなげば政策評価とPDCAの自動化ができるんですよね。まずはKPIや実績を機械可読にして、CI/CD的にデータ品質を保つ仕組みを入れるのが最優先です!

レポート本文

現状サーベイ(参照ソース)

これ見てくださいよ: Digital庁(digital.go.jp)、e-Govの行政APIポータル(e-gov.go.jp)、都道府県や市のオープンデータカタログ(東京都:portal.data.metro.tokyo.lg.jp、埼玉:opendata.pref.saitama.lg.jp、新潟市のオープンデータなど)が揃ってきているんですけど、公開フォーマットやメタデータの質がバラバラなんです。

  • RAIDA(raida.go.jp)は事例収集プラットフォームとして良いが、事例のメタデータ粒度が不均一
  • e-GovのAPIカタログ(api-catalog.e-gov.go.jp)はAPI一覧を提供しているが、データモデルの統一度が低い
  • 地方交付金の実績(例:山口県のPDFレポート)では、採択件数や金額がPDFでしか提供されておらず、CSV/JSONがない

技術的な問題点(具体的に)

  • PDFに埋め込まれたKPI
  • - 問題: 人が読むにはいいが、集計・可視化・自動監査には不向き

    - 要するに: 機械可読フォーマット(CSV/JSON/Parquet)で出してほしいということです

  • APIはあるがスキーマが不統一
  • - 例: 施設IDや法人番号のような共通キーがないため、データ連結が手作業になる

    - エンジニア的に言うと、foreign-keyを設計に入れておいてほしい

  • メタデータ不足とライセンスの曖昧さ
  • - datasetに更新日、schema、ライセンス(CC-BYなど)が明示されていないケースあり

    - 要するに: データの利用可否・再利用性が不明確

    実例: 地方交付金レポート(山口県PDF)

    山口県のレポート(参照: uploaded/attachment/160746.pdf)では「採択事業:2事業/実績額:15,289千円」といった値がPDFにあります。これを自動集計に回すにはOCRや手動抜き出しが必要でコストがかかります。

    技術提案(改善案)

    以下はエンジニア視点で実現可能な改善案です。

    1) KPIデータの機械可読化

    - 既存PDFのテーブルを抽出してCSV/JSON化するバッチを組む(Tabula/ Camelot + pandas)

    - その後、定期パイプラインで更新しAPIで公開

    2) 共通スキーマとID設計

    - 法人番号、住民基本台帳に基づく地理ID、交付金IDなどの共通キーを定義

    - JSON Schema or OpenAPIでスキーマを宣言して、バリデーションを自動化

    3) API品質向上

    - REST/GraphQLでの提供に加え、OpenAPI specを必須化

    - ステータスコード、ページネーション、メタ情報(total_count, updated_at)を標準化

    4) データパイプラインとCI

    - Gitベースでデータ変更を管理(DataOps)

    - Datasetのテスト(Schemaバリデーション、NULLチェック、整合性チェック)をCIで回す

    5) 開発者向けSDKとサンプル

    - Python/R/JSの軽いSDKを提供して、データ利活用の敷居を下げる

    小さなコード例(実務向け)

    • e-Gov APIを叩くcurl例
    curl -H "Accept: application/json" "https://api-catalog.e-gov.go.jp/some-endpoint?limit=100"
    • Pythonで東京都オープンデータCSVを読み込む一例
    import pandas as pd
    

    url = 'https://catalog.data.metro.tokyo.lg.jp/dataset/xxx.csv'

    df = pd.read_csv(url)

    print(df.head())

    • PDFテーブル抽出のプロトタイプ(tabula-py)
    import tabula
    

    dfs = tabula.read_pdf('yamaguchi_report.pdf', pages='all', multiple_tables=True)

    取得したテーブルを整形してCSVへ

    政策評価の自動化イメージ

    • 各自治体がKPIをJSON APIで公開
    • 中央でダッシュボードを用意し、実績と目標の差を自動集計
    • 異常値や未更新を検知してアラートする(Slack/Webhook)

    まとめ

    • 公共データは量は増えているが、品質と標準化が足りない
    • PDF→CSV/JSONの機械可読化、共通スキーマ、API仕様の統一が重要
    • 技術的な解は既にある(Tabula, OpenAPI, CI, DataOps)ので、実装と運用ルールを自治体横断で決めるだけで劇的に改善できる

    おかむーから一言

    テクノロジーで政策を評価可能にするのは、エンジニアの手でできるごく現実的な仕事です。まずはKPIをJSONで出してみましょう!

    공유하기