mindnet/docs/02_concepts/02_concept_kausales_retrieval.md
Lars 43327c1f6d
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 4s
Update documentation for causal retrieval concept
- Added additional spacing for improved readability in the document.
- Ensured consistent formatting throughout the section on causal retrieval for Mindnet.
2026-01-15 11:49:31 +01:00

224 lines
7.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- FILE: konzept_zielbild_kausales_retrieval_mindnet.md -->
---
id: konzept_zielbild_kausales_retrieval_mindnet
title: Konzept & Zielbild Kausalketten-Prüfung und kausales Retrieval für Mindnet (Qdrant)
type: concept
status: draft
created: 2026-01-13
lang: de
tags:
- mindnet
- obsidian
- knowledge_graph
- causal_chains
- retrieval
---
# Konzept & Zielbild Kausalketten-Prüfung und kausales Retrieval für Mindnet (Qdrant)
## Ziel
Mindnet soll zu beliebigen Fragestellungen **die richtigen Notizen** nicht nur über semantische Nähe (Embeddings), sondern über **kausale Relevanz** finden.
Parallel soll ein Authoring-Assistent helfen, Obsidian-Notizen so anzulegen, dass Kausalketten **formal konsistent** und **traversierbar** sind.
---
## Ausgangslage / Problem
- Der Wissensgraph wird in Qdrant gepflegt; aktuelles Retrieval basiert primär auf **Gewichtung + semantischer Nähe**.
- Ergebnis: thematisch nahe Treffer, aber oft **nicht antwortrelevant** (fehlende Ursachen-/Folgenbezüge).
- Obsidian-Notizen enthalten Edges (Vorwärts/Rückwärts); Qualität hängt von:
- korrekter Relation (Kausalität vs Chronologie),
- konsistenten Node-Namen,
- Inversen (gegenläufigen Beziehungen),
- sauberer Typisierung ab.
---
## Grundannahmen
- Viele Antworten benötigen einen **Erklärungspfad** statt eines Einzel-Treffers:
- Ursache → Mechanismus/Transformation → Entscheidung → Wirkung → Rückkopplung
- Kausalität ist im Graph als gerichtete Kanten modelliert und über inverse Typen **bidirektional navigierbar**:
- `resulted_in``caused_by`
- `followed_by``preceeded_by`
- `derived_from``source_of`
- `impacts``impacted_by`
---
## System-Zielbild (2 Hauptkomponenten)
### 1) Authoring-Assistent (Obsidian Graph Linter + Chain Explorer)
Zweck: Qualitätssicherung beim Erstellen/Ändern von Notizen.
**Kernfunktionen**
- **Formale Prüfungen**
- Canonical Edge vs Alias (Normalisierung nach `edge_vocabulary`)
- Zielnoten existieren / leere Links als `open_question` oder TODO markieren
- Tippfehler/Node-Splitting erkennen (mehrere Schreibweisen desselben Knoten)
- Edge-Typ zulässig für Note-Typ (z.B. keine Kausal-Edges aus `open_question`)
- **Semantische Plausibilität (regelbasiert)**
- Chronologie (`followed_by`) ≠ Kausalität (`resulted_in`)
- Hub-/Index-Noten nutzen primär `related_to/consists_of` statt Kausalität
- Prinzipien bevorzugt `derived_from/based_on` statt pauschal `caused_by`
- **Ketten-Integrität**
- „Gap“-Warnungen (Sprünge ohne Zwischennoten)
- Zyklen ohne Sinn (A caused_by B und B caused_by A)
- Mehrfachursachen transparent markieren
**Outputs**
- Lint-Report pro Note (Fehler/Warnung/Empfehlung)
- Chain-Preview (24 Schritte vorwärts/rückwärts)
- Optional: Auto-Fix-Vorschläge (Alias→Canonical, Link-Normalisierung, Inversen ergänzen)
---
### 2) Mindnet Retrieval: Hybrid aus Embeddings + Graph Traversal + Reranking
Zweck: Aus einer Frage automatisch eine **kleine, kausal zusammenhängende** Menge von Notizen auswählen.
**Pipeline**
1. **Seed Retrieval (Qdrant Embeddings)**
- Top-K Kandidaten (z.B. 30) als Startpunkte
- Optional: Filter nach Node-Typ (z.B. bei „Welche Entscheidungen…“)
2. **Intent-Klassifikation (Frage → Richtung & Kettenform)**
- Regelbasiert (Start) oder später ML-Classifier
- Output: `{direction, preferred_edges, target_types, max_hops, need_explanation_chain}`
3. **Graph Expansion (Multi-Source Multi-Hop Traversal)**
- Expandiert von Seeds 13 Hops (typisch 24)
- Richtungslogik:
- „Warum/Ursache“ → rückwärts (`caused_by`, `preceeded_by`, `derived_from`)
- „Folgen/Ergebnis“ → vorwärts (`resulted_in`, `followed_by`, `impacts`)
- „Entwicklung/Veränderung“ → beides (forward + backward)
- Ergebnis: Pfad-Kandidaten (nicht nur Nodes)
4. **Reranking (Antwortrelevanz)**
- Score = Semantik + Pfadqualität + Antwortform-Passung
5. **Antwort-Bausteine (Minimal Explanation Subgraph)**
- Merged Top-Pfade zu einem kleinen Subgraph (z.B. 812 Nodes)
- Pruning nach zentralen Knoten und erklärender Kettenform
---
## Spezifikation: Intent → Traversal Mode (Heuristik)
### Intent-Struktur
- `direction`: `backward | forward | both`
- `preferred_edges`: Menge Edge-Typen
- `target_types`: Menge Node-Typen
- `max_hops`: int
- `need_explanation_chain`: bool
### Heuristik (Deutsch)
- **Warum / Ursache / Auslöser / wodurch / wie kam es dazu**
- direction: backward
- preferred_edges: `{caused_by, preceeded_by, derived_from}`
- target_types: `{experience, decision, strategy, state}`
- max_hops: 24
- **Was führte zu / Folgen / Auswirkungen / resultierte in**
- direction: forward
- preferred_edges: `{resulted_in, followed_by, impacts}`
- target_types: `{decision, strategy, state, principle}`
- max_hops: 24
- **Entwicklung / Veränderung / Weltbild / Glaubenssatz / Charakter**
- direction: both
- preferred_edges backward: `{caused_by, derived_from}`
- preferred_edges forward: `{resulted_in, impacts}`
- target_types: `{principle, state, strategy, decision}`
- max_hops: 24
- need_explanation_chain: true
---
## Spezifikation: Traversal (Weighted Multi-Hop)
### Gewichte (Startwerte)
**Edge Weights**
- `resulted_in`: 1.00
- `caused_by`: 1.00
- `derived_from`: 0.90
- `source_of`: 0.90
- `impacts`: 0.70
- `impacted_by`: 0.70
- `followed_by`: 0.50
- `preceeded_by`: 0.50
- `related_to`: 0.25
- `part_of/consists_of`: 0.25
**Node-Type Weights**
- `experience`: 1.00
- `decision`: 1.00
- `strategy`: 0.90
- `state`: 0.85
- `principle`: 0.85
- `insight(hub)`: 0.35
- `open_question/hypothesis/white_spot`: 0.00 (Filter)
**Hop Decay**
- `hop_decay(h) = 0.75^h`
### Traversal-Logik (pseudocode-nah)
- Multi-Source-Expansion ab Seeds
- Pfade priorisiert nach kumuliertem Pfadscore
- `visited` verhindert endlose Wiederholungen
---
## Spezifikation: Reranking (Semantik + Kausalität + Antwortform)
### Final Score
- `final_score(path) = alpha*semantic + beta*coherence + gamma*shape_match`
Startwerte:
- `alpha = 0.55` (Semantik)
- `beta = 0.30` (Kausal-Kohärenz)
- `gamma = 0.15` (Passung zur Frageform)
**Causal Coherence**
- Bonus, wenn Pfad Kausal-Edges enthält (`resulted_in/caused_by/derived_from`)
- Malus, wenn nur Navigation/Chronologie enthalten ist
- Bonus für Kernform: `experience → decision → (state|strategy|principle)`
---
## Output: Minimal Explanation Subgraph (MES)
Ziel: nicht eine Liste, sondern ein erklärendes Subgraph-Set.
**Regeln**
- Top-Pfade (z.B. 35) mergen
- max_nodes: 812
- Pruning:
- Hubs raus, wenn sie nur Navigation sind
- Decision/Principle/State bevorzugen (Antwortanker)
- Bridge-Nodes behalten (in mehreren Pfaden vorkommend)
---
## Authoring-Regeln (Graph-Hygiene) harte Leitplanken
1. Kausalität nur auf atomaren Noten (`experience/decision/state/strategy/principle`)
2. Hubs/Indexnoten: primär `related_to/consists_of` (keine „Hub verursacht X“-Kausalität)
3. Inverse Edges müssen erzeugbar sein (oder Build-Step erzeugt sie deterministisch)
4. Chronologie strikt trennen (`followed_by` ≠ `resulted_in`)
5. Prinzipien: `derived_from/based_on` für Herkunft (statt pauschal `caused_by`)
6. Leere Links als `open_question` oder TODO ohne Kausal-Edge
7. Kanonische Dateinamen: Node-Splitting verhindern
---
## Nutzen / Erfolgskriterien
- **Bessere Answer Relevance**: Mindnet liefert Knoten mit erklärender Kausalstruktur statt nur thematischer Nähe
- **Erklärbarkeit**: Antwort kann mit Pfad(en) begründet werden
- **Debuggability**: Fehlantworten lassen sich auf falsche/fehlende Kanten zurückführen
- **Authoring-Effizienz**: Assistent verhindert typische Edge-Fehler früh
---
## Offene Punkte (für nächste Iteration)
- Intent-Taxonomie (812 Frageklassen) finalisieren und evaluieren
- Welche Edges werden als „kausal“ im engeren Sinne akzeptiert?
- Welche Node-Typen sind Pflichtmetadaten für Mindnet?
- Evaluation: Retrieval-Qualität mit/ohne Traversal (A/B)