# Lizenzregeln der Control-Pipeline > **Stand:** 2026-05-21 — Mapping festgezurrt nach DB-Inspektion und IACE-Audit. > > Die Pipeline klassifiziert jede Regulation (und damit jedes daraus extrahierte > Chunk und jeden atomic_control) in eine von **drei Lizenzregeln**. Die Regel > entscheidet, ob der Volltext aufbewahrt werden darf und welche Attribution im > Ausgabe-Renderer Pflicht ist. ## Die drei Regeln | Regel | Bedeutung | Volltext speichern? | Attribution Pflicht? | Beispiele | |-------|-----------|---------------------|----------------------|-----------| | **1** | Wörtlich — Hoheitsrecht / Public Domain | ✓ | nein (empfohlen für Audit) | EU-Recht (EUR-Lex), Bundesrecht, Satzungsrecht (DGUV UVV), TRBS, TRGS, ASR, US Federal Code (OSHA), NIST SP, EU-Leitfäden | | **2** | Wörtlich mit Attribution — freie Lizenzen | ✓ | **ja** | OWASP (CC-BY-SA-4.0), OECD AI Principles (OECD_PUBLIC), ENISA-Dokumente (CC-BY-4.0), Apache-2.0 Werke | | **3** | Nur zitieren — proprietäre Standards | ✗ | nicht anwendbar (kein Volltext) | DIN, EN, ISO, ANSI, UL, IEC, IEEE, DGUV Regeln/Informationen/Grundsätze, Bitkom-Leitfäden, BSI-Bausteine (urheberrechtlich) | **Wichtige Klarstellung:** Regel 3 = "nur Identifier/Abschnitt zitieren", **nicht** "umformulieren". Die ursprüngliche Bezeichnung "neu formulieren" war irreführend. Korrekt: Bei Regel-3-Quellen darf die Pipeline den Volltext nicht speichern; sie bewahrt nur die Quellenreferenz (regulation_id + article/paragraph), und der Output-Renderer zeigt diese Referenz im Frontend/PDF. ## Mapping `license_type` → `license_rule` | license_type | license_rule | Erklärung | |---|---|---| | `EU_LAW`, `EU_PUBLIC` | 1 | EU-Verordnungen, Richtlinien, OJ-Veröffentlichungen, EU-Leitfäden | | `DE_LAW`, `DE_PUBLIC` | 1 | Bundesgesetze, TRBS, TRGS, ASR, DGUV-UVV (Satzungsrecht) | | `AT_LAW`, `CH_LAW`, `FR_LAW`, `IT_LAW`, `ES_LAW`, `NL_LAW`, `HU_LAW` | 1 | Andere EU-Mitgliedsstaaten-Recht | | `US_GOV_PUBLIC`, `NIST_PUBLIC_DOMAIN`, `OSHA_PUBLIC` | 1 | US Federal Code (17 U.S.C. §105 Public Domain) | | `CC-BY-4.0`, `CC-BY-SA-4.0`, `CC-BY-3.0`, `CC-BY-SA-3.0` | 2 | Creative-Commons mit Attribution-Pflicht | | `Apache-2.0`, `MIT` | 2 | Permissive OSS-Lizenzen, NOTICE-Pflicht | | `OECD_PUBLIC`, `ENISA_CC_BY_4.0` | 2 | Behörden-Publikationen mit Attribution-Auflage | | `DIN_COPYRIGHT`, `ISO_COPYRIGHT`, `ANSI_COPYRIGHT`, `UL_COPYRIGHT`, `IEC_COPYRIGHT` | 3 | Normungsorganisationen — nur Identifier-Zitat | | `DGUV_COPYRIGHT` | 3 | DGUV Regeln/Informationen/Grundsätze (nicht UVV) | | `BITKOM_COPYRIGHT`, `BSI_COPYRIGHT`, `VDMA_COPYRIGHT` | 3 | Verbands-/Behörden-Publikationen mit eigenständigem Urheberrecht | | `OWN_WORK` | 3 | BreakPilot-Eigentexte (Templates, eigene Patterns) — kein externes Lizenzrisiko, aber auch kein Public-Domain-Status | **Sonderfall DGUV:** Die Klasse trennt sich nach Publikationstyp: - DGUV **Vorschriften / UVV** → `DE_LAW` → Regel 1 - DGUV **Regeln, Informationen, Grundsätze** → `DGUV_COPYRIGHT` → Regel 3 ## Auswirkung pro Pipeline-Stage | Stage | Verhalten bei Regel 1 | Regel 2 | Regel 3 | |---|---|---|---| | Stage 6 ControlCompose (`pipeline_adapter.py:147`) | speichert `chunk_text` | speichert `chunk_text` | speichert `chunk_text = None` | | Atomic-Control-Bildung | Volltext als Quelle | Volltext + Attribution-Vermerk | nur regulation_id + article | | Output-Renderer (Frontend/PDF) | optionaler Quellen-Hinweis | **Pflicht-Attribution in Footer + Inline** | nur Identifier rendern | | Tech-File-Anhang | Quelle nennen | Quelle + Lizenz-URL | Identifier-Liste | ## Quellen ohne Klassifikation Aktuell sind in `regulation_registry` **232 Regulationen** klassifiziert (Stand 2026-05-21). Die folgenden müssen noch ergänzt werden (Task #20 deckt den DGUV-Ingest): | Quelle | Regel | Begründung | |---|---|---| | TRBS-Familie (24 PDFs im RAG) | 1 | Technische Regeln Betriebssicherheit — BAuA Bundesarbeitsblatt | | TRGS-Familie (alle Volltext-Chunks) | 1 | Technische Regeln Gefahrstoffe — BAuA | | ASR-Familie (17 PDFs) | 1 | Arbeitsstättenregeln — BAuA | | OSHA 29 CFR 1910 Subpart O + Technical Manual | 1 | US Federal Public Domain (17 U.S.C. §105) | | DGUV Vorschrift 1 + UVV-Familie (sobald ingest) | 1 | Satzungsrecht der BG | | DGUV Regel 100-500 + Information 209-072/074/073 | 3 | DGUV-Copyright, nur Identifier | | DIN-Identifier-Tabelle (ohne Volltext) | 3 | DIN-Beuth-Copyright | | ANSI B11.0 + RIA R15.06 + UL 508A Identifier | 3 | ANSI/UL-Copyright | | ISO 12100/13849/13857 Identifier | 3 | ISO-Copyright | ## Audit-Pflicht Vor jedem Ingest neuer Quellen: 1. Lizenz prüfen (publikationen.dguv.de, EUR-Lex, etc.) 2. license_type aus obiger Tabelle wählen — wenn nicht vorhanden, hier ergänzen 3. license_rule wird daraus deterministisch abgeleitet 4. Attribution-Text bei Regel 2 ist Pflichtfeld Vor jedem Output: - Wenn ein atomic_control aus einer Regel-3-Quelle stammt: prüfen dass NUR Identifier gezeigt wird, niemals Volltext - Wenn aus Regel-2-Quelle: Attribution muss im PDF-Footer und im Frontend-Tooltip vorhanden sein - Wenn aus Regel-1-Quelle: empfohlen Quelle nennen für Auditierbarkeit ## Verweise - Schema: `migrations/002_regulation_registry.sql` - Code: `services/regulation_registry.py`, `services/pipeline_adapter.py` - Seed-Script: `scripts/f1_migrate_regulation_registry.py` - Tests: `tests/test_regulation_registry.py` (assert: rule IN (1,2,3))