コードで暴く「メタデータの毒性」——自治体データが使えない本当の理由と直し方

IT政策の提案
コードで暴く「メタデータの毒性」——自治体データが使えない本当の理由と直し方
  • データ公開は進んでるけど、メタデータがバラバラで実務で使えない件を技術的に検証する
  • PDFばかり・更新日不整備・ライセンス曖昧、という“メタデータ毒”をスコア化して可視化する手法を提案する
  • 実装例(Pythonでカタログをスキャン→CSV/JSON比率・API有無・ライセンス有無を算出)と改善ロードマップを示す

結論

どうも〜おかむーです!結論から言うと、自治体・政府の公開データで最も致命的なのは「データそのもの」より「データを説明するメタデータの質」だと思うんですよね。要するに、機械の目(API/スキーマ/更新情報)で読み取れないメタ情報があると、どれだけ良い数値目標やCSVを出しても使われない。だからまずはメタデータの標準化とプログラムで検出・是正する仕組みを優先すべきです!

レポート本文

これ見てくださいよ:現場の状況と参照先

総務省・デジタル庁の施策ページ(例:自治体情報システムの標準化・共通化: https://www.soumu.go.jp/... 、地方公共団体の基幹業務システムの統一・標準化: https://www.digital.go.jp/policies/local_governments )やData for AI(https://digital-gov.note.jp/...)は方針を掲げてるんですけど、公開される進捗資料はPDFやスライドが多くて機械で集計しにくいんですよね。

エンジニア的に言うと、良いメタデータはAPIの「契約書」みたいなもの。フォーマット(CSV/JSON)、更新頻度、ライセンス、スキーマ、そしてデータ品質の指標(欠損率・異常値率)を機械で取り出せる状態が基本です。ところが現実は「これがCSVかPDFか分からない」「更新日が書いてない」「ライセンスが明確でない」ケースが多い。

問題を定量化する:メタデータ毒性スコアの提案

使えない理由を客観化するために、自治体カタログ(data.go.jp や各自治体のオープンデータカタログ)を走査して算出する簡易スコアを提案します。項目例:

  • 機械可読フォーマット率(CSV/JSON/GeoJSONの割合)
  • PDF率(資料タイプで機械不可の比)
  • APIエンドポイント有無
  • ライセンス明記率
  • 更新日時明記率
スコアは0〜100で、70以上を「実務利用に耐える」とみなすイメージです。

コード例:カタログを走査して簡易メタデータスコアを出す(Python)

以下、実務で使える最小限の例です。エンジニアなら分かると思いますが、CKAN系カタログ(data.go.jp など)や各自治体のJSONカタログに適用できます。

import requests

import pandas as pd

CATALOG_URL = 'https://www.example-data-catalog.jp/api/3/action/package_search'

res = requests.get(CATALOG_URL, params={'rows':1000}).json()

items = res['result']['results']

rows = []

for pkg in items:

for r in pkg.get('resources', []):

fmt = (r.get('format') or '').lower()

is_machine = fmt in ('csv','json','geojson')

is_pdf = fmt == 'pdf' or r.get('url','').endswith('.pdf')

has_license = bool(pkg.get('license_id') or pkg.get('license'))

has_updated = bool(r.get('last_modified') or pkg.get('metadata_created'))

rows.append({

'package': pkg['name'],

'resource': r.get('name'),

'format': fmt,

'is_machine': is_machine,

'is_pdf': is_pdf,

'has_license': has_license,

'has_updated': has_updated

})

df = pd.DataFrame(rows)

score = (

df['is_machine'].mean()*40 +

(~df['is_pdf']).mean()*20 +

df['has_license'].mean()*20 +

df['has_updated'].mean()*20

)

print('MetaData Toxicity Reduced Score:', score)

要するに、これで「何割がCSV/JSONか」「何割がPDFで使えないか」「ライセンスや更新日の明記は足りているか」が一目でわかります。これが可視化できれば、政策目標の達成度(例:標準化されたシステムに移行した自治体の割合)を機械的に検証できるようになるんです。

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

デジタル庁・総務省は標準化・共通化の目標を出しているけど、現状は進捗報告がPDFスライドや個別レポート中心で、機械集計用の公表が欠けている。これだと「目標: 〇年までにX%」と掲げても、実績を自動で追いかけられない。数字を可視化してKPIに落とすためには、次が必要です:

  • 進捗報告の機械可読化(JSON/CSVでの公開)
  • 標準フィールドの定義(例:system_standard_compliant: true/false)
  • 定期的なAPI公開と契約テスト(CIでの検証)

改善提案(優先度付きロードマップ)

1) 短期(今すぐ):カタログを走査する自動チェッカーを公開。PDF率・ライセンス欠如をダッシュボード化

2) 中期(半年〜1年):DCAT-AP-JPに準拠したメタデータテンプレートを自治体に配布し、提出用APIを整備

3) 長期(1〜3年):進捗を評価するための標準KPIを定義(例:API化率、ML-readyデータ率、更新遅延日数)し、公開ダッシュボードで透明化

技術的にやることはシンプルで、OpenAPI・Schema Registry・CIパイプライン・契約テストを組み合わせれば良いだけなんです。エンジニアなら分かると思いますが、API一本とスキーマが定義されれば自動化はぐっと楽になりますよ!

まとめ

  • メタデータの質こそが現場でのデータ利活用を左右する!
  • PDF率・ライセンス欠如・更新情報不足をスコア化して可視化しよう
  • 短期的には自動チェッカー、中期はメタデータテンプレ、長期はKPIダッシュボードで運用ガバナンスを作る

おかむーから一言

テクノロジーで社会を変えるって言うなら、まずは「誰でも使える説明」をコードで書こうよ!小さなメタデータ改善が、現場の100倍の効果を生むんです。応援してます、やりましょう!

シェアする