mindnet/docs/01_User_Manual/NOTE_SCOPE_ZONEN.md
Lars 742792770c Implement Phase 3 Agentic Edge Validation in ingestion_processor.py and related documentation updates
Introduce a new method for persisting rejected edges for audit purposes, enhancing traceability and validation logic. Update the decision engine to utilize a generic fallback template for improved error handling during LLM validation. Revise documentation across multiple files to reflect the new versioning, context, and features related to Phase 3 validation, including automatic mirror edges and note-scope zones. This update ensures better graph integrity and validation accuracy in the ingestion process.
2026-01-12 07:45:54 +01:00

276 lines
7.4 KiB
Markdown

# Note-Scope Extraktions-Zonen (v4.5.8)
**Version:** v4.5.8
**Status:** Aktiv
**Aktualisiert:** WP-24c Phase 3 Agentic Edge Validation
## Übersicht
Das Mindnet-System unterstützt nun **Note-Scope Extraktions-Zonen**, die es ermöglichen, Links zu definieren, die der gesamten Note zugeordnet werden (nicht nur einem spezifischen Chunk).
### Unterschied: Chunk-Scope vs. Note-Scope
- **Chunk-Scope Links** (`scope: "chunk"`):
- Werden aus dem Text-Inhalt extrahiert
- Sind lokalem Kontext zugeordnet
- `source_id` = `chunk_id`
- **Note-Scope Links** (`scope: "note"`):
- Werden aus speziellen Markdown-Sektionen extrahiert
- Sind der gesamten Note zugeordnet
- `source_id` = `note_id`
- Haben höchste Priorität bei Duplikaten
## Verwendung
### Format
Erstellen Sie eine Sektion mit einem der folgenden Header:
- `## Smart Edges`
- `## Relationen`
- `## Global Links`
- `## Note-Level Relations`
- `## Globale Verbindungen`
**Wichtig:** Die Header müssen exakt (case-insensitive) übereinstimmen.
### Beispiel
```markdown
---
type: decision
title: Technologie-Entscheidung
---
# Entscheidung über Technologie-Stack
Wir haben uns für React entschieden...
## Begründung
React bietet bessere Performance...
## Smart Edges
[[rel:depends_on|Performance-Analyse]]
[[rel:uses|TypeScript]]
[[React-Dokumentation]]
## Weitere Überlegungen
Hier ist weiterer Inhalt...
```
### Unterstützte Link-Formate
In Note-Scope Zonen werden folgende Formate unterstützt:
1. **Typed Relations:**
```markdown
## Smart Edges
[[rel:depends_on|Ziel-Notiz]]
[[rel:uses|Andere Notiz]]
```
2. **Standard Wikilinks:**
```markdown
## Smart Edges
[[Ziel-Notiz]]
[[Andere Notiz]]
```
(Werden als `related_to` interpretiert)
3. **Callouts:**
```markdown
## Smart Edges
> [!edge] depends_on:[[Ziel-Notiz]]
> [!edge] uses:[[Andere Notiz]]
```
## Technische Details
### ID-Generierung
Note-Scope Links verwenden die **exakt gleiche ID-Generierung** wie Symmetrie-Kanten in Phase 2:
```python
_mk_edge_id(kind, note_id, target_id, "note", target_section=sec)
```
Dies stellt sicher, dass:
- ✅ Authority-Check in Phase 2 korrekt funktioniert
- ✅ Keine Duplikate entstehen
- ✅ Symmetrie-Schutz greift
### Provenance
Note-Scope Links erhalten:
- `provenance: "explicit:note_zone"`
- `confidence: 1.0` (höchste Priorität)
- `scope: "note"`
- `source_id: note_id` (nicht `chunk_id`)
### Priorisierung
Bei Duplikaten (gleiche ID):
1. **Note-Scope Links** haben **höchste Priorität**
2. Dann Confidence-Wert
3. Dann Provenance-Priority
**Beispiel:**
- Chunk-Link: `related_to:Note-A` (aus Text)
- Note-Scope Link: `related_to:Note-A` (aus Zone)
- **Ergebnis:** Note-Scope Link wird beibehalten
## Best Practices
### ✅ Empfohlen
1. **Note-Scope für globale Verbindungen:**
```markdown
## Smart Edges
[[rel:depends_on|Projekt-Übersicht]]
[[rel:part_of|Größeres System]]
```
2. **Chunk-Scope für lokale Referenzen:**
```markdown
In diesem Abschnitt verweisen wir auf [[rel:uses|Spezifische Technologie]].
```
3. **Kombination:**
```markdown
# Hauptinhalt
Lokale Referenz: [[rel:uses|Lokale Notiz]]
## Smart Edges
Globale Verbindung: [[rel:depends_on|Globale Notiz]]
```
### ❌ Vermeiden
1. **Nicht für lokale Kontext-Links:**
- Nutzen Sie Chunk-Scope Links für lokale Referenzen
- Note-Scope ist für Note-weite Verbindungen gedacht
2. **Nicht zu viele Note-Scope Links:**
- Beschränken Sie sich auf wirklich Note-weite Verbindungen
- Zu viele Note-Scope Links können die Graph-Struktur verwässern
## Integration mit Phase 3 Validierung (WP-24c v4.5.8)
Note-Scope Links können **zwei verschiedene Provenance** haben:
### Explizite Note-Scope Links (Keine Validierung)
Links in `## Smart Edges` Zonen werden als `explicit:note_zone` markiert und **direkt übernommen** (keine Phase 3 Validierung):
```markdown
## Smart Edges
[[rel:depends_on|System-Architektur]]
[[rel:part_of|Gesamt-System]]
```
**Vorteil:** Sofortige Übernahme, höchste Priorität, keine Validierungs-Kosten.
### Validierte Note-Scope Links (Phase 3 Validierung)
Links in `### Unzugeordnete Kanten` erhalten `candidate:` Präfix und werden in **Phase 3** validiert:
```markdown
### Unzugeordnete Kanten
related_to:Mögliche Verbindung
depends_on:Unsicherer Link
```
**Validierungsprozess:**
1. Links erhalten `candidate:` Präfix
2. **Phase 3 Validierung:** LLM prüft semantisch gegen Note-Summary oder Note-Text (Note-Scope Kontext-Optimierung)
3. **Erfolg (VERIFIED):** `candidate:` Präfix wird entfernt, Kante wird persistiert
4. **Ablehnung (REJECTED):** Kante wird **nicht** in die Datenbank geschrieben
**Wichtig:**
- Links in `### Unzugeordnete Kanten` werden als `candidate:` markiert und durchlaufen Phase 3
- Links in `## Smart Edges` werden als `explicit:note_zone` markiert und **nicht** validiert (direkt übernommen)
- **Note-Scope Kontext-Optimierung:** Bei Note-Scope Kanten nutzt Phase 3 `note_summary` (Top 5 Chunks) oder `note_text` (aggregierter Gesamttext) für bessere Validierungs-Genauigkeit
## Beispiel: Vollständige Notiz
```markdown
---
type: decision
title: Architektur-Entscheidung
---
# Architektur-Entscheidung
Wir haben uns für Microservices entschieden...
## Begründung
### Performance
Microservices bieten bessere Skalierbarkeit. Siehe auch [[rel:uses|Kubernetes]] für Orchestrierung.
### Sicherheit
Wir nutzen [[rel:enforced_by|OAuth2]] für Authentifizierung.
## Smart Edges
[[rel:depends_on|System-Architektur]]
[[rel:part_of|Gesamt-System]]
[[rel:uses|Cloud-Infrastruktur]]
## Weitere Details
Hier ist weiterer Inhalt...
```
**Ergebnis:**
- `uses:Kubernetes` → Chunk-Scope (aus Text)
- `enforced_by:OAuth2` → Chunk-Scope (aus Text)
- `depends_on:System-Architektur` → Note-Scope (aus Zone)
- `part_of:Gesamt-System` → Note-Scope (aus Zone)
- `uses:Cloud-Infrastruktur` → Note-Scope (aus Zone)
## Code-Referenzen
- **Extraktion:** `app/core/graph/graph_derive_edges.py``extract_note_scope_zones()`
- **Integration:** `app/core/graph/graph_derive_edges.py``build_edges_for_note()`
- **Header-Liste:** `NOTE_SCOPE_ZONE_HEADERS` in `graph_derive_edges.py`
## FAQ
**Q: Können Note-Scope Links auch Section-Links sein?**
A: Ja, `[[rel:kind|Target#Section]]` wird unterstützt. `target_section` fließt in die ID ein.
**Q: Was passiert, wenn ein Link sowohl in Chunk als auch in Note-Scope Zone steht?**
A: Der Note-Scope Link hat Vorrang und wird beibehalten.
**Q: Werden Note-Scope Links validiert?**
A: Das hängt von der Zone ab:
- **`## Smart Edges`:** Nein, werden direkt übernommen (explizite Links, keine Validierung)
- **`### Unzugeordnete Kanten`:** Ja, durchlaufen Phase 3 Validierung (candidate: Präfix)
**Q: Was ist der Unterschied zwischen Note-Scope in Smart Edges vs. Unzugeordnete Kanten?**
A:
- **Smart Edges:** Explizite Links, sofortige Übernahme, höchste Priorität
- **Unzugeordnete Kanten:** Validierte Links, Phase 3 Prüfung, candidate: Präfix
**Q: Kann ich eigene Header-Namen verwenden?**
A: Aktuell nur die vordefinierten Header. Erweiterung möglich durch Anpassung von `NOTE_SCOPE_ZONE_HEADERS`.
## Zusammenfassung
-**Note-Scope Zonen:** `## Smart Edges` oder ähnliche Header
-**Format:** `[[rel:kind|target]]` oder `[[target]]`
-**Scope:** `scope: "note"`, `source_id: note_id`
-**Priorität:** Höchste Priorität bei Duplikaten
-**ID-Konsistenz:** Exakt wie Symmetrie-Kanten (Phase 2)