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

7.9 KiB
Raw Blame History


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_incaused_by
    • followed_bypreceeded_by
    • derived_fromsource_of
    • impactsimpacted_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_byresulted_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)