コードで語るマニフェスト:行政データはこう直せば使える!

IT 정책 제안
コードで語るマニフェスト:行政データはこう直せば使える!

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

  • 정부·지자체 데이터가 PDF에 갇혀 있다면 재사용이 불가능하다
  • 기계가 읽을 수 있는 CSV/JSON, 공식 API와 스키마가 핵심이다
  • 실무적으로 가능한 마이그레이션 방법과 예제 코드를 제안한다

結論

요약하면, 정부·지자체가 "データ公開"라며 올리는 것의 상당수가 사람용 PDF에 멈춰 있다. これ見てくださいよ—Digital庁와 内閣官房의 문서에서도 "機械可読性を確保"하라고 명시돼 있지만(参照: digital.go.jp, cas.go.jp)、現場ではPDF·Word 중심의 공개가 계속된다. エンジニア的に言うと、CSV/JSON + OpenAPI 한 줄이면 해결되는 문제다. 要するに、公開포맷·API·스키마를 갖추면 데이터의 가치가 즉시 올라간다ということです。

レポート本文

現状観察:どこが問題か

  • PDF 중심 공개
- 内閣官房資料(2025/04/01)とDigital庁の議事資料(2026/03/31)에서 "機械可読性" 중요성을 강조하고 있지만, 지방공공단체 보고서·사업실적 자료는 아직 PDF·帳票 중심. これ見てくださいよ、PDFに埋まった数値はスクレイピングか人力で取り出すしかないんですよ。
  • APIの欠如と散逸するデータカタログ
- e-Statや一部の国のオープンデータはAPIを提供しているが、自治体ごとのデータはエンドポイントが無かったり、スキーマが統一されていなかったりする。
  • KPIと実績の乖離を検証しにくい
- デジタル田園都市国家構想交付金などはKPIを設定しているが、実績はPDFで年度ごとに報告されることが多い(例: 山口県の実績報告書)。だから数値を抽出して時系列比較するのが面倒!

技術的評価ポイント

  • フォーマット
- PDF/Word(人間可読) vs CSV/JSON(機械可読)

- 要件: UTF-8, 明確なカラム名, タイムスタンプのISOフォーマット

  • API
- RESTful API(HTTPS), OpenAPI specification, ページネーション・フィルタ・バージョニング
  • メタデータとカタログ
- データセットごとにライセンス、更新頻度、スキーマ(JSON Schema)を付与
  • データ品質管理
- CIでスキーマ検証、欠損値・型チェック、KPI算出ロジックのユニットテスト

具体的改善案(短期〜中期ロードマップ)

  • 最低限CSVでの並列公開
  • - 既存PDFの源データがあるならCSVで同時公開。手作業でいいからまずは機械可読に。

  • APIエンドポイントを一本化
  • - OpenAPIを定義してGET /datasets/{id}/records で取得できるように。

  • JSON Schemaとサンプルデータを公開
  • - スキーマがあれば民間も検証ツールをすぐ作れる。

  • KPIダッシュボード用の構造化データ
  • - KPI名、目標値、実績、期間、算出式をCSV/JSONで公開。これで自動ダッシュボードが可能。要するに、"KPIメタデータ"をAPI化してほしいんです。

  • データ品質CIパイプライン
  • - GitHub Actions等でCSV/JSONを検証。スキーマ違反や欠損発見でPR阻止。

    コード例:CSVが無ければPDFから救い出す(Python)

    以下は実務でよく使うパターン。まずAPI/CSVがあるか確かめて、無ければPDF抽出にフォールバックするスニペット。

    import requests
    

    import pandas as pd

    from io import BytesIO

    pdfminer / tabula-py 等が必要

    def fetch_csv(url):

    r = requests.get(url)

    if r.ok and 'text/csv' in r.headers.get('Content-Type',''):

    return pd.read_csv(BytesIO(r.content))

    return None

    def fetch_pdf_table(url):

    # ローカルにtabulaインストールしておくこと

    import tabula

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

    # 単純な結合戦略

    return pd.concat(dfs, ignore_index=True)

    csv_url = 'https://example.gov.jp/data.csv'

    df = fetch_csv(csv_url)

    if df is None:

    print('CSV 없네... PDFから抽出するよ')

    df = fetch_pdf_table('https://example.gov.jp/report.pdf')

    print(df.head())

    要するに、まずはAPI一本を期待するけど、現場ではこのフォールバックが必須なんです。

    KPIと実績のギャップ分析(手順)

  • KPI定義を機械可読化(KPI_ID, 指標名, 目標値, 単位, 算出式)
  • 実績データを時系列で収集(CSV/JSON/API)
  • 自動比較パイプラインで乖離を検出しアラート発報
  • これをやるだけで、政策評価がぐっと楽になる!山口県の報告書のようなPDFベースの実績表は、構造化されれば二次利用で価値が爆上がりします。

    オープンデータ活用の可能性

    • 民間のアプリやダッシュボードが生まれる
    • 研究者によるエビデンスベースの政策提案が増える
    • データ連結で新しいサービス(行政手続きの自動化・財政モニタリング等)が実現

    まとめ

    • 政府·自治体の資料、これ見てくださいよ—PDFに閉じ込めるのはもうやめよう!
    • まずはCSV/JSONの同時公開、次にOpenAPIとスキーマ公開、最後にCIで品質担保するのが現実的な道筋
    • 小さな改善(CSV一つ、OpenAPI一つ)が市民・企業にとって大きな価値になる

    おかむーから一言

    テクノロジーで社会をアップデートするのは夢物語じゃないです!まずはデータを機械が読める形にして、API一本作りましょう。やればすぐ変わります!

    공유하기