French law, change by change
收藏数据链接:
官方服务:
资源简介:
LEGI(Légifrance 背后的数据库)中的每个合并文本作为一个 Git 仓库:1958 年宪法、各法典,以及 LEGI 整合的法律、条例、法令和命令,每个条款一个文件。每个提交是一份生效文本:写入该文本产生的条款版本,归因于该文本,并标注版本生效当天巴黎中午的日期。文本来自 LEGI,由 DILA 根据 Licence Ouverte 2.0 发布。包含 187,161 个法律提交,从 0881-10-09 到 2026-10-28 的数据;153,011 个文本中的 1,556,213 个条款版本,由 156,293 个文本创建或结束。最后一天,692,985 个条款文件在 77 个法典和 118,773 个其他文本中有效。
创建时间:
2026-10-28
原始信息汇总
French law, change by change
- 数据集详情页:https://github.com/lexifina/france-law
- 数据来源:LEGI,Légifrance 背后的数据库
- 发布方与许可:DILA 发布,Licence Ouverte 2.0
- 许可文件:https://github.com/lexifina/france-law/blob/main/LICENSE
内容概述
- 将 LEGI 中的每份合并文本作为一个 git 仓库。
- 包含 1958 年宪法、法典,以及 LEGI 合并的法律、条例、法令和命令。
- 每篇文章一个文件。
- 每个提交是一个生效文本:写入该文本产生的文章版本,归属该文本,日期为版本生效日巴黎中午。
- 文本来自 LEGI,由 DILA 根据 Licence Ouverte 2.0 发布。
统计数据
- 187,161 个法律提交,从 0881-10-09 到 2026-10-28 的数据。
- 1,556,213 个文章版本,分布于 153,011 个文本,由 156,293 个文本制定或终止。
- 最后一天,692,985 个文章文件生效,分布于 77 个法典和 118,773 个其他文本。
仓库与文件结构
- 仓库持有 692,985 个文章文件,因此裸克隆(
git clone --bare)获取更快;以下 git 命令均可在裸克隆中工作。 - 在裸克隆中,先取出工具:
git show main:tools/en_vigueur.py > en_vigueur.py,然后在克隆内以python ../en_vigueur.py …运行。 constitution/constitution-1958/是 1958 年 10 月 4 日宪法;其他宪制文本在其旁。codes/<code>/,例如codes/code-civil/,保存每个生效或废止的法典。textes/<nature>/<year>/<nature>-<number>/保存所有其他合并文本,例如textes/loi/1978/loi-78-17/,即 1978 年 1 月 6 日数据保护法。- 每篇文章一个文件,以编号命名:
L. 1234-1为L1234-1.md。 - 无编号文章以 LEGI 标识符命名。
- 如果同一文本两个文章同时同编号,后者的文件名末尾加其 LEGI 标识符部分。
- 文件内容为
# Article <number>,然后文章段落,然后 LEGI 的NOTA(若有)。 - 文章停止生效时被移除。
- 每个文本文件夹有
index.md,含标题、性质、编号、日期、标识符和 Légifrance 链接。 - 章节标题(livres、titres、chapitres)不复制。
查询示例
| 问题 | 命令 |
|---|---|
| 2000-01-01 宪法第 1 条说了什么? | python tools/en_vigueur.py 2000-01-01 constitution-1958 1 |
| 2010-06-01 民法典第 1382 条 | python tools/en_vigueur.py 2010-06-01 code-civil 1382 |
| 哪个文本写了宪法第 1 条每一段? | git blame main -- constitution/constitution-1958/1.md |
| 宪法第 1 条每次变更,含文本和日期 | git log --follow --format="%(trailers:key=In-force,valueonly,separator=) %an" main -- constitution/constitution-1958/1.md |
| 宪法变更的每一天 | git tag -l "constitution/*" |
| 民法典最近十次变更 | git log -10 --format="%(trailers:key=In-force,valueonly,separator=) %an" main -- codes/code-civil |
| 某个文本改变的一切:2008 年 7 月 23 日宪法性法律 | git log --author="2008-724" --format="%(trailers:key=In-force,valueonly,separator=) %s" main |
| LEGI 未给出修改文本的版本 | git log -5 --author="Légifrance" --format="%(trailers:key=In-force,valueonly,separator=) %b" main |
| 没有后继而结束的文章 | git log -5 --author="Fin de vigueur" --format="%(trailers:key=In-force,valueonly,separator=) %b" main |
| 一个文本是什么,及其编号和 Légifrance 链接 | git show main:codes/code-civil/index.md |
日期与作者
- 法国文本有签署日(
Signed:)、在 Journal officiel 的公布日,以及对其产生的每个文章版本,该版本生效日。 - 提交日期为文章版本生效日,即 LEGI 的 DATE_DEBUT,巴黎中午,CET,夏令时为 CEST;该日决定适用哪个文本。
- 每个法律提交中的 trailer
In-force:带有该日。 - Git 无法存储 1970 年前的日期,因此更早提交日期为 1970-01-01 UTC,按顺序相差一秒,其真实日期仅在
In-force:和标签中;tools/en_vigueur.py读取 trailer。 - 提交的作者是作出更改的文本,来自 LEGI 字段:性质、编号、签署日期,例如
Loi constitutionnelle n° 2008-724 du 23 juillet 2008,地址由 Journal officiel 标识符组成并以@legifrance.invalid结尾,因此git blame命名文本。 - 提交者始终是
Lexifina。 - LEGI 将每个文章版本链接到创建、修改、移动、编纂或更正它的文本。
- 构建将链接文本归功于版本生效日当天或之前的最新签署。
- 文章首个版本无此类链接,且文本不是法典,则归功于其自身文本;法律的文章由该法律制定。
- 两个标记作者不是文本:
Légifrance (DILA), version consolidée:LEGI 未指定制作这些版本的文本;许多是法典初版或旧合并。Fin de vigueur:当天结束且无后继、LEGI 未指定废除、撤销或终止它们的文本的文章版本;当 LEGI 指定一个(ABROGE 或 ABROGATION 链接)时,删除改为归功于该文本。- 两者绝不归功于法律。
检查、构建与复现
tools/check_repo.py取一系列日期,逐文件、逐字节比较当天生效树与 LEGI 当天生效文章版本。tools/test_repo.py检查上述命令工作。- 检查结果在 REPRODUCE.md:https://github.com/lexifina/france-law/blob/main/REPRODUCE.md
tools/scan.py和tools/scan_daily.py读取 DILA 的 LEGI 档案,完整转储和每日更新列在data/archives.json:https://github.com/lexifina/france-law/blob/main/data/archives.json,带 sha256,到 SQLite。tools/build.py从该数据库从头写入此仓库。- 每一步、软件、决策和 AI 模型做了什么在 REPRODUCE.md:https://github.com/lexifina/france-law/blob/main/REPRODUCE.md
corpus.json:https://github.com/lexifina/france-law/blob/main/corpus.json 描述语料库,供读取许多此类仓库的工具使用。
不显示内容
- LEGI 不合并的文本,以及早于 LEGI 的版本:LEGI 从首次合并的版本记录每个文本;其最古老法典的历史从 1990 年代最完整。
- 章节标题和法典各部分顺序。
- 修改文本更改了文本的哪部分(文章之外):修改文本归功于文章整个新版本。
- 合并文本仅供参考;权威文本是 Journal officiel 发布的文本。
搜集汇总
数据集介绍

构建方式
置于法国法律信息化与LEGI整合文本体系之中,该仓库源自DILA发布的LEGI档案。tools/scan.py与tools/scan_daily.py将全量转储及日更新读入SQLite,档案sha256列于data/archives.json;tools/build.py再由该库生成Git仓库。每篇文章对应一个Markdown文件,每次提交对应一个生效文本,提交日期取LEGI的DATE_DEBUT,即生效日中午巴黎时间。1970年前日期以1970-01-01 UTC按秒序排列,真实日期保存在In-force尾注与标签。作者字段记为引致变更的文本,committer恒为Lexifina,非文本变更标记Légifrance与Fin de vigueur。
特点
作为法律演进的可追溯镜像,该数据集以Git提交承载法国整合法逐条变化。其规模涵盖187,161次法律提交、1,556,213个条文版本、153,011个文本,并由156,293个文本创制或终止;末期有692,985个条文文件生效,分布于77部法典与118,773个其他文本。文件按constitution、codes与textes分层,文章编号映射为文件名,git blame可定位段落所属修改文本,git log与tag可重建沿革。日期语义区分签署、公布与生效,提交以生效日为准。局限在于仅含LEGI整合范围,旧法典历史自1990年代较完整,且不呈现章节标题与法典部分顺序;整合文本仅供参考,权威文本为Journal officiel。
使用方法
面向逐条法律检索与版本考证,使用者宜以裸克隆降低近七十万文件的开销。运行`git clone --bare`后,先以`git show main:tools/en_vigueur.py > en_vigueur.py`取出工具,并在克隆内执行`python ../en_vigueur.py 2000-01-01 constitution-1958 1`查看指定日期条文,或`python ../en_vigueur.py 2010-06-01 code-civil 1382`。`git blame main -- constitution/constitution-1958/1.md`可查明段落作者;`git log --follow --format='%(trailers:key=In-force,valueonly,separator=) %an' main -- constitution/constitution-1958/1.md`列出变更;`git tag -l 'constitution/*'`、`git log -10 -- codes/code-civil`及`git show main:codes/code-civil/index.md`支持沿革与元数据查询。`tools/check_repo.py`与`tools/test_repo.py`用于校验,结果见REPRODUCE.md。
背景与挑战
背景概述
French law, change by change 依托法国 DILA 维护的 LEGI 数据库并由 Lexifina 构建,将 Légifrance 所整合的宪法、法典、法律、条例、法令与命令逐条重构为 Git 仓库,每条条文对应一个 Markdown 文件,每一次文本生效对应一个提交。该数据集覆盖自 881 年 10 月 9 日至 2026 年 10 月 28 日的 187,161 个法律提交、1,556,213 个条文版本,涉及 153,011 个文本,当前有效条文文件达 692,985 个。其核心研究问题在于以版本控制范式表达法律文本的历时变迁,使条文在某日效力、修改者归属与废止轨迹均可查询、可追溯、可复现,为计算法学、法律信息检索与法律史研究提供基础设施。
当前挑战
该数据集面对的领域难题在于法律文本的时间效力、版本合并与权威溯源:同一法条常经多部文本创设、修改、迁移、编纂或校正,签署日、公布日与生效日彼此分离,条文编号可能重复、缺失或随废止而消失,而 Git 又难以直接存储 1970 年前日期。构建过程亦具挑战,需把 DILA 的 LEGI 全量归档与每日更新解析入 SQLite,再从海量记录生成逐条文件与提交,处理 Légifrance 未指明修改文本、Fin de vigueur 终止版本及无后继废止等归属歧义,并通过逐文件、逐字节的时点校验保证当日在效树与 LEGI 一致。LEGI 对早期法典历史收录有限,章节标题与法典内部顺序未再现,整合文本仅供信息参考,权威文本仍以官方公报为准。
常用场景
经典使用场景
在法律信息学与计算法学日益重视法条历时演化的背景下,French law, change by change 将 LEGI 整合文本组织为逐条文件与逐次生效提交的 git 仓库,其最经典使用场景是对特定日期有效法律状态的精确回溯与条文沿革追踪。研究者可通过 en_vigueur.py 查询二〇〇〇年一月一日宪法第一条或二〇一〇年六月一日民法典第一千三百八十二条,亦可借 git blame 辨识各段落由哪一修改文本写入,并以 git log --follow 列出某条文的全部生效变更及其日期。该场景把法律检索从静态快照推进为可审计的版本史,使法条、修正文本与生效时点之间形成细粒度关联,适用于法律史、比较法与规制变迁研究。
衍生相关工作
围绕该数据集的衍生研究多沿着法律文本版本化、可追溯检索与法律演化分析展开。其 git 化表示催生了按日查询有效法条的“法律时间机器”、逐段归属的修法溯源方法、跨版本条文比较与法律变更网络分析;corpus.json 等描述文件亦便利多仓库语料工具接入。相关经典工作类型包括时间敏感的法律问答与检索增强生成、法条生命周期与废止模式研究、立法修正影响评估,以及以提交作者为修改文本的法律史计量分析。工具链中的 en_vigueur.py、check_repo.py 与 REPRODUCE.md 进一步将数据构建、校验与复现流程标准化,为计算法学与法律信息学提供可引用的基准资源。
数据集最近研究
最新研究方向
在计算法学迈向可追溯、时间敏感型法律智能的进程中,French law, change by change以LEGI整合文本的逐条版本化git仓库形态,将187,161次法律变更与1,556,213个条文版本凝练为可计算的法律演化轨迹。当前前沿研究聚焦于基于提交历史的条文级时间机器与法律问答,借助git blame与生效日期追踪每段文字的立法来源,支撑动态法律检索、立法影响评估与合规审计;同时探索以版本网络分析宪法、民法典及单行法的修订路径,辨析法律连续性与断裂,并回应开放政府数据、算法透明度与法律AI可解释性等热点议题。该数据集使立法史从静态文本卷宗转为可复现、可验证的代码化对象,为法律信息学提供了细粒度基础设施。
以上内容由遇见数据集搜集并总结生成



