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

- データ公開は進んでるけど、メタデータがバラバラで実務で使えない件を技術的に検証する
- 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エンドポイント有無
- ライセンス明記率
- 更新日時明記率
コード例:カタログを走査して簡易メタデータスコアを出す(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倍の効果を生むんです。応援してます、やりましょう!
情報ソース
- https://www.zhihu.com/question/659922888
- https://www.digital.go.jp/policies/local_governments
- https://www.zhihu.com/question/6165418410
- https://www.soumu.go.jp/menu_seisaku/chiho/jichitaijoho_system/index.html
- https://www.zhihu.com/question/1998674473453364460
- https://www.zhihu.com/question/290714454
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/data8/data8_siryou1.pdf
- https://www.zhihu.com/question/6430289390
- https://digital-gov.note.jp/n/neb45f4883f23
- https://www.zhihu.com/question/38923279
- https://www.intec.co.jp/column/smartcity-08.html
- https://sorabatake.jp/14930/
- https://www.soumu.go.jp/menu_seisaku/ictseisaku/ictriyou/opendata/
- https://www.digital.go.jp/resources/data_case_study_local
- https://www.digital.go.jp/resources/data_case_study_private
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。