kna 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kna-0.5.0/.gitignore +33 -0
- kna-0.5.0/CODEBOOK.md +587 -0
- kna-0.5.0/CORRECTIONS.md +99 -0
- kna-0.5.0/DATA_AVAILABILITY.md +190 -0
- kna-0.5.0/PKG-INFO +291 -0
- kna-0.5.0/README.md +268 -0
- kna-0.5.0/build_ideal_points.R +319 -0
- kna-0.5.0/build_multi_assembly.py +431 -0
- kna-0.5.0/build_site.py +2163 -0
- kna-0.5.0/build_voteview.py +1178 -0
- kna-0.5.0/collect.py +531 -0
- kna-0.5.0/collect_members.py +156 -0
- kna-0.5.0/collect_roll_calls.py +267 -0
- kna-0.5.0/consolidate_votes.py +201 -0
- kna-0.5.0/estimate_dwnominate.R +244 -0
- kna-0.5.0/estimate_idealpoints.R +218 -0
- kna-0.5.0/extract_appendix_votes.py +347 -0
- kna-0.5.0/integrate.py +420 -0
- kna-0.5.0/kna/__init__.py +5 -0
- kna-0.5.0/kna/cli.py +252 -0
- kna-0.5.0/kna/data.py +248 -0
- kna-0.5.0/kna/formatters.py +340 -0
- kna-0.5.0/kna/queries.py +372 -0
- kna-0.5.0/link_external.py +204 -0
- kna-0.5.0/parse_plenary_votes.py +316 -0
- kna-0.5.0/pyproject.toml +53 -0
kna-0.5.0/.gitignore
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Raw API responses (regenerable, large)
|
|
2
|
+
data/raw/*_partial.parquet
|
|
3
|
+
data/raw/phase2_checkpoint_*.json
|
|
4
|
+
|
|
5
|
+
# Logs
|
|
6
|
+
logs/
|
|
7
|
+
|
|
8
|
+
# Python
|
|
9
|
+
__pycache__/
|
|
10
|
+
*.pyc
|
|
11
|
+
.venv/
|
|
12
|
+
|
|
13
|
+
# OS
|
|
14
|
+
.DS_Store
|
|
15
|
+
|
|
16
|
+
# API key (never commit)
|
|
17
|
+
*.rtf
|
|
18
|
+
.env
|
|
19
|
+
data/pdfs/
|
|
20
|
+
data/raw/rollcall_checkpoint_*.json
|
|
21
|
+
|
|
22
|
+
# Internal planning & paper-related docs
|
|
23
|
+
MASTER_DATA_PLAN.md
|
|
24
|
+
DATA_COLLECTION_STRATEGY.md
|
|
25
|
+
DATA_OVERVIEW.md
|
|
26
|
+
NOMINATE_METHODOLOGY.md
|
|
27
|
+
PAPER_PLAN.md
|
|
28
|
+
BIBLIOGRAPHY_VERIFIED.md
|
|
29
|
+
paper/
|
|
30
|
+
|
|
31
|
+
# Build artifacts
|
|
32
|
+
dist/
|
|
33
|
+
Rplots.pdf
|
kna-0.5.0/CODEBOOK.md
ADDED
|
@@ -0,0 +1,587 @@
|
|
|
1
|
+
# kna Master Database - Codebook
|
|
2
|
+
|
|
3
|
+
**Dataset**: `master_bills_22.parquet`
|
|
4
|
+
**Unit of observation**: Bill (의안)
|
|
5
|
+
**N**: 17,205 (22대 국회, 2024-05-30 ~ 2026-03-20)
|
|
6
|
+
**Variables**: 54
|
|
7
|
+
**Last updated**: 2026-03-30
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Variable Index
|
|
12
|
+
|
|
13
|
+
| # | Variable | Type | Coverage | Group |
|
|
14
|
+
|---|----------|------|----------|-------|
|
|
15
|
+
| 1 | `bill_id` | str | 100% | ID |
|
|
16
|
+
| 2 | `bill_no` | str | 100% | ID |
|
|
17
|
+
| 3 | `age` | int | 100% | ID |
|
|
18
|
+
| 4 | `bill_kind` | str | 100% | ID |
|
|
19
|
+
| 5 | `bill_nm` | str | 100% | ID |
|
|
20
|
+
| 6 | `ppsr_kind` | str | 100% | Proposer |
|
|
21
|
+
| 7 | `proposer_text` | str | 93.8% | Proposer |
|
|
22
|
+
| 8 | `rst_proposer` | str | 93.8% | Proposer |
|
|
23
|
+
| 9 | `rst_mona_cd` | str | 93.8% | Proposer |
|
|
24
|
+
| 10 | `publ_proposer` | str | 93.7% | Proposer |
|
|
25
|
+
| 11 | `publ_mona_cd` | str | 93.7% | Proposer |
|
|
26
|
+
| 12 | `ppsl_dt` | datetime | 100% | Lifecycle |
|
|
27
|
+
| 13 | `committee_dt` | datetime | 93.4% | Lifecycle |
|
|
28
|
+
| 14 | `bdg_cmmt_dt` | datetime | 22.4% | Lifecycle |
|
|
29
|
+
| 15 | `cmt_present_dt` | datetime | 75.2% | Lifecycle |
|
|
30
|
+
| 16 | `jrcmit_prsnt_dt` | datetime | 21.8% | Lifecycle |
|
|
31
|
+
| 17 | `cmt_proc_dt` | datetime | 23.6% | Lifecycle |
|
|
32
|
+
| 18 | `jrcmit_proc_dt` | datetime | 21.9% | Lifecycle |
|
|
33
|
+
| 19 | `law_submit_dt` | datetime | 3.0% | Lifecycle |
|
|
34
|
+
| 20 | `law_present_dt` | datetime | 2.7% | Lifecycle |
|
|
35
|
+
| 21 | `law_proc_dt` | datetime | 2.7% | Lifecycle |
|
|
36
|
+
| 22 | `proc_dt` | datetime | 21.3% | Lifecycle |
|
|
37
|
+
| 23 | `jrcmit_proc_rslt` | str | 22.4% | Result |
|
|
38
|
+
| 24 | `cmt_proc_result_cd` | str | 24.1% | Result |
|
|
39
|
+
| 25 | `law_proc_result_cd` | str | 2.7% | Result |
|
|
40
|
+
| 26 | `proc_rslt` | str | 27.5% | Result |
|
|
41
|
+
| 27 | `status` | str | 100% | Result |
|
|
42
|
+
| 28 | `passed` | int | 100% | Result |
|
|
43
|
+
| 29 | `enacted` | int | 100% | Result |
|
|
44
|
+
| 30 | `vote_result_cd` | str | 7.2% | Vote |
|
|
45
|
+
| 31 | `vote_member_total` | float | 7.2% | Vote |
|
|
46
|
+
| 32 | `vote_total` | float | 7.2% | Vote |
|
|
47
|
+
| 33 | `vote_yes` | float | 7.2% | Vote |
|
|
48
|
+
| 34 | `vote_no` | float | 7.2% | Vote |
|
|
49
|
+
| 35 | `vote_abstain` | float | 7.2% | Vote |
|
|
50
|
+
| 36 | `committee_nm` | str | 93.4% | Committee |
|
|
51
|
+
| 37 | `committee_id` | str | 93.4% | Committee |
|
|
52
|
+
| 38 | `jrcmit_nm` | str | 22.4% | Committee |
|
|
53
|
+
| 39 | `link_url` | str | 100% | Meta |
|
|
54
|
+
| 40 | `member_list` | str | 93.8% | Meta |
|
|
55
|
+
| 41 | `days_to_proc` | float | 21.3% | Derived |
|
|
56
|
+
| 42 | `days_to_committee` | float | 22.4% | Derived |
|
|
57
|
+
| 43 | `jrcmit_cmmt_dt` | datetime | 22.4% | Lifecycle (Phase 2) |
|
|
58
|
+
| 44 | `law_cmmt_dt` | datetime | 2.7% | Lifecycle (Phase 2) |
|
|
59
|
+
| 45 | `law_prsnt_dt` | datetime | 2.7% | Lifecycle (Phase 2) |
|
|
60
|
+
| 46 | `law_proc_rslt` | str | 2.7% | Result (Phase 2) |
|
|
61
|
+
| 47 | `rgs_prsnt_dt` | datetime | 7.2% | Lifecycle (Phase 2) |
|
|
62
|
+
| 48 | `rgs_rsln_dt` | datetime | 7.2% | Lifecycle (Phase 2) |
|
|
63
|
+
| 49 | `rgs_conf_nm` | str | 7.2% | Result (Phase 2) |
|
|
64
|
+
| 50 | `rgs_conf_rslt` | str | 7.2% | Result (Phase 2) |
|
|
65
|
+
| 51 | `gvrn_trsf_dt` | datetime | 2.6% | Lifecycle (Phase 2) |
|
|
66
|
+
| 52 | `prom_dt` | datetime | 2.6% | Lifecycle (Phase 2) |
|
|
67
|
+
| 53 | `prom_no` | str | 2.6% | Meta (Phase 2) |
|
|
68
|
+
| 54 | `prom_law_nm` | str | 2.6% | Meta (Phase 2) |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Detailed Variable Descriptions
|
|
73
|
+
|
|
74
|
+
### Group 1: Identifiers
|
|
75
|
+
|
|
76
|
+
#### `bill_id`
|
|
77
|
+
- **Description**: 법안 고유 식별자 (Primary Key)
|
|
78
|
+
- **Type**: `str` (object)
|
|
79
|
+
- **Format**: `PRC_` + 30-char alphanumeric / `ARC_` + 30-char alphanumeric
|
|
80
|
+
- **Example**: `PRC_Y2Z6X0Y2F1G3E1D1D1B1C2Y6Y0W6X6`
|
|
81
|
+
- **Length**: 34 characters (fixed)
|
|
82
|
+
- **Unique**: 17,205 (100%)
|
|
83
|
+
- **Null**: 0
|
|
84
|
+
- **Notes**: `PRC_` prefix for most bills (87,871 in BILLRCP); `ARC_` prefix for some older/special bills (4,650 in BILLRCP). Some non-standard IDs exist in historical data (4-digit numeric prefix). This is the master join key across all tables.
|
|
85
|
+
|
|
86
|
+
#### `bill_no`
|
|
87
|
+
- **Description**: 의안 번호
|
|
88
|
+
- **Type**: `str` (object)
|
|
89
|
+
- **Format**: 7-digit numeric string
|
|
90
|
+
- **Example**: `2217673`
|
|
91
|
+
- **Unique**: 17,197
|
|
92
|
+
- **Near-unique**: 8 duplicate bill_no values exist (대안 등으로 동일 번호 부여 가능)
|
|
93
|
+
- **Null**: 0
|
|
94
|
+
- **Notes**: 일반적으로 unique하지만 BILL_ID를 primary key로 사용해야 함. 첫 두 자리 `22`는 22대를 의미.
|
|
95
|
+
|
|
96
|
+
#### `age`
|
|
97
|
+
- **Description**: 국회 대수
|
|
98
|
+
- **Type**: `int64`
|
|
99
|
+
- **Values**: 22 (현재 데이터셋)
|
|
100
|
+
- **Null**: 0
|
|
101
|
+
- **Notes**: 확장 시 17~22 범위. 22대 = 2024.5.30 임기 시작.
|
|
102
|
+
|
|
103
|
+
#### `bill_kind`
|
|
104
|
+
- **Description**: 의안 유형
|
|
105
|
+
- **Type**: `str` (object)
|
|
106
|
+
- **Values** (9 categories):
|
|
107
|
+
|
|
108
|
+
| Value | N | % | Description |
|
|
109
|
+
|-------|---|---|-------------|
|
|
110
|
+
| 법률안 | 16,907 | 98.3% | 법률 제정/개정안 (핵심 분석 대상) |
|
|
111
|
+
| 결의안 | 112 | 0.7% | 국회 의사 표명 (법적 구속력 없음) |
|
|
112
|
+
| 동의안 | 54 | 0.3% | 헌법/법률에 따른 동의 요청 |
|
|
113
|
+
| 예산안 | 41 | 0.2% | 정부 예산안 |
|
|
114
|
+
| 중요동의 | 35 | 0.2% | 국군 해외파견 등 중요 동의 |
|
|
115
|
+
| 승인안 | 32 | 0.2% | 조약 비준 동의 등 |
|
|
116
|
+
| 선출안 | 20 | 0.1% | 인사 선출 |
|
|
117
|
+
| 규칙안 | 2 | <0.1% | 국회 규칙 |
|
|
118
|
+
| 결산 | 2 | <0.1% | 결산 심사 |
|
|
119
|
+
|
|
120
|
+
- **Null**: 0
|
|
121
|
+
- **Notes**: 대부분 연구에서는 `bill_kind == '법률안'`으로 필터링하여 사용.
|
|
122
|
+
|
|
123
|
+
#### `bill_nm`
|
|
124
|
+
- **Description**: 법안명 (의안 제목)
|
|
125
|
+
- **Type**: `str` (object)
|
|
126
|
+
- **Example**: `약사법 일부개정법률안`, `국민연금법 일부개정법률안`
|
|
127
|
+
- **Unique**: 2,984 (같은 법률에 대한 여러 개정안은 동일 이름)
|
|
128
|
+
- **Length**: 4~105 characters
|
|
129
|
+
- **Null**: 0
|
|
130
|
+
- **Notes**: 같은 법률에 대해 여러 의원이 개정안을 제출하므로 중복됨. 조세특례제한법이 661건으로 최다. NLP 분석 시 법률명 + 개정 내용 구분 필요.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### Group 2: Proposer Information
|
|
135
|
+
|
|
136
|
+
#### `ppsr_kind`
|
|
137
|
+
- **Description**: 발의/제안 주체 유형
|
|
138
|
+
- **Type**: `str` (object)
|
|
139
|
+
- **Values** (5 categories):
|
|
140
|
+
|
|
141
|
+
| Value | N | % | Description |
|
|
142
|
+
|-------|---|---|-------------|
|
|
143
|
+
| 의원 | 16,231 | 94.3% | 국회의원 발의 (대표발의자 + 공동발의자) |
|
|
144
|
+
| 위원장 | 635 | 3.7% | 상임위원회 위원장 제안 (대안, 위원회안) |
|
|
145
|
+
| 정부 | 294 | 1.7% | 정부 제출 법안 |
|
|
146
|
+
| 의장 | 41 | 0.2% | 국회의장 제안 (예산안 등) |
|
|
147
|
+
| 기타 | 4 | <0.1% | 기타 |
|
|
148
|
+
|
|
149
|
+
- **Null**: 0
|
|
150
|
+
- **Notes**: 의원 발의만 `rst_proposer`, `rst_mona_cd` 등 상세 발의자 정보 보유. 위원장/정부/의장 발의는 해당 필드가 null.
|
|
151
|
+
|
|
152
|
+
#### `proposer_text`
|
|
153
|
+
- **Description**: 발의자 전체 텍스트
|
|
154
|
+
- **Type**: `str` (object)
|
|
155
|
+
- **Example**: `김종민의원 등 10인`, `민형배의원 등 10인`
|
|
156
|
+
- **Format**: `{이름}의원 등 {N}인`
|
|
157
|
+
- **Length**: 10~24 characters
|
|
158
|
+
- **Null**: 1,063 (6.2%) - 의원 발의가 아닌 법안
|
|
159
|
+
- **Notes**: 공동발의자 수는 이 텍스트에서 정규식으로 추출 가능: `(\d+)인$`. 대표발의자 이름도 포함.
|
|
160
|
+
|
|
161
|
+
#### `rst_proposer`
|
|
162
|
+
- **Description**: 대표발의자 이름
|
|
163
|
+
- **Type**: `str` (object)
|
|
164
|
+
- **Example**: `김종민`, `윤준병`, `추미애`
|
|
165
|
+
- **Unique**: 421 (22대 국회의원 중 법안 발의자)
|
|
166
|
+
- **Length**: 2~11 characters
|
|
167
|
+
- **Null**: 1,063 (의원 발의가 아닌 법안)
|
|
168
|
+
- **Notes**: 22대 국회의원 300명 중 법안을 1건 이상 대표발의한 의원 수. 다른 프로젝트와 연결 시 `rst_mona_cd`를 사용해야 함 (이름 동명이인 존재 가능).
|
|
169
|
+
|
|
170
|
+
#### `rst_mona_cd`
|
|
171
|
+
- **Description**: 대표발의자 의원 코드 (MONA_CD)
|
|
172
|
+
- **Type**: `str` (object)
|
|
173
|
+
- **Format**: 8-character alphanumeric (일반적), 일부 더 긴 코드 존재
|
|
174
|
+
- **Example**: `M2Q9024I`, `JC14718Q`
|
|
175
|
+
- **Unique**: 421
|
|
176
|
+
- **Length**: 8~26 characters
|
|
177
|
+
- **Null**: 1,063
|
|
178
|
+
- **Notes**: **핵심 조인 키**. 다른 프로젝트(committee-witnesses-korea의 `naas_cd`, legislator-assets-korea 등)와 의원 단위 연결에 사용. 열린국회정보 의원 API에서 의원 메타데이터(정당, 지역구, 선수 등) 매칭 가능.
|
|
179
|
+
|
|
180
|
+
#### `publ_proposer`
|
|
181
|
+
- **Description**: 공동발의자 이름 목록
|
|
182
|
+
- **Type**: `str` (object)
|
|
183
|
+
- **Format**: 쉼표 구분 이름 목록
|
|
184
|
+
- **Example**: `허성무,최혁진,손솔,한창민,윤종오,김승원,전종덕,안호영,황운하`
|
|
185
|
+
- **Length**: 30~756 characters
|
|
186
|
+
- **Unique**: 13,894
|
|
187
|
+
- **Null**: 1,085
|
|
188
|
+
- **Notes**: Cosponsorship 네트워크 구축 시 파싱 필요. 이름만 포함 (코드 없음). 코드가 필요하면 `publ_mona_cd` 사용.
|
|
189
|
+
|
|
190
|
+
#### `publ_mona_cd`
|
|
191
|
+
- **Description**: 공동발의자 의원 코드 목록
|
|
192
|
+
- **Type**: `str` (object)
|
|
193
|
+
- **Format**: 쉼표 구분 MONA_CD 목록
|
|
194
|
+
- **Example**: `HHB5652A,CC78321E,2KM3589W,...`
|
|
195
|
+
- **Length**: 71~1,709 characters
|
|
196
|
+
- **Unique**: 13,894
|
|
197
|
+
- **Null**: 1,085
|
|
198
|
+
- **Notes**: `publ_proposer`와 1:1 대응 (같은 순서). 네트워크 분석 시 이 필드를 파싱하여 edge list 생성 가능. `member_list` URL을 크롤링하면 더 정확한 데이터 확보 가능.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
### Group 3: Lifecycle Timestamps
|
|
203
|
+
|
|
204
|
+
모든 날짜는 `datetime64[ns]` 타입. 법안이 해당 단계에 도달하지 않은 경우 `NaT` (Not a Time).
|
|
205
|
+
|
|
206
|
+
#### `ppsl_dt` (발의일/제출일)
|
|
207
|
+
- **Coverage**: 100% (17,205)
|
|
208
|
+
- **Range**: 2024-05-30 ~ 2026-03-20
|
|
209
|
+
- **Notes**: 모든 법안의 시작점. 22대 국회 개원일은 2024-05-30.
|
|
210
|
+
|
|
211
|
+
#### `committee_dt` (소관위원회 회부일)
|
|
212
|
+
- **Source**: nzmimeepazxkubdpn `COMMITTEE_DT`
|
|
213
|
+
- **Coverage**: 93.4% (16,071)
|
|
214
|
+
- **Range**: 2024-06-11 ~ 2026-03-20
|
|
215
|
+
- **Null reason**: 발의 직후 아직 회부되지 않았거나, 비의원발의 법안
|
|
216
|
+
- **Notes**: 발의 후 회부까지 중위 1일, 평균 3.6일. 거의 자동적으로 회부됨.
|
|
217
|
+
|
|
218
|
+
#### `bdg_cmmt_dt` (소관위 회부일 - BILLJUDGE 소스)
|
|
219
|
+
- **Source**: BILLJUDGE `BDG_CMMT_DT`
|
|
220
|
+
- **Coverage**: 22.4% (3,859)
|
|
221
|
+
- **Notes**: BILLJUDGE 데이터의 소관위 회부일. `committee_dt`와 유사하나 다른 API 소스. BILLJUDGE에 데이터가 있는 법안만 해당 (22대 3,859건).
|
|
222
|
+
|
|
223
|
+
#### `cmt_present_dt` (위원회 상정일)
|
|
224
|
+
- **Source**: nzmimeepazxkubdpn `CMT_PRESENT_DT`
|
|
225
|
+
- **Coverage**: 75.2% (12,935)
|
|
226
|
+
- **Range**: 2024-06-12 ~ 2026-03-19
|
|
227
|
+
- **Notes**: 소관위원회에서 안건으로 상정된 날짜. 회부와 상정은 다름 - 회부는 행정적 배분, 상정은 실질적 심사 개시.
|
|
228
|
+
|
|
229
|
+
#### `jrcmit_prsnt_dt` (소관위 상정일 - BILLJUDGE 소스)
|
|
230
|
+
- **Source**: BILLJUDGE `JRCMIT_PRSNT_DT`
|
|
231
|
+
- **Coverage**: 21.8% (3,759)
|
|
232
|
+
- **Notes**: BILLJUDGE의 소관위 상정일. `cmt_present_dt`와 동일 의미, 다른 소스.
|
|
233
|
+
|
|
234
|
+
#### `cmt_proc_dt` (소관위 처리일)
|
|
235
|
+
- **Source**: nzmimeepazxkubdpn `CMT_PROC_DT`
|
|
236
|
+
- **Coverage**: 23.6% (4,060)
|
|
237
|
+
- **Range**: 2024-06-18 ~ 2026-03-18
|
|
238
|
+
- **Notes**: 소관위에서 최종 처리(가결/폐기 등)된 날짜.
|
|
239
|
+
|
|
240
|
+
#### `jrcmit_proc_dt` (소관위 처리일 - BILLJUDGE 소스)
|
|
241
|
+
- **Source**: BILLJUDGE `JRCMIT_PROC_DT`
|
|
242
|
+
- **Coverage**: 21.9% (3,761)
|
|
243
|
+
- **Notes**: BILLJUDGE의 소관위 처리일.
|
|
244
|
+
|
|
245
|
+
#### `law_submit_dt` (법사위 회부일)
|
|
246
|
+
- **Source**: nzmimeepazxkubdpn `LAW_SUBMIT_DT`
|
|
247
|
+
- **Coverage**: 3.0% (510)
|
|
248
|
+
- **Range**: 2024-06-18 ~ 2026-03-17
|
|
249
|
+
- **Notes**: 소관위를 통과한 법안 중 법사위(법제사법위원회)에 회부된 법안만. 법사위는 체계/자구 심사를 담당. 매우 낮은 coverage는 대부분의 법안이 이 단계에 도달하지 못함을 의미.
|
|
250
|
+
|
|
251
|
+
#### `law_present_dt` (법사위 상정일)
|
|
252
|
+
- **Source**: nzmimeepazxkubdpn `LAW_PRESENT_DT`
|
|
253
|
+
- **Coverage**: 2.7% (464)
|
|
254
|
+
- **Notes**: 법사위에서 안건 상정. `law_submit_dt`보다 약간 적음 (회부 후 아직 상정되지 않은 법안 존재).
|
|
255
|
+
|
|
256
|
+
#### `law_proc_dt` (법사위 처리일)
|
|
257
|
+
- **Source**: nzmimeepazxkubdpn `LAW_PROC_DT`
|
|
258
|
+
- **Coverage**: 2.7% (459)
|
|
259
|
+
- **Notes**: 법사위 심사 완료일.
|
|
260
|
+
|
|
261
|
+
#### `proc_dt` (최종 처리일)
|
|
262
|
+
- **Source**: nzmimeepazxkubdpn `PROC_DT`
|
|
263
|
+
- **Coverage**: 21.3% (3,664)
|
|
264
|
+
- **Range**: 2024-06-10 ~ 2026-03-20
|
|
265
|
+
- **Notes**: 법안의 최종 처리 완료일. 원안가결/수정가결/폐기/철회 등 최종 상태가 결정된 날짜. `days_to_proc` 계산에 사용.
|
|
266
|
+
|
|
267
|
+
#### Phase 2 필드 (BILLINFODETAIL)
|
|
268
|
+
|
|
269
|
+
Phase 2 수집 완료. 다음 필드는 Variable Index #43-54에 포함되어 있습니다:
|
|
270
|
+
|
|
271
|
+
| 필드 | 설명 |
|
|
272
|
+
|------|------|
|
|
273
|
+
| `jrcmit_cmmt_dt` | 소관위 회부일 (BILLINFODETAIL 소스, 가장 정확) |
|
|
274
|
+
| `law_cmmt_dt` | 법사위 회부일 (BILLINFODETAIL) |
|
|
275
|
+
| `law_prsnt_dt` | 법사위 상정일 (BILLINFODETAIL) |
|
|
276
|
+
| `law_proc_rslt` | 법사위 처리결과 |
|
|
277
|
+
| `rgs_prsnt_dt` | 본회의 상정일 |
|
|
278
|
+
| `rgs_rsln_dt` | 본회의 의결일 |
|
|
279
|
+
| `rgs_conf_nm` | 본회의 회차 |
|
|
280
|
+
| `rgs_conf_rslt` | 본회의 결과 |
|
|
281
|
+
| `gvrn_trsf_dt` | 정부이송일 |
|
|
282
|
+
| `prom_dt` | 공포일 |
|
|
283
|
+
| `prom_no` | 공포번호 |
|
|
284
|
+
| `prom_law_nm` | 공포법률명 |
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
### Group 4: Processing Results
|
|
289
|
+
|
|
290
|
+
#### `jrcmit_proc_rslt` (소관위 처리결과)
|
|
291
|
+
- **Source**: BILLJUDGE
|
|
292
|
+
- **Coverage**: 22.4% (3,859)
|
|
293
|
+
- **Values** (11 categories):
|
|
294
|
+
|
|
295
|
+
| Value | N | Description |
|
|
296
|
+
|-------|---|-------------|
|
|
297
|
+
| 대안반영폐기 | 3,101 | 법안 내용이 위원장 대안에 반영된 후 폐기 |
|
|
298
|
+
| 수정가결 | 376 | 수정을 거쳐 가결 |
|
|
299
|
+
| 원안가결 | 212 | 원안 그대로 가결 |
|
|
300
|
+
| 철회 | 114 | 발의자가 자진 철회 |
|
|
301
|
+
| 수정안반영폐기 | 39 | 수정안에 내용 반영 후 폐기 |
|
|
302
|
+
| 부결 | 5 | 위원회에서 부결 |
|
|
303
|
+
| 폐기 | 5 | 위원회에서 폐기 결정 |
|
|
304
|
+
| 보류 | 3 | 심사 보류 |
|
|
305
|
+
| 철수 | 2 | 철수 |
|
|
306
|
+
| 임기만료폐기 | 1 | 임기 만료로 자동 폐기 |
|
|
307
|
+
| 수정안가결 | 1 | 수정안 형태로 가결 |
|
|
308
|
+
|
|
309
|
+
#### `cmt_proc_result_cd` (소관위 처리결과 - 코드)
|
|
310
|
+
- **Source**: nzmimeepazxkubdpn/nzpltgfqabtcpsmai
|
|
311
|
+
- **Coverage**: 24.1% (4,153)
|
|
312
|
+
- **Notes**: `jrcmit_proc_rslt`와 유사하나 다른 API 소스. 약간의 분류 차이 있을 수 있음.
|
|
313
|
+
|
|
314
|
+
#### `law_proc_result_cd` (법사위 처리결과)
|
|
315
|
+
- **Coverage**: 2.7% (459)
|
|
316
|
+
- **Values**: 수정가결 (264), 원안가결 (195)
|
|
317
|
+
- **Notes**: 법사위까지 도달한 법안은 거의 가결됨 (부결 없음).
|
|
318
|
+
|
|
319
|
+
#### `proc_rslt` (최종 처리결과)
|
|
320
|
+
- **Coverage**: 27.5% (4,727)
|
|
321
|
+
- **Values**:
|
|
322
|
+
|
|
323
|
+
| Value | N | Description |
|
|
324
|
+
|-------|---|-------------|
|
|
325
|
+
| 대안반영폐기 | 3,101 | 내용이 대안에 반영되어 실질적 "통과" |
|
|
326
|
+
| 원안가결 | 977 | 원안 그대로 최종 가결 → 법률 |
|
|
327
|
+
| 수정가결 | 422 | 수정 후 최종 가결 → 법률 |
|
|
328
|
+
| 철회 | 146 | 발의자 자진 철회 |
|
|
329
|
+
| 수정안반영폐기 | 39 | 수정안에 반영 후 폐기 |
|
|
330
|
+
| 부결 | 33 | 최종 부결 |
|
|
331
|
+
| 폐기 | 9 | 최종 폐기 |
|
|
332
|
+
|
|
333
|
+
- **Null**: 12,478 (72.5%) - 아직 처리되지 않은 계류 법안
|
|
334
|
+
|
|
335
|
+
#### `status` (현재 상태)
|
|
336
|
+
- **Coverage**: 100%
|
|
337
|
+
- **Values**: `proc_rslt`의 값 + "계류중" (proc_rslt이 null인 경우)
|
|
338
|
+
- **Derivation**: `proc_rslt.fillna("계류중")`
|
|
339
|
+
- **Notes**: 분석에서 가장 자주 사용할 상태 변수.
|
|
340
|
+
|
|
341
|
+
#### `passed` (통과 여부 - 넓은 정의)
|
|
342
|
+
- **Type**: `int64` (binary: 0/1)
|
|
343
|
+
- **Coverage**: 100%
|
|
344
|
+
- **Values**: 0 = 미통과 (12,705), 1 = 통과 (4,500)
|
|
345
|
+
- **Definition**: `proc_rslt in ['원안가결', '수정가결', '대안반영폐기']`
|
|
346
|
+
- **Notes**: "대안반영폐기"를 통과로 포함. 법안 내용이 다른 법안(주로 위원장 대안)에 반영된 것이므로 실질적 입법 기여로 간주. 한국 국회의 관행상 의원 발의 법안은 위원장 대안에 병합되는 것이 일반적.
|
|
347
|
+
|
|
348
|
+
#### `enacted` (가결 여부 - 좁은 정의)
|
|
349
|
+
- **Type**: `int64` (binary: 0/1)
|
|
350
|
+
- **Coverage**: 100%
|
|
351
|
+
- **Values**: 0 = 미가결 (15,806), 1 = 가결 (1,399)
|
|
352
|
+
- **Definition**: `proc_rslt in ['원안가결', '수정가결']`
|
|
353
|
+
- **Notes**: 해당 법안 자체가 법률로 확정된 경우만. 대안반영폐기 제외. 연구 설계에 따라 `passed`와 `enacted` 중 선택.
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
### Group 5: Vote Details
|
|
358
|
+
|
|
359
|
+
본회의 표결에 부쳐진 법안만 해당 (N = 1,236, 전체의 7.2%). 대부분의 법안은 표결 없이 처리됨 (위원회 단계에서 종료되거나, 본회의에서 이의 없이 통과).
|
|
360
|
+
|
|
361
|
+
#### `vote_result_cd` (표결 결과)
|
|
362
|
+
- **Values**: 원안가결 (843), 수정가결 (391), 부결 (2)
|
|
363
|
+
|
|
364
|
+
#### `vote_member_total` (재적의원수)
|
|
365
|
+
- **Range**: 295~300
|
|
366
|
+
- **Notes**: 22대 의원 정수 300명. 사직/보궐 등으로 변동.
|
|
367
|
+
|
|
368
|
+
#### `vote_total` (투표 참여 의원수)
|
|
369
|
+
- **Range**: 150~297 (mean: 230.4, median: 238)
|
|
370
|
+
|
|
371
|
+
#### `vote_yes` (찬성)
|
|
372
|
+
- **Range**: 75~297 (mean: 222.5, median: 229)
|
|
373
|
+
|
|
374
|
+
#### `vote_no` (반대)
|
|
375
|
+
- **Range**: 0~181 (mean: 4.0, median: 0)
|
|
376
|
+
- **Notes**: 대부분의 표결에서 반대 0. 중위수 0은 만장일치 투표가 지배적임을 의미.
|
|
377
|
+
|
|
378
|
+
#### `vote_abstain` (기권)
|
|
379
|
+
- **Range**: 0~44 (mean: 3.9, median: 2)
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
### Group 6: Committee Information
|
|
384
|
+
|
|
385
|
+
#### `committee_nm` (소관위원회 이름)
|
|
386
|
+
- **Coverage**: 93.4% (16,068)
|
|
387
|
+
- **Unique**: 25 committees
|
|
388
|
+
- **Top 5**: 행정안전위원회(2,117), 법제사법위원회(1,519), 기후에너지환경노동위원회(1,406), 국토교통위원회(1,374), 보건복지위원회(1,364)
|
|
389
|
+
- **Null reason**: 비의원발의 법안 중 위원회 미배정 건
|
|
390
|
+
|
|
391
|
+
#### `committee_id` (소관위원회 코드)
|
|
392
|
+
- **Coverage**: 93.4% (16,068)
|
|
393
|
+
- **Format**: 7-digit numeric string (e.g., `9700480`)
|
|
394
|
+
- **Notes**: `committee_nm`과 1:1 대응. 위원회 코드로 조인 시 사용.
|
|
395
|
+
|
|
396
|
+
#### `jrcmit_nm` (소관위 - BILLJUDGE 소스)
|
|
397
|
+
- **Coverage**: 22.4% (3,858)
|
|
398
|
+
- **Unique**: 30 (위원회 명칭 변경 반영)
|
|
399
|
+
- **Notes**: BILLJUDGE에서의 소관위 이름. `committee_nm`과 약간의 명칭 차이 가능 (22대 위원회 개편 반영 여부 차이).
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
### Group 7: Metadata
|
|
404
|
+
|
|
405
|
+
#### `link_url` (LIKMS 상세 페이지)
|
|
406
|
+
- **Coverage**: 100%
|
|
407
|
+
- **Format**: `http://likms.assembly.go.kr/bill/billDetail.do?billId={BILL_ID}&ageFrom=22&ageTo=22`
|
|
408
|
+
- **Notes**: 국회 입법정보시스템 상세 페이지. 법안 원문(PDF), 심사 경과, 회의록 링크 등 확인 가능. 법안 원문 크롤링의 진입점.
|
|
409
|
+
|
|
410
|
+
#### `member_list` (공동발의자 목록 URL)
|
|
411
|
+
- **Coverage**: 93.8% (16,142)
|
|
412
|
+
- **Format**: `http://likms.assembly.go.kr/bill/coactorListPopup.do?billId={BILL_ID}`
|
|
413
|
+
- **Notes**: 크롤링하면 공동발의자 상세 정보(이름, 정당, 선수 등) 획득 가능. Cosponsorship 네트워크 구축의 원천 데이터.
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
### Group 8: Derived Variables
|
|
418
|
+
|
|
419
|
+
#### `days_to_proc` (발의~처리 소요일)
|
|
420
|
+
- **Coverage**: 21.3% (3,664) - 처리 완료된 법안만
|
|
421
|
+
- **Derivation**: `(proc_dt - ppsl_dt).days`
|
|
422
|
+
- **Distribution**: min 0, Q1 99, median 171, mean 210, Q3 290, max 645
|
|
423
|
+
- **Unit**: Days
|
|
424
|
+
- **Notes**: 0일은 발의 당일 처리 (주로 위원장안). 645일은 22대 초기 발의 후 최근 처리된 법안.
|
|
425
|
+
|
|
426
|
+
#### `days_to_committee` (발의~소관위 회부 소요일)
|
|
427
|
+
- **Coverage**: 22.4% (3,859)
|
|
428
|
+
- **Derivation**: `(bdg_cmmt_dt - ppsl_dt).days`
|
|
429
|
+
- **Distribution**: min 0, Q1 0, median 1, mean 3.6, max 495
|
|
430
|
+
- **Unit**: Days
|
|
431
|
+
- **Notes**: 중위 1일로 거의 자동적 회부. 495일 이상 소요는 극단적 예외.
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## Satellite Tables
|
|
436
|
+
|
|
437
|
+
### `committee_meetings` (위원회 회의정보)
|
|
438
|
+
|
|
439
|
+
**Source**: BILLJUDGECONF
|
|
440
|
+
**Unit**: Bill-Meeting (1 bill = N meetings)
|
|
441
|
+
**Rows**: 572,127 (17-22대)
|
|
442
|
+
|
|
443
|
+
| Variable | Type | Description |
|
|
444
|
+
|----------|------|-------------|
|
|
445
|
+
| `bill_id` | str | 법안 ID (FK → bills) |
|
|
446
|
+
| `jrcmit_conf_nm` | str | 회의명 (예: "제419회 국회 보건복지위원회") |
|
|
447
|
+
| `jrcmit_conf_dt` | str | 회의 날짜 |
|
|
448
|
+
| `jrcmit_conf_rslt` | str | 회의 결과 (상정, 소위심사보고, 축조심사, 의결 등) |
|
|
449
|
+
|
|
450
|
+
### `judiciary_meetings` (법사위 회의정보)
|
|
451
|
+
|
|
452
|
+
**Source**: BILLLWJUDGECONF
|
|
453
|
+
**Unit**: Bill-Meeting (1 bill = N meetings)
|
|
454
|
+
**Rows**: 15,325 (17-22대)
|
|
455
|
+
|
|
456
|
+
| Variable | Type | Description |
|
|
457
|
+
|----------|------|-------------|
|
|
458
|
+
| `bill_id` | str | 법안 ID (FK → bills) |
|
|
459
|
+
| `lwcmit_conf_nm` | str | 법사위 회의명 |
|
|
460
|
+
| `lwcmit_conf_dt` | str | 법사위 회의 날짜 |
|
|
461
|
+
| `lwcmit_conf_rslt` | str | 법사위 회의 결과 |
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
## Ideal Points (이상점)
|
|
466
|
+
|
|
467
|
+
본 저장소는 **세 가지 이상점 계열**을 제공한다. 셋은 서로 다른 질문에 답하며
|
|
468
|
+
**교체 가능하지 않다**. 생성 스크립트는 `build_ideal_points.R` 하나다.
|
|
469
|
+
|
|
470
|
+
| 파일 | 컬럼 | 방법 | 대수 내 비교 | 대수 간 비교 | 의원 이동 |
|
|
471
|
+
|------|------|------|:---:|:---:|:---:|
|
|
472
|
+
| `ideal_points_wnominate.csv` | `wnom_1d`, `wnom_2d` | 대수별 W-NOMINATE | ✅ | ❌ | ❌ |
|
|
473
|
+
| `ideal_points_bridged.csv` | `bridged_1d` | 연쇄 bridging 정렬 | ✅ | ✅ | ⚠️ 부분적 |
|
|
474
|
+
| `ideal_points_dwnominate.csv` | `dwnom_1d` | 통합 DW-NOMINATE | ✅ | ✅ | ❌ (상수) |
|
|
475
|
+
|
|
476
|
+
공통 컬럼: `member_id` (MONA_CD), `member_name`, `party`, `term`.
|
|
477
|
+
부호 규약: **양수 = 보수, 음수 = 진보** (Voteview 표준, 세 계열 모두 통일).
|
|
478
|
+
|
|
479
|
+
### 1. `ideal_points_wnominate.csv` - 대수별 W-NOMINATE
|
|
480
|
+
|
|
481
|
+
각 대수를 독립적으로 스케일링한다. 표본은 소수파 비율 2.5% 이상인 표결(contested)과
|
|
482
|
+
그런 표결에 20회 이상 참여한 의원으로 제한된다.
|
|
483
|
+
|
|
484
|
+
**⚠️ 대수 간 비교 금지.** 스케일링 모형은 의원 배치를 **반사(reflection)와 정규화까지만**
|
|
485
|
+
식별한다. 축의 부호가 임의이고, 각 대수가 같은 유계 공간으로 재정규화된다. 따라서
|
|
486
|
+
`wnom_1d[t=22] - wnom_1d[t=20]`은 실제 이동과 척도 재설정이 섞인 해석 불가능한 양이다.
|
|
487
|
+
|
|
488
|
+
이 파일에서는 보수 정당 평균이 음수가 되도록 대수마다 부호를 맞춰 두었으므로 부호 문제는
|
|
489
|
+
해소되어 있으나, **재정규화 문제는 남는다**.
|
|
490
|
+
|
|
491
|
+
### 2. `ideal_points_bridged.csv` - 연쇄 bridging 정렬
|
|
492
|
+
|
|
493
|
+
두 대수 모두에 재직한 의원(bridging legislators)을 이용해 이후 대수를 이전 대수의 단위로
|
|
494
|
+
사상(map)한다. 20대를 기준으로 21대를 정렬하고, 정렬된 21대를 기준으로 22대를 정렬한다.
|
|
495
|
+
|
|
496
|
+
```
|
|
497
|
+
bridged_1d[t] = intercept_t + slope_t * wnom_1d[t]
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
적합 계수는 `ideal_points_bridging_params.csv`에 기록된다 (21대 n=126, 22대 n=150).
|
|
501
|
+
|
|
502
|
+
**가정**: bridging 의원들이 평균적으로 이동하지 않는다고 본다. 실제로 이동했다면 그 이동이
|
|
503
|
+
사상(mapping)에 흡수된다. 이 한계를 감수하면 대수 간 비교가 가능하고, 의원별 대수별 변화도
|
|
504
|
+
보존되므로 시계열 시각화에 적합하다. **본 저장소의 기본 계열이다.**
|
|
505
|
+
|
|
506
|
+
### 3. `ideal_points_dwnominate.csv` - 통합 DW-NOMINATE
|
|
507
|
+
|
|
508
|
+
세 대수를 함께 추정하며 bridging 의원이 단일 척도를 정박한다. 학술적으로 가장 정통이다.
|
|
509
|
+
|
|
510
|
+
**⚠️ 구조적 제약**: `dwnominate`는 의원 궤적을 대수 지수의 다항식으로 표현하는데,
|
|
511
|
+
**선형 궤적조차 최소 5개 회기가 필요**하다. 3개 대수뿐이므로 상수항만 추정 가능하고,
|
|
512
|
+
따라서 **각 의원은 전 기간 단일 값**을 갖는다. 정당 평균의 대수 간 변화는 전적으로
|
|
513
|
+
구성(교체) 효과다. 의원 개인의 이동 분석에는 사용할 수 없다.
|
|
514
|
+
|
|
515
|
+
### 세 계열의 비교
|
|
516
|
+
|
|
517
|
+
양대 정당 평균 간 거리:
|
|
518
|
+
|
|
519
|
+
| 대수 | 대수별 W-NOM | bridged | 통합 DW-NOM |
|
|
520
|
+
|------|-------------|---------|------------|
|
|
521
|
+
| 20대 | 0.753 | 0.753 | 0.710 |
|
|
522
|
+
| 21대 | 0.903 | 0.806 | 0.772 |
|
|
523
|
+
| 22대 | 1.243 | 0.801 | 0.794 |
|
|
524
|
+
| **20→22 증가율** | **+65.0%** | **+6.3%** | **+12.0%** |
|
|
525
|
+
|
|
526
|
+
방법론적으로 독립적인 두 bridging 방식(2번, 3번)이 서로 일치하고, 대수별 추정만 크게
|
|
527
|
+
벗어난다. 이는 재정규화가 대수별 추정에서 양극화 증가를 부풀린다는 것을 보여준다.
|
|
528
|
+
**대수 간 양극화 추세를 논할 때 대수별 계열을 쓰면 증가폭이 과대평가된다.**
|
|
529
|
+
|
|
530
|
+
### 데이터 제약
|
|
531
|
+
|
|
532
|
+
- **20대 이후만 제공**. 열린국회정보 API는 20대부터 의원별 표결을 공개한다.
|
|
533
|
+
16-19대 기록은 `roll_calls_all.parquet`에 일부 있으나 `member_id`/`bill_id`가
|
|
534
|
+
결측이라 표결 행렬을 구성할 수 없다.
|
|
535
|
+
- 22대는 회기 중이며 값은 잠정적이다.
|
|
536
|
+
- 정당 라벨은 API가 소급 부여한다(각 의원의 최근 정당). 대수 간 당적 변경은
|
|
537
|
+
표결 데이터만으로는 직접 관측되지 않는다.
|
|
538
|
+
|
|
539
|
+
### `dw_ideal_points_20_22.csv` (deprecated)
|
|
540
|
+
|
|
541
|
+
이전 배포판의 이 파일은 DW-NOMINATE로 라벨링되었으나 실제로는 대수별 W-NOMINATE에
|
|
542
|
+
부호를 맞춘 것이었다(`coord1D`). `aligned` 컬럼은 위 2번과 같은 연쇄 bridging 정렬이었으나
|
|
543
|
+
문서화되지 않았다. 상세는 `CORRECTIONS.md` 참조. 신규 작업에는 위 세 파일을 사용할 것.
|
|
544
|
+
|
|
545
|
+
---
|
|
546
|
+
|
|
547
|
+
## Coverage Notes
|
|
548
|
+
|
|
549
|
+
### 왜 많은 필드가 낮은 coverage인가?
|
|
550
|
+
|
|
551
|
+
22대 국회는 현재 **진행 중** (2024.5 ~ 현재). 17,205건 중 12,478건(72.5%)이 아직 계류 상태.
|
|
552
|
+
|
|
553
|
+
| 단계 | 도달 법안 수 | 전체 대비 |
|
|
554
|
+
|------|------------|----------|
|
|
555
|
+
| 발의 | 17,205 | 100% |
|
|
556
|
+
| 소관위 회부 | ~16,071 | 93.4% |
|
|
557
|
+
| 소관위 상정 | ~12,935 | 75.2% |
|
|
558
|
+
| 소관위 처리 | ~4,060 | 23.6% |
|
|
559
|
+
| 법사위 회부 | ~510 | 3.0% |
|
|
560
|
+
| 법사위 처리 | ~459 | 2.7% |
|
|
561
|
+
| 본회의 표결 | ~1,236 | 7.2% |
|
|
562
|
+
| 최종 처리 | ~4,727 | 27.5% |
|
|
563
|
+
|
|
564
|
+
이 "깔때기" 구조 자체가 연구 대상임 - 법안이 어느 단계에서 사라지는지.
|
|
565
|
+
|
|
566
|
+
### 중복 날짜 필드 설명
|
|
567
|
+
|
|
568
|
+
일부 날짜가 여러 API 소스에서 중복 수집됨:
|
|
569
|
+
- `committee_dt` (nzmimeepazxkubdpn) vs `bdg_cmmt_dt` (BILLJUDGE)
|
|
570
|
+
- `cmt_present_dt` (nzmimeepazxkubdpn) vs `jrcmit_prsnt_dt` (BILLJUDGE)
|
|
571
|
+
- `cmt_proc_dt` (nzmimeepazxkubdpn) vs `jrcmit_proc_dt` (BILLJUDGE)
|
|
572
|
+
|
|
573
|
+
nzmimeepazxkubdpn이 의원 발의 법안 전체를 커버(16,142건)하고, BILLJUDGE는 처리된 법안 위주(3,859건). 둘 다 보유하여 cross-validation 가능.
|
|
574
|
+
|
|
575
|
+
Phase 2의 BILLINFODETAIL은 가장 포괄적인 lifecycle 데이터를 제공하며, 전 대수 수집 완료(2026-03-26).
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
## Cross-Project Join Keys
|
|
580
|
+
|
|
581
|
+
| This DB | Other Project | Join Key | Notes |
|
|
582
|
+
|---------|---------------|----------|-------|
|
|
583
|
+
| `rst_mona_cd` | committee-witnesses-korea (`naas_cd`) | 의원 코드 | 형식 확인 필요 |
|
|
584
|
+
| `rst_mona_cd` | legislator-assets-korea | 의원 코드 | 발의 행태 + 자산 연결 |
|
|
585
|
+
| `bill_id` | na-legislative-events-korea | 법안 ID | 동일 소스, 직접 조인 |
|
|
586
|
+
| `rst_proposer` | korean-politics-youtube (`HG_NM`) | 의원 이름 | 동명이인 주의, 코드 선호 |
|
|
587
|
+
| `committee_nm` | committee-witnesses-korea | 위원회명 | harmonization 필요 |
|