PDF刑事裁判からの開放宣言:自治体データを機械可読化するテクニカルマニフェスト

IT政策の提案
PDF刑事裁判からの開放宣言:自治体データを機械可読化するテクニカルマニフェスト

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

  • 自治体のデータ、まだPDFで埋もれてませんか?機械可読性のルールがあるのに運用が追いついてないケースが多いです
  • エンジニア的に言うと、API+CSV/JSON+メタデータでワークフローを作れば再利用性が爆上がりします!
  • この記事では現状の問題点を技術視点で分析して、具体的な改善プランとコード例まで示しますよ〜

結論

自治体・政府データは「機械判読可能な形式(CSV/JSON/GeoJSON)と適切なメタデータ」を標準にして、CI/CDで品質検証・公開を自動化するのが最短・最安・効果的な改善策です。総務省の統一ルール(https://www.soumu.go.jp/...)や内閣官房の指針(https://www.cas.go.jp/...)があるので、あとは実運用とエンジニアリングを結合すればOKです!

レポート本文

現状把握:これ見てくださいよ

国や都道府県のオープンデータカタログ(例:東京都ポータル https://portal.data.metro.tokyo.lg.jp/、横浜市 https://data.city.yokohama.lg.jp/)はCSV/GeoJSONを用意している良事例がある一方で、多くの自治体資料はまだPDFや画像で配布されているのが実情です。総務省の「統計表における機械判読可能なデータの表記方法の統一ルール」もあるのに、現場運用が追いつかないんですよね。

要するに:ルールはあるけど運用が弱い、ってことです。

技術的な問題点(箇条書き)

  • PDF中心の公開:OCR/表抽出が必要で再現性が低い
  • スキーマ不在:列名や単位がバラバラで自動結合が難しい
  • メタデータ欠如:更新日やライセンス、座標参照系が明示されていない
  • APIの不在:データ取得がスクレイピング依存になりがち

実務でありがちなケースと影響

  • 予算書がPDFのみ → 自動集計パイプライン組めない
  • 災害時の河川水位が画像のみ → リアルタイム監視システムに取り込めない

技術的改善提案(実装レベルで)

  • 形式標準化:CSV/JSON/GeoJSONを一次公開フォーマットにする
  • メタデータ整備:DCAT / CSVW / JSON-LDでスキーマと語彙を付与
  • API化:OpenAPIで仕様を公開し、認証は必要ならOAuth2で管理
  • CI/CDとデータパイプライン:Gitベースでソース管理、GitHub Actions等でバリデーション自動化
  • フォールバック:どうしてもPDFのときは、定期的にTabula/ocrmypdfで変換→検証のジョブを組む
  • エンジニア的に言うと、データ公開はソフトウェア開発と同じで、一度パイプライン化してしまえば運用コストは下がるんですよね。

    具体的コード例(取得→検証→正規化)

    以下はイメージコードです。まずはAPI/CSVがあればrequests + pandasでOK。もしPDFしかない場合はtabulaで抽出するパターンを想定しています。

    # requirements: requests pandas tabula-py jsonschema
    

    import requests

    import pandas as pd

    from jsonschema import validate

    1) CSV取得

    r = requests.get('https://portal.data.metro.tokyo.lg.jp/dataset/xxx.csv')

    open('dataset.csv', 'wb').write(r.content)

    df = pd.read_csv('dataset.csv')

    2) スキーマ検証(簡易)

    schema = {

    'type': 'object',

    'properties':{

    'date': {'type':'string'},

    'value': {'type':'number'}

    },

    'required':['date','value']

    }

    pandasのレコードを1つずつ検証する例

    for rec in df.to_dict(orient='records'):

    validate(rec, schema)

    3) PDFフォールバック

    df_pdf = tabula.read_pdf('report.pdf', pages='all')

    運用設計の提案(ガバナンス)

    • データオーナーを明確化:各CSVの責任者と更新頻度を定義
    • バージョン管理:ファイル名に日付/スキーマバージョンを入れる
    • SLA設定:災害データは1分単位、行政KPIは月次など
    • 監査ログ:誰がいつデータを更新したかは必須

    KPIと実績のギャップを検出する仕組み

    政策目標(例:ごみ減量10%削減)を機械判読可能なテーブルで管理して、それを日次/週次で集計するダッシュボードを用意すると良いです。要するにデータが機械で読めれば、目標達成の追跡も自動化できるってことです。

    まとめ

    • 総務省や内閣官房のガイドラインはある(https://www.soumu.go.jp/...、https://www.cas.go.jp/...)ので、技術的障壁は高くない
    • PDF中心の公開が最大の障害。CSV/JSON + メタデータ + API + CI/CDで解決可能
    • 実務では小さく始めてスケールするのが鍵:まずは重要データ1つをCIで公開してみてください!

    おかむーから一言

    テクノロジーは魔法じゃないけど、ちょっとしたエンジニアリングで政策の透明性と再利用性は劇的に上がりますよ。まずはCSV一つから始めましょう!

    シェアする