法令の改正と履歴
本稿では、法令データを時系列の側面から利用・分析するために必要な、法令の改正と履歴の基礎について解説します。
法令のライフサイクル
法令は、成立後、官報に掲載されます。これを「公布」と呼びます。
また、法令の効力を発生させることを「施行」と呼びます。法令は「公布の日」に施行されることもありますが、公布の日のほかにも、「何月何日」、「政令で定める日」といったように施行の期日を指定することができます。
法令の改正
公布された法令は、いわば法令の"初版"といえます。この法令を、他の法令を用いて改正し、新たに"改正版"をつくることができます。このとき、改正される法令を「被改正法令」、改正する法令を「改正法令」と呼びます。改正版のことを、法令APIなどでは「リビジョン」と呼ぶことがあります。
下の図は、「法」という被改正法令が、「法」及び「法」という法令により順次改正され、新しい改正版(リビジョン)が生じる様子を表しています。
法令は、改正された後は改正後の条文が効力を持つことになります。そのため、法令を取り扱う際は、現時点で有効な改正版はどれか、また過去の条文を扱う場合はいつの時点の改正版かを区別する必要があります。
法令の廃止等
法令は、他の法令により明示的に廃止されることがあります。他方、法令で廃止されるのではなく、時間の経過と共に失効したり、実効性を喪失することがあります。
また逆に、法令を改正して元の条文を書き換えるときに、「なおその効力を有する」とされて、改正前の元の条文が有効なものとして残されることもあります。法令情報を取り扱う際は、ときにこのような複雑な効力の変化が隠れていることに注意が必要です。
Try it out!
サンプルコードの実行方法
このサイトに記載のサンプルコードのご利用は、ご自身の責任で行ってください。万が一サンプルコードの利用による不利益が生じた場合でも、一切の責任を負いかねますのでご了承ください。
サンプルコードは、一例として、下記の手順で実行することができます。
test.html
というテキストファイルを作成し、下記の内容を入力して保存してください。
<html><head><meta charset="utf-8"/><script>
【この場所にコードを記述】
</script></head></html>
test.html
をブラウザで開き、JavaScriptコンソールを開くと、出力が表示されます。JavaScriptコンソールは、Chrome/Edgeの場合は、Ctrl+Shift+J
(Windows/Linux) またはCmd+Opt+J
(Mac) で開くことができます。
法令APIを使って、e-Gov法令検索に掲載されている法令の公布日(データ整備時点で効力を有していた法令の"初版" の公布日)がどのように分布しているか調べてみます。(ちなみに、日本国憲法の公布日は1946(昭和21)年11月3日です。)
(async () => {
// 法令APIから法令の一覧XMLを取得する
const r = await fetch("https://laws.e-gov.go.jp/api/1/lawlists/1/");
const xml = await r.text();
const parser = new DOMParser();
const doc = parser.parseFromString(xml, "application/xml");
// 公布日の一覧を取得する
const dateList =
[...doc.querySelectorAll("LawNameListInfo > PromulgationDate")]
.map(el => el.textContent);
dateList.sort();
console.log(dateList);
// 公布日の「年代」をカウントする
const counter = {};
for (const date of dateList) {
const decade = date.slice(0, 3) + "0s";
counter[decade] = (counter[decade] ?? 0) + 1;
}
console.log(counter);
})();
法令の改正規定
法令の改正は、改正法令中に規定されている「改正規定」により行われます。改正規定が適用されて法令の文章が更新される文字操作を「溶け込ませる」と呼び、このようにして生成された文章を「溶け込み」や「溶け込み条文」と呼ぶことがあります。
下の図は、「旧」に記載されている改正前の溶け込み条文が、「改正」に記載されている改正規定によって改正され、「新」に記載されている改正後の溶け込み条文になる様子を表しています。
改正規定の書き方は、曖昧性をなくすため、改正箇所と改正内容を文字単位で明示する方法が用いられています。この方法は「改め文」と呼ばれます。上の図の例は「改め文」によるものです。なお、府省令では、改正規定の中に新旧対照表を含める形で改正内容を記述する「新旧対照表方式」も用いられています。
なお、一つの改正法令の中に複数の改正規定があるとき、これらの改正規定の全てが同じ日に施行される(同じ日に改正する)こともありますが、異なる日に施行される(異なる日に改正する)こともあります。
例えば、「デジタル社会の形成を図るための規制改革を推進するためのデジタル社会形成基本法等の一部を改正する法律」(令和五年法律第六十三号) (opens in a new tab)という法律の施行期日は同法の附則第一条に規定されていますが、3つの異なる施行期日が設けられています。
法令履歴ID
法令履歴IDは、法令IDに、どの時点の改正版(リビジョン)かの情報を付加したものです。
法令履歴IDの構造は次のとおりです。
[法令ID]_YYYYMMDD_[改正法令の法令ID] <- 法令履歴ID
↓
YYYYMMDD 改正規定の施行期日
[改正法令の法令ID]
には、次のような場合に000000000000000
を使用します。- 法令が最初に公布されたときのリビジョンを表す場合。このとき、
YYYYMMDD
には法令の施行期日を使用します。何段階かに分けて施行される場合は、その施行期日ごとに複数のリビジョンが設けられることがあります。 - データ整備の際に法令が最初に公布されたときのリビジョンまで遡らず、一定の期日(基準日)時点のリビジョンを格納する場合。このとき、
YYYYMMDD
には基準日を使用します。
- 法令が最初に公布されたときのリビジョンを表す場合。このとき、
例(平成五年法律第八十八号のリビジョンのうち、令和五年法律第五十六号の改正規定で2023年12月1日に施行されたものによる改正後を表すもの):
405AC0000000088_20231201_505AC0000000056 <- 法令履歴ID
↓ ↓ ↓
405AC0000000088 -> 平成五年法律第八十八号
20231201 -> 2023年12月1日施行の改正規定による改正
505AC0000000056
-> 令和五年法律第五十六号による改正
もっと詳しく
法令の改正と履歴についてさらに詳しくは、 法令文書とバージョン管理 のページをご覧ください。