ID 体系
発言・会議・議会・議員に振る番号の決まりです。一度発行した ID は変えません。引用が数年後に壊れないようにするためで、この基盤でいちばん重視している点です。
この版はドラフトです。形の定義は確定していますが、新しい ID の発行はまだ始めていません。 いま発行しているのは、下の「レガシー ID」だけです。
1. 6 つの原則
- 発行後は変えない。データを訂正するときも ID は保ち、変更点は訂正履歴に残します。
- 独自の番号を作らない。自治体の識別は総務省の全国地方公共団体コードに相乗りします。 国が将来 ID を標準化した場合は、対照表を出して移行できるようにします。
- どの経路でも同じ ID。ページの URL・API・CSV・引用表記のすべてで同じ ID を使います。
- 機械で検証できる形。ID は正規表現で判定できる固定の文法を持ちます(4 章)。
- 確定した情報にだけ発行する。ID に日付を埋め込む以上、その日付が原文で確認できたものにだけ発行します。 読めなかった値を代替の値で埋めた会議には発行せず、保留として開示します。 発行後に変えない決まりは、誤りをそのまま固定してしまう危険と表裏だからです。
- ID は台帳が振るもので、原典から計算できるものではありません。だから必ず原典に結びつけて公開します。会議の連番も発言の連番も、こちらの取得順と発言の切り分けで決まります。 第三者が原典だけから同じ ID を再現することはできません(国会会議録検索システムの ID も国立国会図書館が振っています)。 その代わり、すべての ID について「どの原典の・どの版の・どの箇所か」を機械で読める形で公開します(9 章)。
2. 対象別の形
例に出てくる 131067 は総務省コードで、台東区を指します(確認済み)。 会議 ID・発言 ID・議員 ID の例は形の説明で、まだ発行していない番号です。
動く例(実在します)
発言 ID 131067_2522_10 = 台東区議会 2024 年の発言。
/utterance/131067_2522_10 で原文・出典・引用表記 3 形式を出しています。
| 対象 | 形 | 例(形の説明) |
|---|---|---|
| 自治体 | 総務省 全国地方公共団体コード 6 桁 | 131067 |
| 議会 | 自治体コードと同じ(1 対 1) | 131067 |
| 会議 | 自治体コード − 開催日 8 桁 − 種別 − 連番 2 桁 | 131067-20260315-teirei-01 |
| 発言 | 会議 ID + u + 連番 4 桁 | 131067-20260315-teirei-01-u0042 |
| 議員(人物) | p − ハッシュ 8 桁(自治体コードは含めない) | p-a8f3e2c1 |
| 例規・例規の版 | 予約のみ(条例コモンズの稼働時に確定) | — |
- 会議 ID は開催日が原文で日まで確認できた会議にだけ発行します。 月までしか分からない会議は保留とし、精度が上がった時点で発行します(原則 5)。
- 議員 ID のハッシュは、初めて現れた時点の(議会コード・正規化した氏名・初出の会議 ID)から機械的に作り、 作った時点で台帳に固定します。改姓や移籍があっても変えません。氏名でなく ID で参照するのは、同姓同名と改姓に耐えるためです。ID の字面に議会コードを含めません。人は議会をまたぎます(市議から県議へ、合併で議会が変わる)。 議会ごとに別の ID になると、経歴を追うときに一番要る「同じ人」の結びつきが切れるためです。どの議会に属したかは別の表で持ちます。
- 委員会の名称(総務委員会など)は ID に入れず、付帯情報として別に持ちます。
- 同じ日・同じ種別に複数の会議がある場合は連番で分けます。連番は初回付与時の原本の掲載順で決め、 付与した時点で固定します。再取得で原本の並びが変わっても、発行済みの ID は変えません。
3. 会議種別の語彙
| 語 | 対応する会議 |
|---|---|
| teirei | 定例会の本会議 |
| rinji | 臨時会の本会議 |
| iinkai | 常任委員会 |
| tokubetsu | 特別委員会 |
| giun | 議会運営委員会 |
| zenkyo | 議員全員協議会 |
| sonota | 上の 6 つに整理できない会議体 |
sonota は逃がし枠です。整理できた時点で新しい語を足します。 語を足す変更は既存の ID の意味を変えないので、版を上げずに行います。
4. 文法
機械で検証するための形の定義です。
lgcode = [0-9]{6}
meeting_id = lgcode "-" [0-9]{8} "-" slug "-" [0-9]{2}
slug = "teirei" | "rinji" | "iinkai" | "tokubetsu"
| "giun" | "zenkyo" | "sonota"
utterance_id = meeting_id "-u" [0-9]{4,}
person_id = "p-" [0-9a-f]{8}
legacy_utterance_id = lgcode "_" [0-9A-Za-z]+ "_" [0-9]+5. いまの ID と、これからの ID
いま内部で使っている ID は取得の仕組み由来で、会議の日付と種別を含みません。 新しい ID を振るには会議の日付・種別の整理が先に要るため、次の順で移ります。
| 段階 | やること |
|---|---|
| β | この仕様を公開します。発言の恒久リンクは、いまの ID をレガシー ID(恒久の別名)として発行します。 この URL も将来にわたって解決し続けます |
| その後 | 会議の日付・種別の整理と歩調を合わせ、新しい ID と対照表を段階的に作ります |
| 以後 | 新しい ID を正とし、レガシー ID は恒久転送(HTTP 308)と対照表で解決し続けます |
対照表には機械で確かめられた対応だけを載せます。 確定できない行は保留として開示し、推定で埋めません。
6. 外部の体系との対照
対照表は当方の新旧だけでなく、外の体系との対応も収めます。列を持つことと、公開することは別の判断です。
| 対照先 | 当方の扱い |
|---|---|
| 国会会議録検索システム(国立国会図書館) | 国会は収録せず、当方の ID も発行しません。国会の発言を参照するときは、 先方の会議録 ID と発言 ID を正として対照列に書きます |
| Wikidata | 人物の国際的な対照点。対応が確定した人物にだけ書きます |
| 民間の体系 | 列は用意します。値を入れるか、公開するかはこれから決めます |
議員(人物)に国の標準 ID は存在しません(2026 年 8 月時点で、国会・地方とも確認)。 無い以上、原則 2 のとおり人物 ID は当方で振り、標準ができたときは対照表で応じます。
7. 恒久リンクと引用
発言ごとに恒久的な URL を発行しています。.json を付けるか Accept ヘッダを送ると、同じ ID の JSON を返します。
https://gikai-commons.isvd.or.jp/utterance/{発言 ID}引用の書き方は 2 通りです。
そのまま引く場合
{議会名} {年} {会議種別} 発言 {発言 ID}. 全国地方議会発言データベース
「議会コモンズ」(一般社団法人 社会構想デザイン機構). {URL}(参照 YYYY-MM-DD)加工して使う場合
一般社団法人 社会構想デザイン機構「議会コモンズ」を加工して作成 (参照 YYYY-MM-DD)
訂正が必要になっても URL は消しません。上書きせず、訂正の記録を残します (訂正履歴)。条件の詳細は利用規約にあります。
8. 版の上げ方
- 変更は足すだけにします(語彙の追加・対象の追加・対照列の追加)。既存の ID の意味は変えません。
- どうしても壊す変更が要るときは v2 を新設し、v1 の ID は対照表で永久に対応づけます。
- 変更の履歴はこのページに残します。
- 市町村が合併したとき: 総務省は新しいコードを振ります。発行済みの会議 ID・発言 ID は旧コードのまま残します (その会議を開いたのは旧団体で、記録として正しいため)。新団体の会議には新コードで発行し、旧団体と新団体の対応は対照表に載せます。
9. 原典への結びつけと、続くことの約束
発言 ID 1 件ごとに、次の 5 つを機械で読める形で公開します。 これで、こちらを信用しなくても「この ID がこの本文を指している」ことを原典で確かめられます。
| 欄 | 何を指すか |
|---|---|
| source_url | 取得した原典の場所(議会サイトの会議録ページなど) |
| source_document_id | 原典側の文書の識別子(あれば)。原典が場所を変えても追えます |
| source_location | 原典の中の位置(ページ・段落・文字位置など、取れた範囲で) |
| text_hash | 本文の指紋(本文から機械的に作る短い値。1 文字でも違えば別の値になります)。本文が改変されていないことの証拠 |
| extraction_ver | 発言の切り分けを行った処理の版 |
いまはまだ、この 5 つがそろっていません。列はありますが、取り込みの経路によって埋まり方が違い、 「原典の中の位置」と「切り分けの版」は空です。新しい ID は、この 5 つが埋まった発言にだけ発行します。 埋まっていないものは保留として開示します。
発言の単位は、こちらの切り分けで決まっています。地方議会の会議録は発言に番号を振っていないためです。 切り分けを改良して境界が変わっても、発行済みの ID は元の本文(元の指紋)を指し続け、新しい境界には新しい ID を発行します。 ID を新しい本文に付け替えることはしません。
ID の台帳は丸ごと配ります。ID の解決がこちらのサーバーだけに依存しないようにするためです。 運営が止まっても、配った台帳があれば誰でも ID を読み解けます。
検討して採らなかったものも書いておきます。意味を持たない番号だけにする案(引用で読めることを優先。 国会会議録検索システムの ID も日付を含む形です)、会議種別を番号にする案(同じ理由)、 検査数字を付ける案(恒久リンクが解決するかで写し間違いは分かります)。