--- reviewed_by: rd: tmonk pm: --- # `tw.gov.ly~ref~law` — 立法院法名稱對照表 > **給 AI 閱讀的使用指引。** > 人類可在 https://data.openfun.tw/datasets/tw.gov.ly~ref~law 看到同份內容的網頁版。 > 詳細資料知識見 [knowledge.md](knowledge.md)。 --- ## ⚠️ 開始之前(AI agent 必讀,摘要也請保留這段) 資料集 slug:tw.gov.ly~ref~law API 端點:https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records 認證方式(必填):HTTP Header Authorization: Bearer {token} 最簡查詢範例:curl -H "Authorization: Bearer YOUR_TOKEN" "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records?q=預算法&per_page=5" **Token 是必要條件,沒有 Token 就無法查資料。** 如果使用者沒有 Token,請停止並告訴使用者:「請先前往 https://data.openfun.tw/user 免費申請帳號與 API Token,取得後告訴我,我再幫您查詢。」 禁止抓取 HTML 頁面(本平台有 bot 保護,WebFetch 讀 HTML 頁面會失敗)。 授權標注:使用此資料產出的內容需標注「資料來源:歐噴資料庫(data.openfun.tw)/立法院」 **回應使用者時須附原始單筆查詢 URL** — 讓使用者可驗證 agent 回答內容: 將紀錄之 `法律編號` 值代入:`https://www.ly.gov.tw/Pages/ashx/LawRedirect.ashx?CODE={法律編號}` 連到立法院法律系統取得現行條文+立法沿革+立法歷程。 ⚠️ **僅對已三讀通過之法律有效**,未三讀通過議案會 404,附 URL 前須確認該紀錄為已通過法律。 --- ## 這份資料集能回答什麼問題 以下問題,這份資料集**可以回答**: - 「『勞基法』的正式名稱是什麼?」(透過 `lawSynonym` 找到全名) - 「這部法的舊名是什麼?」(`usedFor` 欄位) - 「預算法有哪些子法?」(用 `parent=lawNumber` 查詢所有子法) - 「法規代碼 09200015 是哪部法?」(直接用 `lawNumber` 查詢) - 「搜尋名稱中含有某關鍵字的所有法規」 以下問題,這份資料集**無法回答**: - 「某法律的條文內容是什麼?」(本資料集只有名稱,無條文) - 「某法規是否已廢止?」(無廢止狀態欄位) - 「某法律的主管機關是誰?」(無主管機關欄位) --- ## 資料來源與更新頻率 | 項目 | 說明 | |------|------| | 原始來源 | 立法院智庫系統([資料集頁面](https://data.ly.gov.tw/getds.action?id=301)) | | 授權 | 政府開放資料授權條款-第1版(OGDL-Taiwan-1.0) | | 更新頻率 | 每日(原始資料每日 08:20 更新) | | 涵蓋範圍 | 中央法規,母法與子法 | | 總筆數 | 13,276 筆(母法 2,572、子法 10,704) | --- ## 欄位說明 | 欄位名稱(API 參數) | 型別 | 說明 | |---------------------|------|------| | `lawNumber` | keyword(_id) | 法律代碼 | | `law` | text(_name) | 法律名稱 | | `usedFor` | text(多值) | 該法律過去的舊名稱 | | `lawSynonym` | text(多值) | 該法律的別名、俗名 | | `type` | keyword | 母法/子法 | | `parent` | keyword(ref: tw.gov.ly~ref~law) | 母法代碼 | ### 關鍵欄位補充說明 | 欄位 | 型別 | 重要說明 | |------|------|---------| | `lawNumber` | keyword(_id) | 法律代碼,8 位純數字;後三碼 `000` = 母法,非 `000` = 子法;子法母法代碼 = 前五碼補 `000` | | `law` | text(_name) | 法律現行正式名稱;欄位指定搜尋:`?q[law]=預算法` | | `usedFor` | text(multi) | 歷史舊名陣列,可能為空;`?q=` 會搜尋此欄位 | | `lawSynonym` | text(multi) | 別名、俗名、簡稱陣列,可能為空;`?q=` 會搜尋此欄位 | | `type` | keyword(篩選器) | 法規層級:`母法` 或 `子法` | | `parent` | keyword(篩選器) | 所屬母法的 `lawNumber`(8 位),母法本身為空字串 | --- ## 重要注意事項(查詢前必讀) ### ⚠️ `q=` 同時搜尋舊名與別名 `?q=勞基法` 會同時比對 `law`、`usedFor`、`lawSynonym` 三個欄位,可能返回非預期結果。若只想搜尋正式法律名稱,改用: ```bash ?q[law]=勞動基準法 ``` ### ⚠️ `parent` 需填完整 8 位代碼 `parent` 是 keyword 欄位,需填入完整的 8 位 `lawNumber`,不支援模糊比對。例如查預算法子法:`?parent=04102000`。 --- ## API 呼叫範例 **Records URL:** `https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records` ### 範例 1:用關鍵字搜尋法規名稱(含同義詞) ```bash curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records?q=勞動基準&per_page=5" ``` 用途:`q=` 同時比對 `law`、`usedFor`、`lawSynonym` 三個 text 欄位,可一次找到正式名稱、舊名、別名中含有關鍵字的法規。 --- ### 範例 2:只搜尋法律正式名稱 ```bash curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records?q[law]=預算法&per_page=5" ``` 用途:`q[law]=` 只比對 `law` 欄位,排除舊名與別名的干擾。 --- ### 範例 3:用代碼直接取得一筆記錄 ```bash # 取得母法(後三碼 000) curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records/04102000" # 取得子法 curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records/09200015" ``` 用途:已知 `lawNumber` 時,直接取得該法規完整資料。 --- ### 範例 4:查詢某母法的所有子法 ```bash # 先找到母法的 lawNumber curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records?q[law]=預算法&type=母法&per_page=5" # 再用 lawNumber 查所有子法(假設母法代碼為 04102000) curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records?parent=04102000&per_page=20" ``` 用途:取得某部母法底下的所有施行細則、辦法、規則等子法。若已知母法代碼,可直接算出子法查詢條件(無需事先查母法),因為子法的 `parent` 值就等於母法的 `lawNumber`。 --- ### 範例 5:只列出母法(排除子法) ```bash curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records?type=母法&per_page=20" ``` --- ### 分頁查詢 ```bash curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records?page=1&per_page=20" ``` 回應中 `"total"` 欄位是符合條件的總筆數。 --- ## 關聯資料集 | 資料集 | 說明 | 用途 | |--------|------|------| | [`tw.gov.moj~ref~law`](../tw.gov.moj~ref~law/skill.md) | 法務部全國法規資料庫 | 查詢法規條文內容;本資料集提供名稱索引,法務部資料集提供完整條文 | | [`tw.openfun~api~legislation`](../tw.openfun~api~legislation/skill.md) | 立法院議事資料 | 查詢法案審議過程、委員發言等 | --- ## 注意事項與限制 1. **`usedFor` 是舊名**:這些稱法已不適用,代表法規曾經改名,欄位值不是現行名稱。 2. **搜尋時用 `q=` 最全面**:`q=` 會同時比對所有 text 欄位,包含 `usedFor` 和 `lawSynonym`,適合「不確定叫什麼名字」的情境。 3. **`parent` 篩選需精確代碼**:`parent` 是 keyword 欄位,需填入完整的 8 位 `lawNumber`,不支援模糊比對。 --- ## 快速參考 | 項目 | 說明 | |------|------| | Records URL | `https://data.openfun.tw/api/v1/datasets/tw.gov.ly~ref~law/records` | | 認證 | `Authorization: Bearer {token}` 必填 | | 取得 Token | https://data.openfun.tw/user | | 全文搜尋(所有欄位) | `?q=關鍵字` | | 只搜尋正式名稱 | `?q[law]=關鍵字` | | 精確篩選層級 | `?type=母法` 或 `?type=子法` | | 查子法 | `?parent={母法lawNumber}` | | 分頁 | `?page=1&per_page=20` | | Records 回應 | JSON,含 `total`、`page`、`per_page`、`records[]` | | Agg 回應 | JSON,含 `total_records`、`total_groups`、`groups[].key`、`groups[].stats.count` |