import { CodeBlock, InfoBox } from '@/components/DevPortalLayout'

export function LegalCorpusSection() {
  return (
    <>
      <h2 id="katalogmanager">3. Der Katalogmanager: Die Wissensbasis</h2>
      <p>
        Das Herzstueck des Systems ist seine <strong>Wissensbasis</strong> -- eine Sammlung aller
        relevanten Rechtstexte, die das System kennt und durchsuchen kann. Wir nennen das den
        <strong> Legal Corpus</strong> (wörtlich: &ldquo;Rechtlicher Koerper&rdquo;).
      </p>

      <h3>3.1 Welche Dokumente sind enthalten?</h3>
      <p>Der Legal Corpus ist in zwei Hauptbereiche gegliedert: <strong>EU-Recht</strong> und <strong> deutsches Recht</strong>.</p>

      <h4>EU-Verordnungen und -Richtlinien</h4>
      <div className="not-prose my-4 overflow-x-auto">
        <table className="min-w-full divide-y divide-gray-200 text-sm">
          <thead className="bg-blue-50">
            <tr>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Regelwerk</th>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Abkuerzung</th>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Artikel</th>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Gueltig seit</th>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Thema</th>
            </tr>
          </thead>
          <tbody className="divide-y divide-gray-200">
            <tr><td className="px-4 py-3 font-medium">Datenschutz-Grundverordnung</td><td className="px-4 py-3">DSGVO</td><td className="px-4 py-3">99</td><td className="px-4 py-3">25.05.2018</td><td className="px-4 py-3">Schutz personenbezogener Daten</td></tr>
            <tr><td className="px-4 py-3 font-medium">KI-Verordnung</td><td className="px-4 py-3">AI Act</td><td className="px-4 py-3">113</td><td className="px-4 py-3">01.08.2024</td><td className="px-4 py-3">Regulierung kuenstlicher Intelligenz</td></tr>
            <tr><td className="px-4 py-3 font-medium">Netz- und Informationssicherheit</td><td className="px-4 py-3">NIS2</td><td className="px-4 py-3">46</td><td className="px-4 py-3">18.10.2024</td><td className="px-4 py-3">Cybersicherheit kritischer Infrastrukturen</td></tr>
            <tr><td className="px-4 py-3 font-medium">ePrivacy-Verordnung</td><td className="px-4 py-3">ePrivacy</td><td className="px-4 py-3">--</td><td className="px-4 py-3">in Arbeit</td><td className="px-4 py-3">Vertraulichkeit elektronischer Kommunikation</td></tr>
            <tr><td className="px-4 py-3 font-medium">Cyber Resilience Act</td><td className="px-4 py-3">CRA</td><td className="px-4 py-3">--</td><td className="px-4 py-3">2024</td><td className="px-4 py-3">Cybersicherheit von Produkten mit digitalen Elementen</td></tr>
            <tr><td className="px-4 py-3 font-medium">Data Act</td><td className="px-4 py-3">DA</td><td className="px-4 py-3">--</td><td className="px-4 py-3">2024</td><td className="px-4 py-3">Zugang und Nutzung von Daten</td></tr>
            <tr><td className="px-4 py-3 font-medium">Digital Markets Act</td><td className="px-4 py-3">DMA</td><td className="px-4 py-3">--</td><td className="px-4 py-3">2023</td><td className="px-4 py-3">Regulierung digitaler Gatekeeper</td></tr>
          </tbody>
        </table>
      </div>

      <h4>Deutsches Recht</h4>
      <div className="not-prose my-4 overflow-x-auto">
        <table className="min-w-full divide-y divide-gray-200 text-sm">
          <thead className="bg-green-50">
            <tr>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Gesetz</th>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Abkuerzung</th>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Thema</th>
            </tr>
          </thead>
          <tbody className="divide-y divide-gray-200">
            <tr><td className="px-4 py-3 font-medium">Telekommunikation-Digitale-Dienste-Datenschutz-Gesetz</td><td className="px-4 py-3">TDDDG</td><td className="px-4 py-3">Datenschutz bei Telekommunikation und digitalen Diensten</td></tr>
            <tr><td className="px-4 py-3 font-medium">Bundesdatenschutzgesetz</td><td className="px-4 py-3">BDSG</td><td className="px-4 py-3">Nationale Ergaenzung zur DSGVO</td></tr>
            <tr><td className="px-4 py-3 font-medium">IT-Sicherheitsgesetz</td><td className="px-4 py-3">IT-SiG</td><td className="px-4 py-3">IT-Sicherheit kritischer Infrastrukturen</td></tr>
            <tr><td className="px-4 py-3 font-medium">BSI-KritisV</td><td className="px-4 py-3">KritisV</td><td className="px-4 py-3">BSI-Verordnung fuer kritische Infrastrukturen</td></tr>
          </tbody>
        </table>
      </div>

      <h4>Standards und Normen</h4>
      <div className="not-prose my-4 overflow-x-auto">
        <table className="min-w-full divide-y divide-gray-200 text-sm">
          <thead className="bg-purple-50">
            <tr>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Standard</th>
              <th className="px-4 py-3 text-left font-medium text-gray-700">Thema</th>
            </tr>
          </thead>
          <tbody className="divide-y divide-gray-200">
            <tr><td className="px-4 py-3 font-medium">ISO 27001</td><td className="px-4 py-3">Informationssicherheits-Managementsystem (ISMS)</td></tr>
            <tr><td className="px-4 py-3 font-medium">SOC2</td><td className="px-4 py-3">Trust Service Criteria (Sicherheit, Verfuegbarkeit, Vertraulichkeit)</td></tr>
            <tr><td className="px-4 py-3 font-medium">BSI Grundschutz</td><td className="px-4 py-3">IT-Grundschutz des BSI</td></tr>
            <tr><td className="px-4 py-3 font-medium">BSI TR-03161</td><td className="px-4 py-3">Technische Richtlinie fuer Anforderungen an Anwendungen im Gesundheitswesen</td></tr>
            <tr><td className="px-4 py-3 font-medium">SCC (Standard Contractual Clauses)</td><td className="px-4 py-3">Standardvertragsklauseln fuer Drittlandtransfers</td></tr>
          </tbody>
        </table>
      </div>

      <h3>3.2 Wie werden Rechtstexte gespeichert?</h3>
      <p>
        Jeder Rechtstext durchlaeuft eine <strong>Verarbeitungspipeline</strong>, bevor er im
        System durchsuchbar ist. Der Vorgang laesst sich mit dem Erstellen eines
        Bibliothekskatalogs vergleichen:
      </p>
      <ol>
        <li><strong>Erfassung (Ingestion):</strong> Der Rechtstext wird als Dokument (PDF, Markdown oder Klartext) in das System geladen. Fuer jede Verordnung gibt es eine <code>metadata.json</code>-Datei.</li>
        <li><strong>Zerkleinerung (Chunking):</strong> Lange Gesetzestexte werden in kleinere Abschnitte von ca. 512 Zeichen zerlegt. Dabei ueberlappen sich die Abschnitte um 50 Zeichen.</li>
        <li><strong>Vektorisierung (Embedding):</strong> Jeder Textabschnitt wird vom Embedding-Modell <strong>BGE-M3</strong> in einen <em>Vektor</em> umgewandelt -- eine Liste von 1.024 Zahlen.</li>
        <li><strong>Indexierung:</strong> Die Vektoren werden in der Vektordatenbank <strong>Qdrant</strong> gespeichert. Zusammen mit jedem Vektor werden Metadaten hinterlegt.</li>
      </ol>

      <CodeBlock language="text" filename="Verarbeitungspipeline: Vom Gesetzestext zur Suche">
{`Rechtstext (z.B. DSGVO Art. 32)
     |
     v
┌────────────────────────┐
│  1. Einlesen           │  ← PDF/Markdown/Klartext + metadata.json
└──────────┬─────────────┘
           v
┌────────────────────────┐
│  2. Chunking           │  ← Text in 512-Zeichen-Abschnitte zerlegen
└──────────┬─────────────┘
           v
┌────────────────────────┐
│  3. Embedding          │  ← BGE-M3 wandelt Text in 1024 Zahlen um
└──────────┬─────────────┘
           v
┌────────────────────────┐
│  4. Qdrant speichern   │  ← Vektor + Metadaten werden indexiert
└────────────────────────┘`}
      </CodeBlock>

      <InfoBox type="success" title="Aktueller Bestand">
        Der Legal Corpus enthaelt derzeit ca. <strong>2.274 Textabschnitte</strong> aus ueber
        400 Gesetzesartikeln. Darunter 99 DSGVO-Artikel, 85 AI-Act-Artikel, 46 NIS2-Artikel,
        86 BDSG-Paragraphen sowie zahlreiche Artikel aus TDDDG, CRA, Data Act und weiteren Regelwerken.
      </InfoBox>

      <h3>3.3 Wie funktioniert die semantische Suche?</h3>
      <p>
        Klassische Suchmaschinen suchen nach <em>Woertern</em>. Unsere semantische Suche
        funktioniert anders: Sie sucht nach <em>Bedeutung</em>.
      </p>
      <p>
        <strong>Beispiel:</strong> Wenn Sie fragen &ldquo;Wann muss ich den Nutzer um Erlaubnis
        bitten?&rdquo;, findet das System Art. 7 DSGVO (Bedingungen fuer die Einwilligung), obwohl
        Ihre Frage das Wort &ldquo;Einwilligung&rdquo; gar nicht enthaelt.
      </p>

      <h3>3.4 Der KI-Rechtsassistent (Legal Q&amp;A)</h3>
      <p>Ueber die reine Suche hinaus kann das System auch <strong>Fragen beantworten</strong>:</p>
      <ol>
        <li><strong>Suche:</strong> Das System findet die 5 relevantesten Gesetzesabschnitte zur Frage.</li>
        <li><strong>Kontext-Erstellung:</strong> Diese Abschnitte werden mit der Frage an das Sprachmodell (Qwen 2.5 32B) uebergeben.</li>
        <li><strong>Antwort-Generierung:</strong> Das Modell formuliert eine verstaendliche Antwort auf Deutsch und zitiert die verwendeten Rechtsquellen.</li>
        <li><strong>Quellenangabe:</strong> Jede Antwort enthaelt exakte Zitate mit Artikelangaben.</li>
      </ol>

      <InfoBox type="warning" title="Wichtige Einschraenkung">
        Der Rechtsassistent gibt <strong>keine Rechtsberatung</strong>. Er hilft, relevante
        Gesetzespassagen zu finden und verstaendlich zusammenzufassen. Die Antworten enthalten
        immer einen Confidence-Score (0-1).
      </InfoBox>
    </>
  )
}
