Có một repo trên GitHub đang làm đúng việc mà mấy ai dám làm: chuyển toàn bộ hệ thống pháp luật Brazil sang Markdown, mỗi văn bản là một file, mỗi file có YAML header, và toàn bộ lịch sử git được dựng lại theo ngày ban hành thật. Repo tên là ctresb/leis.
Đọc README thì thấy con số cụ thể: 323.849 văn bản trong cơ sở ban đầu, gồm 1 Hiến pháp liên bang, 29.184 văn bản cấp liên bang, và 294.664 văn bản cấp bang với cấp quận. Tất cả được convert từ nguồn chính thức sang Markdown, kèm link về nguồn gốc của từng văn bản.
Repo này làm gì, giải quyết vấn đề gì
Vấn đề khá rõ ràng với bất kỳ ai từng phải tra cứu văn bản pháp luật: dữ liệu nằm rải rác trên nhiều cổng thông tin, định dạng lộn xộn (HTML, PDF scan, DOC), khó đọc bằng máy, khó diff, khó version. Repo này gom hết về một chỗ, chuẩn hóa thành text thuần.
Cấu trúc thư mục phản ánh đúng cách tổ chức của hệ thống pháp luật Brazil: constituicao.md ở gốc, rồi federal/, estaduais/UF/, reguladores/, jurisprudencia/, tratados/, municipais/UF/. Tên folder giống nhau ở mọi cấp, chỉ khác vài chỗ do nguồn dữ liệu phân loại khác nhau (ví dụ Amazonas và Paraíba có thêm leis-promulgadas, São Paulo có decretos-lei-complementares, Minas Gerais có leis-constitucionais, Bahia có constituicoes-historicas).
Điểm hay nhất về mặt kỹ thuật: mỗi văn bản là một commit riêng, được ký bởi người ban hành, và ngày commit là ngày văn bản được thông qua. Nghĩa là git log trở thành một dòng thời gian pháp lý thật, không phải dòng thời gian của lần import dữ liệu. Ai từng làm việc với dữ liệu lịch sử sẽ hiểu đây là chi tiết tốn công cỡ nào.
Vì sao repo đang được chú ý
522 sao với một repo về luật Brazil, không phải framework JS, không phải tool AI, là con số đáng để nhìn. Lý do có lẽ nằm ở chỗ nó chạm đúng một nhu cầu có thật: dữ liệu pháp lý mở, dạng text thuần, dùng được cho mọi thứ từ tra cứu cá nhân đến xây pipeline RAG hay fine-tune model.
Cũng phải nói thêm: repo mới tạo ngày 2026-10-15 và cập nhật 2026-10-21, tức là rất mới. Sao đến nhanh phần lớn vì ý tưởng nghe hấp dẫn và README viết rõ ràng, có bảng thống kê, có file tiến độ riêng. Không phải vì cộng đồng đã dùng lâu năm.
Điểm khác biệt so với các bộ dataset luật thường thấy: repo này không chỉ đưa text, mà đưa cả metadata có cấu trúc chuẩn (URN lex, ngày ban hành, ngày công bố, tình trạng hiệu lực, phiên bản văn bản) và cả file ghi lỗi từng dòng (_falhas.jsonl) cho những gì không convert được. Minh bạch ở mức đó là hiếm.
Dùng thử nhanh
Không có gì để cài đặt nếu bạn chỉ muốn đọc dữ liệu. Clone về là có ngay:
git clone https://github.com/ctresb/leis.git
cd leis
ls federal/leis-ordinarias/2002/
Muốn xem một văn bản cụ thể, mở file Markdown bất kỳ. Header YAML trông như sau (lấy từ README):
---
titulo: "Lei nº 10.406 de 10/01/2002"
uf: "SP"
tipo: "Lei Ordinária"
numero: "10406"
data: 2002-01-10
ementa: "Institui o Código Civil."
situacao: "Em vigor"
revogada: false
versao_texto: "compilada (texto vigente)"
fonte: "https://normas.leg.br/?urn=urn:lex:br:federal:lei:2002-01-10;10406"
baixado_em: 2026-10-13
---
Để kiểm tra lại Hiến pháp mà không ghi đè file, README có ghi sẵn lệnh:
python3 -I scripts/converter_constituicao.py --check
Còn muốn xem thống kê trực quan thì chỉ cần mở estatisticas.html trong trình duyệt. Theo README, đây là file HTML đơn, không cần server, không dependency ngoài, được sinh bởi scripts/estatisticas.py. Có biểu đồ số văn bản theo bang, theo thập kỷ, theo chủ đề, từ phổ biến trong ementa, và ai ký nhiều nhất.
Ai nên dùng, dùng để làm gì
- Dev làm RAG hoặc search engine về luật Brazil: dữ liệu đã có metadata, phân vùng theo năm và loại văn bản, không phải viết scraper. Tiết kiệm vài tuần.
- Người làm nghiên cứu pháp lý hoặc báo chí dữ liệu: cần đối chiếu văn bản qua thời gian. Git history là công cụ có sẵn để xem cái gì thay đổi khi nào.
- Ai muốn fine-tune hoặc đánh giá model trên văn bản pháp lý tiếng Bồ: corpus đủ lớn, có cấu trúc, license của từng văn bản là chuyện khác nhưng dữ liệu thì có.
- Người tò mò về kỹ thuật import dữ liệu lịch sử: đọc
scripts/plano.pyvàscripts/progresso.pyđể xem cách họ mô hình hóa scope và đo tiến độ theo từng item.
Không phù hợp nếu bạn cần tra cứu pháp luật để hành nghề thật. Chính README ghi rõ: văn bản chỉ mang tính thông tin, không thay thế công bố trên Diário Oficial, và là kết quả convert tự động kèm OCR từ bản scan. Trước khi trích dẫn phải kiểm tra lại nguồn trong header.
Ưu điểm
- Metadata có cấu trúc, dùng vocabulary chuẩn (
CANONICOtrongscripts/comum.py), tránh được cảnhlei-ordinariavàleis-ordinariascùng tồn tại. - Có file đo tiến độ (
PROGRESSO.md), file coverage (COBERTURA.md), ghi rõ cái gì thiếu và vì sao. Đây là thứ nhiều dataset mở thiếu. - Ghi log lỗi từng dòng trong
_falhas.jsonlvà version chúng luôn, thay vì ỉm đi. - Lịch sử git dựng theo ngày ban hành, không theo ngày import.
Hạn chế và điều cần lưu ý
Không thấy license trong dữ liệu bạn cung cấp, README cũng không nhắc tới. Đây là điểm cần kiểm tra trước khi dùng cho mục đích thương mại. Dữ liệu pháp luật thường là public domain, nhưng phần script và cấu trúc repo thì không chắc.
Repo mới, tạo ngày 2026-10-15, mới được vài ngày tính đến thời điểm viết. Nghĩa là chưa có nhiều người dùng thực tế, chưa có nhiều issue, và API nội bộ (tên file, cấu trúc folder, schema header) vẫn có thể thay đổi. Đừng build production trên đó mà không pin commit.
Phần lớn văn bản bang và quận đến từ OCR bản scan. README nói thẳng là có convert tự động và OCR. Chất lượng text có thể không đồng đều giữa các bang. Kiểm tra kỹ nếu bạn dùng cho NLP.
Thư mục _fonte/ nặng 27 GB (HTML và PDF gốc, nén) không được version. Nếu bạn muốn tái tạo toàn bộ từ đầu thì phải tự tải lại, và nguồn có thể đã thay đổi.
Cuối cùng, mục tiêu dự án là bao phủ toàn bộ hệ thống pháp luật Brazil, gồm cả án lệ ràng buộc và luật cấp quận. Hiện tại mới có phần lớn luật và nghị định. Đọc PROGRESSO.md để biết phần nào còn trống trước khi giả định là có đủ.
Kết lại
Nếu bạn đang cần một corpus luật Brazil dạng text, có cấu trúc, có lịch sử, thì đây là điểm khởi đầu hợp lý, miễn là bạn đọc kỹ phần cảnh báo về độ chính xác và tự kiểm tra lại license trước khi dùng. 323.849 văn bản với metadata đầy đủ là con số không nhỏ, và cách họ dựng git history theo ngày ban hành đáng để học hỏi kể cả khi bạn không làm về luật. Repo ở đây: ctresb/leis.
