コードで語るマニフェスト:日本政府データの機械可読化とAPI化を検証する

IT政策提案
コードで語るマニフェスト:日本政府データの機械可読化とAPI化を検証する

どうも〜おかむーです!大家好,我是おかむー!今日はちょっとエンジニアっぽい話をしますよ〜

  • 行政データ、見た目は公開されてても中身はPDFだらけで使いにくいことが多い
  • APIやCSVでの公開は進んでいるが、フォーマット・メタデータ・品質に課題あり
  • 技術的に即実装できる改善案(標準化・自動化・監視)を提示するよ〜

結論

政府・自治体は「公開した」だけで満足しがちだけど、エンジニア的に言うと本当に使えるデータはまだ少ないんですよね。要するに、機械可読性(CSV/JSON/API)と標準スキーマ、運用の自動化があれば、政策の検証や新サービス創出は格段に進むということです。

レポート本文

現状の観察(データソース把握)

これ見てくださいよ:総務省のオープンデータ推進ページやe-GovのAPIポータルは存在していて、APIカタログも公開されています(参考: https://www.soumu.go.jp、https://www.e-gov.go.jp/digital-government/api、https://api-catalog.e-gov.go.jp)。ただし「公開形式」を見るとばらつきがあるんです。

  • 機械可読ルールの策定(digital.go.jpの案)や統計表の機械判読ガイドラインは更新されてる(参考: digital.go.jp の機械可読性に関するルール案、総務省の統計表ルール)。
  • それでも多くのレポートや行政資料はPDFや画像埋め込みで公開されているケースが依然多数。

要するに見た目は公開済みでも、データとして使えるかは別問題なんですよね。

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

  • フォーマットの不統一
  • - CSV/Excel/JSON/PDFが混在。列名や日付フォーマットが自治体・省毎に違う。

  • メタデータ不足
  • - スキーマ説明や単位、更新頻度が書かれていない。APIでもOpenAPIやDCATのメタデータ未整備が多い。

  • PDF優先の公開
  • - 見た目は良いが機械処理が難しい。OCR/テーブル抽出が必要でエラーが出やすい。

  • 可用性・バージョン管理
  • - APIの安定性や過去バージョンの参照が不十分。データ契約(SLA)も曖昧。

    エンジニア的検証:API vs PDFの扱い

    エンジニア的に言うと、API一本でやりとりできれば効率は劇的に上がるんですよ。試しにAPIカタログからJSONを取ってきてpandasで処理するコードはこんな感じ。

    # example: fetch e-Gov API catalog (擬似コード)
    

    import requests

    import pandas as pd

    r = requests.get('https://api-catalog.e-gov.go.jp/info/ja/apicatalog/list')

    catalog = r.json()

    カタログをDataFrameで簡単に可視化

    df = pd.json_normalize(catalog['items'])

    print(df[['title', 'endpoint', 'format']].head())

    一方でPDFを処理する場合、tabula-pyやcamelotでテーブル抽出を自動化するけど、表組みが崩れたり数値の誤認識が起きる。コード例:

    # tabulaを使ったPDF表の抽出(Java環境必要)
    

    import tabula

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

    後処理で列名・型を正規化する必要あり

    要するに、PDFは『最後の手段』として扱うべきで、最初からCSV/JSONを提供してほしいんです。

    政策目標と実績のギャップをどう見るか

    政策文書に「達成率○○%」と書いてあっても、その算出根拠が機械可読で公開されていないと検証できないです。政策KPIは時系列データとして公開し、原データ(計算式、サンプルデータ、欠損扱い)を合わせて公開することが必要。

    例えば:

    • 目標: ある事業で「利用者数を年間20%増」→ 実績の時系列をCSVで公開
    • 公開項目: 集計SQL/ETLスクリプト(またはOpenAPIの集計エンドポイント)

    こうすれば外部のエコシステムが検証・再現・価値創出できるんですよね。

    改善提案(実装レベル)

  • 機械可読性を義務化するレベル設計
  • - レベル1: CSV/Excel/JSONでの公開

    - レベル2: OpenAPI/GraphQLでのAPI公開+メタデータ(DCAT、schema.org)

    - レベル3: スキーマの標準化(共通語彙)、SLAとバージョンを保証

  • 中央APIゲートウェイと開発者ポータル
  • - e-GovのカタログをAPIゲートウェイ化して認証・レート制御・ログを提供

  • 自動化パイプライン(CI for Data)
  • - データ公開をGitで管理、PRで差分検査、CIでスキーマチェックとサニティテストを実行

    - 例: GitHub ActionsでCSV schema validation(csvkit/agate/schema)を回す

  • PDF残存データの支援ツール
  • - PDF→CSVの抽出ルールを自治体向けにテンプレ化(Tabulaテンプレ、Camelot設定)

  • サンプルコードとSDK
  • - Python/JSの公式サンプルとSDKを公開してエコシステム作る

    実装上の注意点(短く)

    • 日付/タイムゾーンの取り扱いを統一
    • IDは永続的で不変のキーを使う(削除ではなくvalid_toで扱う)
    • データライセンス(オープンライセンス)を明示

    まとめ

    • 日本のオープンデータ基盤は基礎が整いつつあるが、使いやすさでまだ課題あり
    • PDF依存を減らし、API/CSV/JSON+標準スキーマとメタデータで公開するのが最優先
    • 技術的には中央ゲートウェイ、CI for Data、SDK提供で短期間に効果を上げられる

    おかむーから一言

    テクノロジーで行政をアップデートするのはめちゃくちゃ面白いフィールドです!実務とコードの橋渡しをちゃんとやれば、政策の透明性と市民サービスはもっと良くなるって本気で思ってます〜