Sagebaseは、政治データ(政治家・会派・政党・議案・賛否・発言)を ノード/エッジ形式のグラフデータマート として、BigQuery Sharing(旧 Analytics Hub)で公開しました。議員間の投票類似度、会派の合従連衡、議案の審議経路といった 関係性分析 が、多段 JOIN なしで即座に書けます。BigQuery ユーザーであれば、誰でも Subscribe ボタン 1 つで購読できます。
何を公開したか
sagebase_graph データセットには、政治データを 2 種類のテーブルとして整理しました。
- ノード 8 種: politician(政治家)、parliamentary_group(会派)、political_party(政党)、conference(会議体)、meeting(会議)、proposal(議案)、election(選挙)、governing_body(議会)
- エッジ 17 種: 「誰がどの会派に所属しているか」「誰がどの議案に賛成/反対したか」「誰が誰と共同提出したか」といった関係性
主要なエッジの実数値(2026-06-17 時点):
| エッジ | 行数 | 意味 |
|---|---|---|
| VOTED_ON(個人賛否) | 103,748 | 議員 → 議案(賛成/反対/欠席等) |
| SUBMITTED(議案提出) | 2,916 | 議員 → 議案(発議者) |
| DISCUSSED_IN(会議で審議) | 21,326 | 議案 → 会議(各 stage 含む) |
| DELIBERATED_BY(会議体で審議) | 87,461 | 議案 → 会議体(本会議/委員会) |
すべてのエッジに sagebase_id(UUID)を結合キーとして採用しているため、Sagebase 内部 ID の再採番が発生しても、購読者の保存済みクエリは壊れません。
何ができるようになるか
graph-ready なテーブルを使えば、これまで多段 JOIN で組み立てていた分析が大幅に簡略化されます。たとえば:
- 投票類似度ネットワーク: 同じ議案で同じ投票行動を取った議員のクラスタリング(政党の枠を超えた連携の可視化)
- 会派造反分析: 会派内の少数派が同調しなかった議案の検出
- 共同提出ネットワーク: 議員間の協力関係(議案発議パートナー)
- 議案の審議経路追跡: 議案 → 委員会 → 本会議 の stage 遷移(例: ある法案で「委員会採決 → 本会議採決」、さらに「衆 → 参」の多段経路)
- as-of スナップショット: 特定日時の議員・会派構成での再現クエリ
具体的なクエリの書き方は、後述の「BigQuery Graph(Preview)について」をご覧ください。
購読方法
BigQuery Console から:
- 左ナビ Sharing(Analytics Hub)→ Search listings で「Sagebase」または「政治ベース」を検索
- Sagebase のリスティング をクリック → Subscribe(データセットに追加)を押下
- 受け側 GCP プロジェクト + データセット名を指定 → リンクデータセット作成完了
詳細な手順は 使い方ガイド を参照してください。データセットのサブスクライブは無料で、クエリ実行には BigQuery の通常料金(毎月 1TB まで無料)が適用されます。
BigQuery Graph(Preview)について
ノード/エッジテーブルの上に BigQuery Graph(Preview)の CREATE PROPERTY GRAPH を定義することで、GQL(Graph Query Language)クエリも書けます。例:
GRAPH politics
MATCH (p:politician) -[v:VOTED_ON]-> (prop:proposal)
WHERE prop.title CONTAINS "予算"
RETURN p.name, v.vote_result, prop.title
LIMIT 100
ただし GQL クエリの実行には Enterprise / Enterprise Plus エディションの予約スロット が必要です(オンデマンド不可)。一般的な分析であれば、同じ graph テーブルに対する プレーン SQL(JOIN / 再帰 CTE) で同等の結果が得られます。
設計原則
- キーは sagebase_id(UUID) — 内部 INT64 ID は使わない
- 時間軸の二分規約 — 全エッジを「期間型(start_date/end_date + is_current)」か「時点型(event_date)」のどちらかに分類
- 名寄せ品質の明示 — speaker → politician マッチング由来のエッジには
matching_confidence/verified属性を必須付与 - 公開ゲート — エッジ両端の参照整合性テストに失敗した場合、graph 層の公開反映を止める
データ構造の全体像は データ構造 ページもあわせてご覧ください。
既知のカバレッジ注記
- SPOKE_IN(発言エッジ)は、名寄せ済 speaker のカバレッジに依存して漸増中です
- AFFILIATED_WITH(政党所属)は、election_members の政党 ID 投入待ちで現状 0 行です
- 47 都道府県議会の会派賛否 は、別 Goal で順次点灯予定です
これらは継続的に充実させていきます。
今後の予定
- 47 都道府県議会の会派賛否名寄せ基盤の整備(会派単位の賛否エッジの全県点灯)
- 議事録 LLM による細粒度 stage 抽出(継続審議/修正可決等)
- 議案共同提出者「外 N 名」の個別展開
- 政令指定都市 19 市の会議データ完全取得
想定ユースケース
- 研究者: 政治学・社会ネットワーク分析の量的研究素材
- データジャーナリスト: 投票行動・会派連携・議案動向のスクープ素材
- 市民テック開発者: 政治データを使った civic アプリの開発
- 政治アナリスト: 選挙・政策分析のレポーティング
さっそく使ってみる
- 試してみる → 使い方ガイド
- データ構造を読む → データ構造
- データ補正リクエスト → sagebase-community(GitHub)
- フィードバック → お問い合わせ