All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 4s
99 lines
4.2 KiB
Markdown
99 lines
4.2 KiB
Markdown
---
|
|
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`). |