mirror of
http://100.103.83.12:3003/fegger/odoo-at-payroll.git
synced 2026-09-17 16:56:42 +00:00
feat(kb): ingest rechtsprechung corpus
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# Wissensbasis Personalverrechnung (Lexis360-Exporte, WIKU Personal,
|
||||
WKO-Kollektivverträge, RIS-Gesetze)
|
||||
WKO-Kollektivverträge, RIS-Gesetze, Rechtsprechung)
|
||||
|
||||
Kuratierte Wissensbasis aus vier Quellcorpora — den **LexisNexis-Briefings**
|
||||
des Werks *Lexis Briefings Personalrecht* (Export aus Lexis 360), den
|
||||
@@ -8,9 +8,12 @@ Casebooks, Fachzeitschrift „WIKU Personal aktuell“), den **Kollektivvertrags
|
||||
Dokumenten von WKO.at** (Lohn-/Gehaltsordnungen inkl. Lohntabellen,
|
||||
KV-Abschlüsse, Erläuterungen, Zusatz-KVs) und den **RIS-Gesetzes-Texten**
|
||||
(Rechtsinformationssystem des Bundes; nur die im Lexis360-Bestand zitierten
|
||||
Paragraphen je Gesetz). Ein **gemeinsamer Korpus**: das `work`-Feld
|
||||
Paragraphen je Gesetz) sowie **Rechtsprechung** (OGH-, VwGH- und VfGH-
|
||||
Entscheidungen und Rechtssätze aus RIS-OGD sowie fünf als nicht amtlich
|
||||
markierte EuGH-Textwiedergaben). Ein **gemeinsamer Korpus**: das `work`-Feld
|
||||
unterscheidet die Quellen, ID-Räume `lb-*` (Lexis), `wk-*` (WIKU),
|
||||
`kv-*` (WKO-KV) und `ris-*` (RIS) liegen auf derselben Cluster-Map. Zweck:
|
||||
`kv-*` (WKO-KV), `ris-*` (RIS) und `rj-*` (Rechtsprechung/Normentexte)
|
||||
liegen auf derselben Cluster-Map. Zweck:
|
||||
|
||||
1. **Entwicklungsreferenz** neben den Rechtsquellen-Übersichten
|
||||
(`RECHTSQUELLEN-*.md` im Schwesterprojekt) für die Personalverrechnungs-
|
||||
@@ -26,10 +29,10 @@ unterscheidet die Quellen, ID-Räume `lb-*` (Lexis), `wk-*` (WIKU),
|
||||
| PDF-Exporte | `.lexis360/Lexis360_*.pdf` · `.wiku/*.pdf` | **nein** (gitignored) | lizensierte Original-PDFs |
|
||||
| Layer 1 — Volltexte | `.lexis360/md/<slug>.md` · `.wiku/md/<slug>.md` | **nein** (gitignored) | vollständiger Extraktionstext + Metadaten-Frontmatter |
|
||||
| Katalog | `.lexis360/md/_catalog.json` · `.wiku/md/_catalog.json` | **nein** (gitignored) | geparste Metadaten aller Quellen (Slug ↔ ID ↔ Stand ↔ Cluster) |
|
||||
| Rohquellen kv/ris | `.firecrawl/wko-kv/docs/*.html` · `.ris/*.md` | **nein** (gitignored) | WKO-KV-Seiten (HTML) bzw. RIS-Gesetzes-Auschnitte (Markdown) |
|
||||
| Layer 2 — Einträge | `dokumente/<slug>.md` (Lexis) · `dokumente/wiku_<slug>.md` (WIKU) · `dokumente/kv_<slug>.md` (WKO-KV, **generiert**) · `dokumente/ris_<slug>.md` (RIS, **generiert**) | **ja** | Kuratierung in eigenen Worten (lb/wk) bzw. quellentreue Konvertierung (kv/ris, Tool-Output) |
|
||||
| Rohquellen kv/ris/rj | `.firecrawl/wko-kv/docs/*.html` · `.ris/*.md` · `.rechtsprechung/{originale,gesetze}/*.md` | **nein** (gitignored) | WKO-KV-Seiten, RIS-Gesetzes-Auschnitte sowie Rechtsprechung/Normentexte |
|
||||
| Layer 2 — Einträge | `dokumente/<slug>.md` (Lexis) · `dokumente/wiku_<slug>.md` (WIKU) · `dokumente/kv_<slug>.md` (WKO-KV, **generiert**) · `dokumente/ris_<slug>.md` (RIS, **generiert**) · `dokumente/rj_<slug>.md` (Rechtsprechung, **generiert**) | **ja** | Kuratierung in eigenen Worten (lb/wk) bzw. quellentreue Konvertierung (kv/ris/rj, Tool-Output) |
|
||||
| Registry | `wissensbasis/kb.json` | **ja** | **generiert** aus dem Layer-2-Frontmatter aller Quellen (`tools/build_registry.py`) |
|
||||
| Kataloge kv/ris | `tools/catalogs/kv_catalog.json` · `ris_catalog.json` | **ja** | eingefrorene ID-Zuweisungen (nur Metadaten, keine Quelltexte) |
|
||||
| Kataloge kv/ris/rj | `tools/catalogs/kv_catalog.json` · `ris_catalog.json` · `rj_catalog.json` | **ja** | eingefrorene ID-Zuweisungen (nur Metadaten, keine Quelltexte) |
|
||||
|
||||
Volltexte der lizenzierten Quellen (Lexis/WIKU) sind Lizenzinhalt und
|
||||
bleiben wie `.firecrawl/` und `.ris/` lokal + unversioniert. Nur die
|
||||
@@ -41,7 +44,19 @@ WKO-KV-Texte müssen zahlenexakt bleiben (Lohntabellen) — daher sind
|
||||
sind **Tool-Output**: keine manuelle Bearbeitung, bei Änderungen neu
|
||||
generieren. Die WKO-Seiten selbst und die `.ris/`-Dateien bleiben
|
||||
unversioniert; die Einträge tragen ihre Quelle (`source.html`/`source.text`)
|
||||
und die WKO-/RIS-URL im Body. Die `overviews/` (1 820 Bundesland-Übersichts-
|
||||
und die WKO-/RIS-URL im Body.
|
||||
|
||||
**Rechtsprechung (Batch rj 1, 2026-09-15):** Die Lieferung unter
|
||||
`.rechtsprechung/` dokumentiert für OGH/VwGH/VfGH überwiegend RIS-OGD-
|
||||
Provenance. Ihre Layer-2-Dateien `rj_*.md` werden deshalb quellentreu aus den
|
||||
lokalen Markdown-Dateien generiert und behalten Gericht, Datum, Geschäftszahl,
|
||||
Normen und Quellenpfad. Rechtssätze, Volltexte, zitierte Normauszüge und EuGH-
|
||||
Fälle sind jeweils im `chapter`/`work` unterscheidbar. Die fünf EuGH-Dateien
|
||||
sind ausdrücklich als **„Textwiedergabe lexetius, nicht amtlich“** markiert
|
||||
und nennen zusätzlich die amtliche EUR-Lex-URL, soweit geliefert. Die
|
||||
Publikations- und Lizenzfreigabe der quellentreuen Rechtsprechungs-Volltexte
|
||||
ist vor einem Commit bewusst zu bestätigen; sie wird nicht aus der allgemeinen
|
||||
Ausnahme für amtliche Gesetzestexte abgeleitet. Die `overviews/` (1 820 Bundesland-Übersichts-
|
||||
seiten von WKO.at) werden derzeit **nicht** aufgenommen (Redundanz zu `docs/`).
|
||||
|
||||
## Frontmatter-Schema (Layer 2 — verbindlich)
|
||||
@@ -151,6 +166,7 @@ als ASCII-Slugs. Die Frontmatter ist **Single Source of Truth**;
|
||||
| `lohnsteuer` | Lohnsteuer & Einkommensteuer (EStG) | `lst` | ris-lst-01 | 1 |
|
||||
| `abgabenverfahren` | Abgabenverfahren (BAO) | `abo` | ris-abo-01 | 1 |
|
||||
| `normen-sonstige` | Weitere Gesetze und Verordnungen (ArbIG, RStDG, StGB, StPO, UGB) | `nso` | ris-nso-01 … 05 | 5 |
|
||||
| `rechtsprechung` | Rechtsprechung (OGH, VwGH, VfGH, EuGH) und zitierte Normen | `rjs` | rj-rjs-001 … 348 | 348 |
|
||||
|
||||
Weitere RIS-Gesetze liegen auf der bestehenden Cluster-Map (`ris-url-01`
|
||||
neben `lb-url-*`, `ris-asc-01` neben `lb-asc-*`, …; je Gesetz ein
|
||||
@@ -158,14 +174,16 @@ neben `lb-url-*`, `ris-asc-01` neben `lb-asc-*`, …; je Gesetz ein
|
||||
Cluster fortlaufend — Zuordnungstabelle `LAW_MAP` in
|
||||
`tools/kb_common.py`).
|
||||
|
||||
**1 274 Einträge in 76 Clustern** — Lexis: 571 Einträge in 67 Clustern
|
||||
**1 622 Einträge in 77 Clustern** — Lexis: 571 Einträge in 67 Clustern
|
||||
(Batch 1: 55, Batch 2: 52, Batch 3: 44, Batch 4: 54, Batch 5: 31,
|
||||
Batch 6: 41, Batch 7: 97, Batch 8: 134, Batch 9: 63); WIKU: 30
|
||||
Einträge in 18 Clustern (Batch 1: 13 Fachbroschüren, 3
|
||||
Arbeitsunterlagen, 2 Casebooks, 12 Hefte „WIKU Personal aktuell“
|
||||
2026); WKO-KV: 614 Einträge im Cluster `kollektivvertraege` (Batch 1);
|
||||
RIS: 59 Gesetze, verteilt auf bestehende Cluster plus den neuen
|
||||
Rechtsgebiet-Clustern (Batch 1).
|
||||
Rechtsgebiet-Clustern (Batch 1); Rechtsprechung: 320 RIS-OGD-Entscheidungen/
|
||||
Rechtssätze + 5 nichtamtliche EuGH-Textwiedergaben + 23 zitierte
|
||||
RIS-Normauszüge (Batch 1, gemeinsamer Cluster `rechtsprechung`).
|
||||
|
||||
Frontmatter-`topic` = beschreibender ASCII-Slug, das ID-Präfix
|
||||
(`atz`, `leh`, `kvt`, …) nur im `id` selbst; die Registry
|
||||
@@ -177,7 +195,8 @@ neue Dokumente hängen hinten an, Nummern ausscheidender Dokumente
|
||||
werden nie wiederverwendet. Dateinamen: Layer-2 = Layer-1-Slug
|
||||
(Umlaute fallen auf Basisbuchstaben — `uberblick`, `beschaftigung`;
|
||||
ß → `ss`), WIKU mit `wiku_`-Präfix, WKO-KV mit `kv_`-Präfix und RIS
|
||||
mit `ris_`-Präfix (Kollisionsschutz im gemeinsamen `dokumente/`).
|
||||
mit `ris_`-Präfix und Rechtsprechung mit `rj_`-Präfix (Kollisionsschutz im
|
||||
gemeinsamen `dokumente/`).
|
||||
|
||||
## Kurationskonventionen (verbindlich)
|
||||
|
||||
@@ -244,6 +263,18 @@ mit `ris_`-Präfix (Kollisionsschutz im gemeinsamen `dokumente/`).
|
||||
Cluster, danach nie ändern.
|
||||
3. `python3 tools/ingest_sources.py --source ris`.
|
||||
|
||||
**Rechtsprechung (rj):**
|
||||
|
||||
1. Neue Markdown-Dateien nach `.rechtsprechung/originale/` (Entscheidungen,
|
||||
Rechtssätze, EuGH-Textwiedergaben) oder `.rechtsprechung/gesetze/`
|
||||
(zitierte Normauszüge) legen; XML-Originale nicht separat intaken.
|
||||
2. Provenance und Publikations-/Lizenzfreigabe der gelieferten Volltexte vor
|
||||
einer Versionierung prüfen; EuGH-Wiedergaben bleiben als nicht amtlich
|
||||
gekennzeichnet.
|
||||
3. `python3 tools/ingest_sources.py --source rj` — IDs aus
|
||||
`tools/catalogs/rj_catalog.json` bleiben eingefroren; lange Volltexte
|
||||
werden an Absatzgrenzen in H2-Chunks geteilt.
|
||||
|
||||
**Alle Quellen gemeinsam:**
|
||||
|
||||
3. `python3 tools/build_registry.py` — validiert das gesamte Layer-2
|
||||
|
||||
Reference in New Issue
Block a user