- Volledige projectbeschrijving, quick start, architectuur - Pipeline documentatie en development instructies - Disclaimer en licentie-informatie - data/ directory (XML cache) gitignored
105 lines
2.7 KiB
Markdown
105 lines
2.7 KiB
Markdown
# WetGit
|
|
|
|
**Nederlandse wetgeving als code.**
|
|
*Elke wet een Markdown-bestand. Elke wijziging een Git-commit.*
|
|
|
|
> *In de geest van Dirk Volkertzoon Coornhert (1522-1590) — humanist,
|
|
> graveur en voorvechter van een transparant rechtssysteem.*
|
|
|
|
## Wat is WetGit?
|
|
|
|
WetGit zet de volledige Nederlandse wetgeving om naar version-controlled,
|
|
machine-readable Markdown-bestanden in Git-repositories. Browse de wet,
|
|
`git log` de historie, `git diff` elke wijziging — zie precies wat er
|
|
veranderde, wanneer, en waarom.
|
|
|
|
## Repositories
|
|
|
|
| Repository | Inhoud | Status |
|
|
|---|---|---|
|
|
| [wetgit/meta](https://git.wetgit.nl/wetgit/meta) | Pipeline, tooling, documentatie | Actief |
|
|
| [wetgit/rijk](https://git.wetgit.nl/wetgit/rijk) | Rijksregelgeving — 40.566 regelingen | Actief |
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
# Clone de rijksregelgeving
|
|
git clone https://git.wetgit.nl/wetgit/rijk.git
|
|
|
|
# Wat zegt artikel 1 van de Grondwet?
|
|
cat rijk/wet/grondwet/BWBR0001840/README.md
|
|
|
|
# Zoek in alle wetgeving
|
|
grep -r "persoonsgegevens" rijk/wet/ --include="*.md" -l
|
|
```
|
|
|
|
## Pipeline
|
|
|
|
De conversie-pipeline draait in Python en verwerkt BWB XML naar Markdown:
|
|
|
|
```bash
|
|
# Parse alle wetten
|
|
python -m wetgit.pipeline.runner --output ./output --type wet
|
|
|
|
# Of een specifiek type
|
|
python -m wetgit.pipeline.runner --output ./output --type AMvB --limit 100
|
|
```
|
|
|
|
### Architectuur
|
|
|
|
```
|
|
SRU zoekservice ──→ BWB XML repository ──→ Parser ──→ Markdown + YAML
|
|
(catalogus) (download) (lxml) (git commit)
|
|
```
|
|
|
|
## Technische stack
|
|
|
|
| Component | Technologie |
|
|
|---|---|
|
|
| XML parsing | lxml + XPath |
|
|
| Git operaties | pygit2 |
|
|
| API (planned) | FastAPI |
|
|
| Zoeken (planned) | Meilisearch |
|
|
| Hosting | Self-hosted Forgejo |
|
|
| Infra | Ansible + Hetzner |
|
|
|
|
## Databronnen
|
|
|
|
| Bron | Omvang | Licentie |
|
|
|---|---|---|
|
|
| BWB (Basiswettenbestand) | 40.566 regelingen | CC0 (publiek domein) |
|
|
| CVDR (decentrale regelgeving) | Gepland | Publiek domein |
|
|
| EUR-Lex (EU-regelgeving) | Gepland | Vrij herbruikbaar |
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Nix devshell (bevat alle dependencies)
|
|
nix develop
|
|
|
|
# Tests draaien
|
|
PYTHONPATH=src python -m pytest tests/ -v
|
|
|
|
# Linting
|
|
ruff check src/
|
|
black --check src/
|
|
```
|
|
|
|
## Disclaimer
|
|
|
|
**WetGit is geen officiele bron van wetgeving.** Raadpleeg altijd
|
|
[wetten.overheid.nl](https://wetten.overheid.nl) voor de authentieke tekst.
|
|
AI-gegenereerde samenvattingen zijn geen juridisch advies.
|
|
Gebruik op eigen risico.
|
|
|
|
## Licentie
|
|
|
|
- **Wetteksten (data):** CC0 1.0 (publiek domein)
|
|
- **AI-samenvattingen:** CC-BY 4.0
|
|
- **Tooling & pipeline:** MIT
|
|
|
|
## Contact
|
|
|
|
- **Maintainer:** [Coornhert](https://git.wetgit.nl/coornhert)
|
|
- **Website:** [wetgit.nl](https://wetgit.nl)
|
|
- **Issues:** [git.wetgit.nl/wetgit/meta/issues](https://git.wetgit.nl/wetgit/meta/issues)
|