Enrique Lopez 在 GitHub 上创建了一个名为"legalize-es"的项目,在 Hacker News 上获得 661 分和 197 条评论。

他说:"西班牙法律作为 Git 仓库。每条法律是一个 Markdown 文件,每次改革是一个 Commit。超过 8600 条法律来自 BOE 的开放数据 API,包含从 1960 年起的完整改革历史。"

项目概述

这个项目的理念很简单:把西班牙的法律当作代码来管理。

每条法律是一个 Markdown 文件。每次改革是一个 Commit。你可以用 git log 查看法律的历史,用 git diff 查看改革的具体变化。

Enrique 写道:

git clone https://github.com/legalize-dev/legalize-es.git
cd legalize-es

# ¿Qué dice el Artículo 135 de la Constitución hoy?
grep -A 10 "Artículo 135" spain/BOE-A-1978-31229.md

# ¿Cuándo cambió?
git log --oneline -- spain/BOE-A-1978-31229.md

# Diff exacto de la reforma de estabilidad presupuestaria de 2011
git diff 6660bcf^..6660bcf -- spain/BOE-A-1978-31229.md

数据结构

项目包含超过 8600 条法律,来自 BOE(西班牙官方公报)的开放数据 API。

spain/
├── BOE-A-1978-31229.md # 西班牙宪法
├── BOE-A-1995-25444.md # 刑法典
├── BOE-A-2015-11430.md # 工人章程
├── BOE-A-2000-323.md   # 民事诉讼法
└── ... (8600+ 条法律)

每个文件以 YAML frontmatter 开头:

---
titulo: "Constitución Española"
identificador: "BOE-A-1978-31229"
pais: "es"
rango: "constitucion"
fecha_publicacion: "1978-12-29"
ultima_actualizacion: "2024-02-17"
estado: "vigente"
fuente: "https://www.boe.es/eli/es/c/1978/12/27/(1)"
---

为什么这是有趣的

这个项目的几个有趣点:

法律作为代码

法律是社会的代码。但法律通常不被当作代码来管理。这个项目改变了那个。

版本控制

每次改革是一个 Commit。你可以用 git log 查看历史,用 git diff 查看变化。

开放数据

数据来自 BOE 的开放数据 API。法律是公共领域。

工具链

你可以用现有的工具(grep、git、diff)来探索法律。

社区驱动

如果你发现错误或缺少改革,打开一个 issue。

实际意义

这个项目有几个实际意义:

法律研究

研究者可以用 Git 工具来研究法律变化。

法律技术

法律科技公司可以用这个数据来构建工具。

公民参与

公民可以用简单的工具来了解法律变化。

教育

教师可以用这个项目来教学生关于法律和法律变化。

更广泛的含义

这个项目对法律和技术有几个启示:

法律需要版本控制

法律变化频繁。版本控制是必要的。

开放数据是重要的

BOE 的开放数据 API 使得这个项目可能。开放数据是重要的。

工具链是强大的

Git、grep、diff——这些工具是强大的。

社区驱动是可能的

社区可以贡献法律数据。社区驱动是可能的。

8600 条法律是大的

超过 8600 条法律。那是大的。

结语

Enrique Lopez 的项目是一个警示:在法律中,版本控制是可能的。法律可以被当作代码来管理。

每次改革是一个 Commit。每条法律是一个 Markdown 文件。

在这个时代,我们需要更多关于工具,少关于障碍。