コードで語るマニフェスト:自治体オープンデータを技術で検証する

IT 정책 제안
コードで語るマニフェスト:自治体オープンデータを技術で検証する

どうも〜おかむーです! 안녕하세요, 오카무입니다! 오늘은 정부·지자체의 데이터와 시스템을 엔지니어 관점에서 뜯어보는 시간이에요〜

  • 공개 데이터가 PDF에 잠겨 있으면 재사용이 막힌다
  • API 하나로 해결 가능한 문제를 왜 파일로 뿌리는지 기술적 비용으로 따져본다
  • 개선안은 간단하다: 기계판독성, 표준 스키마, 실시간 API

結論

지자체의 데이터 개방은 양적으론 진전이 있지만 질적으론 아직 갈 길이 멀다. PDF/画像スキャン 형태로 배포되는統計や資料が多く、機械可読性レベルが低い。要するに、エンジニア的に言うとAPIとCSV/JSONを標準にしないと二次利用が進まないということです。

レポート本文

現状観察:公開形式と政策ドキュメント

これ見てくださいよ:デジタル庁の「機械可読性に関するルール(案)」(https://www.digital.go.jp/assets/…)では、レベル1〜の区分で『Excel/CSVが望ましい』と明記しているんですけど、自治体の現場ではPDFや画像スキャンがまだまだ多いんです。総務省の統計表ルール(https://www.soumu.go.jp/…)も似た方向性で、要するに「統一したルールがあるよ」ってだけなんですよね。

  • 事例:GovTech東京やデジタル庁の民間利活用事例(https://www.digital.go.jp/resources/…)は良い出発点。ただし事例集の多くはPPTX/PDFで配布され、機械判読用APIがないケースが多い。

問題点を技術的に分解

  • フォーマットの非機械可読性
  • - PDF/画像だとOCR前提。文字化け・表構造の損失が起きやすい。

  • メタデータ欠如
  • - スキーマ(カラム名、単位、更新頻度、ライセンス)が公開されていない。

  • API非整備・頻度の不一致
  • - リアルタイムで使いたいデータがバッチで配布されるとサービスに使えない。

  • 実績と目標のギャップ
  • - 政策目標(例:スマートシティKPI)と実績データが乖離、ソースがバラバラで横串分析できない。

    技術検証(コード例)

    まずはAPIがあるかどうかを確認するのが早い。Pythonで『まず試す』スニペット:

    import requests
    

    url = 'https://example-city.jp/api/datasets' # まずはオープンデータカタログを叩く

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

    print(r.status_code)

    print(r.headers.get('content-type'))

    JSONなら直接解析、CSVならpandas.read_csv

    APIがない場合はPDF→CSVの変換が現実解。tabula-pyやcamelotで表抽出するパターン:

    import camelot
    

    tables = camelot.read_pdf('report.pdf', pages='1-end')

    for t in tables:

    print(t.df.head())

    t.to_csv(f'table_{t.page}.csv')

    要するに、手段はあるけど手作業が増えるんですよね。

    政策目標と実績のギャップ分析の進め方

    • KPI定義をオープンにしてIDを付与(例:kpi_id=SC-01)
    • そのIDでAPIレスポンスにタグ付け。複数自治体を横断するクエリが可能に
    • データ品質はスコア化(欠損率、最新性、形式整合性)してダッシュボード化

    サンプルSQL(Postgres)で差を見る:

    SELECT kpi_id, target, actual, (actual - target) AS gap
    

    FROM kpi_results

    WHERE fiscal_year = 2024;

    改善提案(実装ロードマップ)

  • 機械可読性ルールの徹底適用
  • - PDFではなくCSV/JSONを第一配布にする(Digital Agency案に従う)

  • カタログAPI(DCAT準拠)を全自治体で共通化
  • - データセットのメタ情報を機械で引けるように

  • 共通スキーマ提供とバリデーションCI
  • - JSON Schema / OpenAPI Specを公開、CIでスキーマ違反検出

  • サンプルコードとSDKの配布
  • - Python/R/JSのサンプルを用意し、利活用の敷居を下げる

  • ライセンスとデータ品質の可視化
  • - CC BY等の明確化、品質メトリクスをAPIで提供

    技術的には、API一本で解決することが多いんですよ。CDN + API Gateway + S3(bucket)にCSV/JSONを置けば低コストで運用できるし、更新時にWebhookで利活用事業者に通知するだけでエコシステムが回るんです。

    まとめ

    • ルールは存在するが実務運用で機械可読性が追いついていない
    • PDF→手作業は時間とコストのムダ。API/CSV/JSONを標準化すべき
    • 小さく始めるなら、1つのKPIをAPI化して横断分析できるようにするのが効果的

    おかむーから一言

    テクノロジーで社会をアップデートするっていうのは意外と単純で、フォーマットを揃えてAPIを出すだけで何百倍も価値が生まれます。エンジニアとして、一緒にデータの地図を描きましょう!

    공유하기