2 điểm bởi GN⁺ 24 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Một kho lưu trữ quản lý hơn 8.600 bộ luật từ năm 1960 trở đi dưới dạng tệp Markdown, được thu thập thông qua API công khai BOE của chính phủ Tây Ban Nha
  • Mỗi bộ luật được lưu cùng metadata YAML, và toàn bộ lịch sử sửa đổi được theo dõi bằng commit Git
  • Bao gồm toàn bộ hệ thống luật hợp nhất cấp quốc gia như hiến pháp, luật hữu cơ, luật thông thường, sắc lệnh luật hoàng gia..., và mỗi commit đều ghi liên kết đến nguồn chính thức
  • Văn bản pháp luật được cung cấp dưới dạng public domain, còn kho lưu trữ bổ sung thêm cấu trúc hóa, quản lý phiên bản và chức năng so sánh
  • Dự án dự kiến sẽ tích hợp với Legalize.dev API để hỗ trợ các tính năng mở rộng như tìm kiếm luật, so sánh phiên bản và thông báo thay đổi

Tổng quan

  • Đây là một dự án quản lý toàn bộ luật pháp Tây Ban Nha dưới dạng kho Git, trong đó mỗi bộ luật được cấu thành từ tệp Markdown và mọi lịch sử sửa đổi đều được ghi lại bằng commit
  • Bao gồm hơn 8.600 bộ luật từ năm 1960 trở đi, với dữ liệu được lấy từ API công khai BOE (Boletín Oficial del Estado) của chính phủ Tây Ban Nha
  • Kho lưu trữ này là một phần của dự án Legalize, cho phép quản lý phiên bản, so sánh và theo dõi luật pháp
  • Văn bản pháp luật được cung cấp ở dạng public domain, còn kho lưu trữ bổ sung cấu trúc, metadata và tính năng quản lý phiên bản

Cấu trúc tệp

  • Tất cả luật được lưu dưới dạng tệp Markdown trong thư mục spain/
    • Ví dụ: BOE-A-1978-31229.mdHiến pháp Tây Ban Nha, BOE-A-1995-25444.mdBộ luật Hình sự, BOE-A-2015-11430.mdQuy chế người lao động, BOE-A-2000-323.mdLuật Tố tụng dân sự
  • Mỗi tệp bắt đầu bằng frontmatter metadata ở định dạng YAML
    • Bao gồm các mục như titulo, identificador, pais, rango, fecha_publicacion, ultima_actualizacion, estado, fuente
    • Trong ví dụ, hiến pháp (Constitución Española) ghi rõ ngày ban hành, ngày cập nhật mới nhất, trạng thái (vigente) và URL nguồn chính thức

Phạm vi luật được bao gồm

  • Bao gồm toàn bộ luật hợp nhất được BOE phân loại ở cấp quốc gia
    • Hiến pháp, luật hữu cơ (Leyes Orgánicas), luật thông thường (Leyes ordinarias), sắc lệnh luật (Decretos-ley), sắc lệnh lập pháp hoàng gia (Reales Decretos Legislativos)
  • Mỗi lần sửa đổi được lưu thành một commit độc lập, và ngày tạo commit phản ánh ngày công bố chính thức
  • Trong commit message có mã nhận diện sửa đổi và liên kết nguồn chính thức

Ví dụ sử dụng

  • Sau khi clone kho lưu trữ, có thể tìm kiếm điều khoản của một bộ luật cụ thể hoặc kiểm tra lịch sử thay đổi
    • Ví dụ: dùng lệnh grep để tìm Điều 135 của hiến pháp
    • Dùng git log để xem lịch sử thay đổi của điều khoản đó
    • Dùng git diff để so sánh các thay đổi cụ thể trong cuộc cải cách ổn định tài khóa năm 2011

Nguồn dữ liệu và giấy phép

  • Toàn bộ dữ liệu được lấy từ API lập pháp hợp nhất của BOE
  • Văn bản pháp luật thuộc public domain, và kho lưu trữ chỉ bổ sung chức năng cấu trúc hóa và quản lý phiên bản
  • Cấu trúc kho, metadata và công cụ được phát hành theo giấy phép MIT

API và kế hoạch mở rộng

  • Legalize API sẽ sớm được cung cấp tại legalize.dev
    • Dự kiến hỗ trợ tìm kiếm luật, lọc, so sánh phiên bản và thông báo thay đổi

Cách đóng góp

  • Nếu có lỗi trong văn bản hợp nhất hoặc thiếu sửa đổi, có thể mở issue kèm tên luật, điều khoản và nguồn chính thức để đề xuất chỉnh sửa

Tác giả

  • Dự án do Enrique Lopez thực hiện
  • Là một phần của dự án Legalize, có liên kết với legalize.dev

1 bình luận

 
Ý kiến trên Hacker News
  • Ở Pháp, luật không chỉ được quản lý phiên bản mà còn được chứng minh hình thức (formally proved)
    Ngôn ngữ Catala xử lý luật như mã nguồn
    Chỉnh sửa: Đội Pháp ở đây cũng khá đông. Ít nhất năm người đang nhắc đến Légifrance và nói về quản lý phiên bản

    • Catala không phải là công cụ để “chứng minh” luật, mà là một ngôn ngữ dịch luật sang dạng có thể tính toán được trong khi vẫn giữ nguyên cấu trúc logic mặc định (default logic) của văn bản pháp luật
      Khi triển khai logic tính thuế hay phúc lợi, nó cho phép kiểm chứng việc hệ thống có khớp với luật thực tế chính xác hơn nhiều so với các ngôn ngữ phổ dụng hiện có
    • Thấy cái tên “Catala” xuất hiện trong câu chuyện về luật Tây Ban Nha nên cảm thấy khá trớ trêu
    • Trước đây đã có một cuộc thảo luận trước về chủ đề này
    • “Borbaqui est la volonté du peuple!” — có vẻ là kiểu hài hước Pháp
  • Tôi đã tạo một pipeline chuyển toàn bộ pháp lệnh quốc gia của Tây Ban Nha thành kho Markdown có quản lý phiên bản
    Mỗi đạo luật là một tệp, mỗi lần sửa đổi được ghi lại bằng một git commit có ngày thực tế. Tổng cộng có 8.642 đạo luật và 27.866 commit
    Luật suy cho cùng là một “chuỗi các bản vá”, nên tôi nghĩ git vốn đã là lời giải. Thay vì các câu như “xóa khoản 3 và…”, giờ có thể xem lịch sử thay đổi bằng diff thực tế
    Nguồn dữ liệu dùng API pháp lệnh hợp nhất của công báo Tây Ban Nha (BOE), và tôi dựng nó trong khoảng 4 giờ bằng Claude Code
    Tôi đang tìm hiểu xem có thể phát triển bộ dữ liệu này thành API pháp luật hoặc nền tảng dữ liệu mở hay không

    • Ý định (intent) của luật thường chỉ rõ ràng hơn qua án lệ, nên sẽ rất có giá trị nếu có thể phủ các bản án lên từng điều luật theo dòng thời gian
      Khi đó cũng có thể phân tích điều luật nào bị trích dẫn nhiều nhất, hay câu chữ nào liên tục phải giải thích lại
    • Có người tò mò công báo cung cấp luật ở định dạng nào. Ở Đức thì đến giờ vẫn chỉ có PDF nên rất ghen tị
      Nếu có API chính thức như Tây Ban Nha thì sẽ hiệu quả hơn nhiều, trong khi ở Đức các tổ chức tư nhân còn đòi cả bản quyền
    • Trong hệ thống luật La Mã–Napoléon, có thể theo dõi thay đổi của từng điều khoản, nhưng tương tác giữa các bộ luật vẫn phụ thuộc vào cách diễn giải của thẩm phán và luật sư
      Ở Anh, như trên legislation.gov.uk, có thể theo dõi toàn bộ lịch sử sửa đổi
    • Ở Tây Ban Nha, văn bản hợp nhất không bao phủ toàn bộ hệ thống, và vấn đề thực sự là thiếu dữ liệu bản án
      Các hãng luật lớn đã có cơ sở dữ liệu riêng nên đây không phải thị trường dễ kiếm tiền bằng dịch vụ trả phí
    • Nếu bộ luật thuế của Mỹ cũng được dump sang Markdown theo cách này, có lẽ ai cũng có thể tự làm TurboTax của riêng mình
      Xem liên kết bộ luật thuế của IRS
  • Những dự án như vậy là một hướng đi tuyệt vời để tăng tính minh bạch của dữ liệu pháp luật
    Nó có thể trở thành nền tảng để kết nối AI với việc hiểu và giải thích luật
    Hy vọng sẽ có thêm những nỗ lực tương tự ở các quốc gia khác

  • Nếu tác giả commit là chính trị gia thực sự chịu trách nhiệm cho lần sửa đổi đó thì còn thú vị hơn
    Như vậy chỉ cần git blame là biết ngay ai đã tạo ra điều luật đó

    • Có lẽ nên thêm cả khái niệm unit test vào đây
      Kiểu biến lỗ hổng thành test case, rồi mỗi lần luật thay đổi thì chạy regression test để xem có phát sinh vấn đề không
  • Tôi nghĩ đây là một ý tưởng rất hay. Sẽ tuyệt nếu hệ thống như thế này được áp dụng cho luật của mọi quốc gia

    • Ngành pháp lý hiểu rất rõ rằng kiểu tối ưu hóa này đe dọa cấu trúc doanh thu của họ
      Giống như các trường hợp vận động hành lang để giữ việc khai thuế luôn phức tạp, giới luật sư cũng có thể ngăn cản minh bạch và hiệu quả hóa
      Xem bài viết liên quan
    • Tổ chức phi lợi nhuận Open Law Library của chúng tôi đang trực tiếp hợp tác với chính phủ để xây dựng các hệ thống như vậy
      Bang Maryland đã áp dụng điều này tại regs.maryland.gov,
      kho GitHub cũng được công khai
      Chúng tôi đang giúp các cộng đồng địa phương xuất bản luật chính thức của họ lên GitHub
    • Văn bản pháp luật kiểu Anh về cơ bản cũng được soạn theo dạng diff-based, nên đây không phải bí quyết riêng của ngành công nghệ
    • Hoàn toàn đồng ý. Đây thực sự là một công trình tuyệt vời
  • Tôi cũng đang làm một thứ tương tự cho các dự luật của bang California
    Tôi nghĩ cách tiếp cận này nên trở thành chuẩn mặc định. Tôi luôn thắc mắc tại sao bản gốc xác thực của những tài liệu như vậy lại không nằm trong kho git

    • Nếu nhìn một cách cay nghiệt, có thể chính phủ không muốn người dân hiểu luật một cách đầy đủ
      Còn nếu diễn giải rộng lượng hơn, có lẽ chỉ là trong giới pháp lý hầu như không có ai hiểu hoặc có thể triển khai loại công nghệ này
  • Dự án rất xuất sắc. Phần lớn luật thời Franco đã bị bãi bỏ vào năm 1978, nhưng vẫn còn cả luật có trước thế kỷ 19 trong đó
    Tuy nhiên nguồn dữ liệu bắt đầu từ năm 1960 bằng một commit duy nhất, nên không có lịch sử thay đổi trước mốc đó
    BOE còn quét lưu được cả tài liệu từ tận những năm 1600, mức độ bảo tồn tư liệu thật đáng kinh ngạc

  • Hạn chế của Git là git blame không thực sự hoạt động
    Sẽ hay hơn nếu biết ai bỏ phiếu thuận hay chống, nhưng git không phải cấu trúc commit cộng tác

    • Có lẽ vẫn làm được nếu đưa kết quả biểu quyết hoặc metadata vào log commit
      Dù sao thì chỉ riêng việc đưa toàn bộ luật của một quốc gia vào git cũng đã là một thành tựu lớn
    • Git không tối ưu cho commit cộng tác, nhưng có thể bù lại bằng các quy ước cộng đồng như “Co-Authored-By”
      Cách này bắt nguồn từ quá trình phát triển nhân Linux
    • Cũng có thể để toàn bộ quốc hội là tác giả chính, còn từng đảng và kết quả biểu quyết là đồng tác giả
    • Thực ra những thông tin này vốn đã công khai, nên LLM cũng có thể trả lời; có người đùa rằng đâu cần mấy nerd dùng git làm gì
    • Nếu squash một PR có nhiều người tham gia thì nó có thể hiện thành commit chung, từ đó để lại dấu vết cộng tác
  • Tác giả bài đăng (OP) đây. Tôi không ngờ lại nhận được phản hồi lớn như vậy
    Vì có quá nhiều yêu cầu nên tôi đã công khai mã nguồn → GitHub: legalize-dev
    Pipeline được thiết kế theo cấu trúc hỗ trợ đa quốc gia. Pháp (dữ liệu Légifrance) đã chạy được,
    và để thêm một nước mới thì chỉ cần triển khai 4 interface Python
    Tôi cũng đã viết hướng dẫn đóng góp
    Tôi đã nhận được ý định tham gia từ Đức, Bồ Đào Nha, Thụy Điển, Phần Lan, Hà Lan, Brazil và nhiều nơi khác
    Nếu bạn biết nguồn dữ liệu pháp luật công khai của quốc gia mình thì rất mong được hỗ trợ qua PR
    Khi quy mô tăng lên thì cần hạ tầng, nên tôi đang chuẩn bị gây quỹ qua Open Collective
    Cũng có website để xem luật và diff theo thời gian thực
    Hiện còn chưa ổn định, nhưng tôi đang nghĩ theo hướng rất lớn

  • Xin chúc mừng! Đây thật sự là một dự án tuyệt vời
    Trước đây từng có nỗ lực tương tự là gitlaw, và ở Brazil có chuẩn LexML để biểu diễn thay đổi pháp luật theo cách kỹ thuật
    Cách tiếp cận này khá phức tạp nhưng rất thú vị

    • Có người đùa “lại là XML nữa à”. Tây Ban Nha cũng từng tham gia LexML, nhưng có vẻ giờ đã chuyển sang định dạng khác