Sagebase の公開データの各行には sagebase_id が付いています。外部から Sagebase のデータを参照・保存・結合するときのキーはこの列です。このページは、ID の形式と「どこまで変わらないと約束するか」を書いたものです(2026-07〜08 に段階的に切り替えた方針)。
形式
{prefix}_{32 桁の 16 進数} (3 文字 + _ + 32 桁 = 36 文字)
例: pol_3f2a9c1e8b7d4e6f0a1b2c3d4e5f6a7b
- 16 進数部分は、その行の 自然キー(氏名・団体名・会議日・議案番号など、現実世界で実体を決める値の組)を BLAKE2b-128 でハッシュしたものです。UUID ではありません。乱数ではないので、同じ実体は何度取り込んでも同じ ID になります。
- 2026-07〜08 の切替より前は乱数の UUID4 でした。当時の記事や文書で「UUID」と書いているものは古い方式の説明で、当時保存した ID の値は現在の ID とは別物です(ID が変わるとき)。
主な prefix
| prefix | テーブル | prefix | テーブル |
|---|---|---|---|
gov | governing_bodies(議会・開催主体) | mtg | meetings(会議) |
cnf | conferences(会議体) | mnt | minutes(議事録) |
pol | politicians(政治家) | cvs | conversations(発言) |
pty | political_parties(政党) | spk | speakers(発言者) |
pgr | parliamentary_groups(会派) | prp | proposals(議案) |
elc | elections(選挙) | pdl | proposal_deliberations(議案審議) |
elm | election_members(当選者) | psb | proposal_submitters(議案提出者) |
gof | government_officials(政府関係者) | pjd | proposal_judges(議案賛否・個人) |
変わらない範囲
議事録のレイヤーまでは恒久
governing_bodies / conferences / meetings / minutes と、その親にあたるエンティティ(politicians / political_parties / elections / parliamentary_groups)の sagebase_id は自然キーから決定的に作られ、再取込・再パースで変わりません。
発言は「議事録の中の位置」で安定
発言(conversations)の sagebase_id は「所属する議事録の sagebase_id + 議事録内の通し番号(sequence_number)」から決まります。議事録の識別子(多くの議会では議事録の URL)と、会議の自然キー(会議体・会議日・会議名)が変わらない限り、再取込で発言の sagebase_id は変わりません。
保証しないもの
- 議事録本文のパーサーを改良した場合(発言分割の閾値変更、話者判別ルールの改訂)は発言の境界が振り直され、
conversationsの sagebase_id は変わり得ます。完全な発言単位の恒久 ID は設計の範囲外です。 - 賛否 3 表(
proposal_vote_recordsと、その中間表proposal_vote_parliamentary_groups/proposal_vote_politicians)は生成時の UUID4 のままで、再構築で変わる可能性があります。 - 上流(議会サイト)が会議名や議事録 URL を付け替えた場合、該当行は別の実体として新しい ID になります。
特定の発言に恒久リンクを張りたいとき
「議事録(minutes)の sagebase_id + 発言の抜粋テキスト」 を保存してください。議事録 ID は恒久で、抜粋テキストがあればパーサー変更後も同じ発言を再同定できます。発言 ID 単体の保存は推奨しません。
内部 id は使わない
各テーブルには整数の id 列もありますが、これは内部処理用で、再取込で振り直されます。結合・ブックマーク・外部システムへの保存には sagebase_id を使ってください。
ID が変わるとき
- 自然キーの定義(どの列の組から ID を作るか)は凍結された契約で、変える場合は該当テーブルの ID が全部動きます。実施する場合は、事前に お知らせ と sagebase-community で告知します。
- 方式切替(乱数 UUID4 → 自然キー由来)より前の旧 ID から新 ID への対応表は提供していません。旧 ID を保存している場合は、該当データの自然キー(氏名・会議日など)で引き直してください。
- 同じ ID のまま行の内容が更新されること(上流の訂正、名寄せの再実行)はあります。ID の安定は内容の不変を意味しません。