--- doc_type: concept audience: architect, product_owner scope: graph, logic, provenance status: active version: 2.6 context: "Fachliche Beschreibung des Wissensgraphen: Knoten, Kanten, Provenance und Matrix-Logik." --- # Konzept: Die Graph-Logik **Quellen:** `mindnet_functional_architecture.md`, `chunking_strategy.md` Mindnet ist keine reine Dokumentablage, sondern ein **semantischer Graph**. Dieses Dokument beschreibt, wie aus statischen Textdateien ein vernetztes Wissensobjekt wird. ## 1. Die Knoten (Nodes) Der Graph besteht aus zwei Ebenen von Knoten. ### 1.1 Die Note (Das Fachobjekt) Eine Note repräsentiert ein atomares Konzept (z.B. "Projekt Alpha"). * **Eigenschaften:** Titel, Typ, Tags, Erstellungsdatum. * **Rolle:** Sie ist der Container für Metadaten und steuert via `type`, wie der Inhalt verarbeitet wird (siehe `types.yaml`). * **Identität:** Definiert durch eine deterministische UUIDv5. ### 1.2 Der Chunk (Das Suchobjekt) Da LLMs (Large Language Models) nicht unendlich viel Text auf einmal lesen können, werden Notes in kleinere Segmente (**Chunks**) zerlegt. * **Eigenschaften:** Vektor (Embedding 768d), Textfenster, Link zum Vorgänger/Nachfolger. * **Rolle:** Dies sind die eigentlichen Treffer bei einer Suche. * **Hierarchie:** Jeder Chunk gehört streng zu einer Note (`belongs_to`). --- ## 2. Die Kanten (Edges) Kanten machen aus isolierten Informationen Wissen. Mindnet nutzt gerichtete Kanten mit semantischer Bedeutung. ### 2.1 Semantische Typen | Kanten-Typ | Frage, die er beantwortet | Beispiel | | :--- | :--- | :--- | | `references` | Worüber wird gesprochen? | Text erwähnt "Python". | | `depends_on` | Was ist Voraussetzung? | Projekt braucht "Budget". | | `caused_by` | Warum ist das passiert? | Bug durch "Commit X". | | `blocks` | Was steht im Weg? | Risiko blockiert "Release". | | `based_on` | Worauf fußt das? | Erfahrung basiert auf "Wert Y". | | `derived_from` | Woher kommt das? | Prinzip stammt aus "Buch Z". | | `related_to` | Was ist ähnlich? | "Hund" ist verwandt mit "Wolf". | | `solves` | Was ist die Lösung? | "Qdrant" löst "Vektorsuche". | ### 2.2 Provenance (Herkunft & Vertrauen) Nicht alle Kanten sind gleich viel wert. Mindnet unterscheidet in v2.6 drei Qualitätsstufen (**Provenance**), um Konflikte aufzulösen. **1. Explicit (Der Mensch hat es gesagt)** * *Quelle:* Inline-Links (`[[rel:...]]`) oder Wikilinks im Text. * *Vertrauen:* **Hoch (1.0)**. * *Bedeutung:* Dies ist hartes Faktenwissen. "Ich habe diesen Link bewusst gesetzt." **2. Smart (Die KI hat es bestätigt)** * *Quelle:* Smart Edge Allocation (WP15). * *Vertrauen:* **Mittel (0.9)**. * *Bedeutung:* Ein LLM hat geprüft, ob der Link im Kontext dieses Textabschnitts wirklich relevant ist. Dies filtert "Rauschen" heraus (z.B. Links im Footer, die nichts mit dem Absatz zu tun haben). **3. Rule (Die Regel hat es vermutet)** * *Quelle:* `types.yaml` Defaults. * *Vertrauen:* **Niedrig (0.7)**. * *Bedeutung:* Eine Heuristik. "Weil es ein Projekt ist, nehmen wir an, dass es von allen erwähnten Technologien abhängt." --- ## 3. Matrix-Logik (Kontext-Sensitivität) Mit WP11 wurde eine Intelligenz eingeführt, die Kanten-Typen nicht nur anhand des Quell-Typs, sondern auch anhand des Ziel-Typs bestimmt ("Matrix"). **Logik-Beispiele:** * **Quelle `experience` → Ziel `value`** * *Standard:* `references` * *Matrix:* `based_on` (Erfahrungen basieren auf Werten). * **Quelle `principle` → Ziel `source` (Buch)** * *Standard:* `references` * *Matrix:* `derived_from` (Prinzipien stammen aus Quellen). * **Quelle `project` → Ziel `tool`** * *Standard:* `references` * *Matrix:* `uses` (Projekte nutzen Tools). *Nutzen:* Dies erlaubt im Chat präzise Fragen wie: *"Auf welchen Werten basiert diese Entscheidung?"* (Suche nach eingehenden `based_on` Kanten). --- ## 4. Idempotenz & Konsistenz Das System garantiert fachliche Konsistenz auch bei mehrfachen Importen. * **Stabile IDs:** Importiert man dieselbe Datei zweimal, ändern sich die IDs der Knoten nicht. * **Keine Duplikate:** Kanten werden dedupliziert. Die "stärkere" Quelle (Explicit > Smart > Rule) gewinnt. * **Lösch-Garantie:** Wenn eine Notiz gelöscht wird, verschwinden auch alle ihre Chunks und ausgehenden Kanten (via `--sync-deletes`).