mindnet/docs/02_concepts/02_concept_graph_logic.md
Lars 620858a575
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 4s
neue Dokumentationstruktur - (QS geprüft)
2025-12-13 18:38:37 +01:00

4.2 KiB

doc_type audience scope status version context
concept architect, product_owner graph, logic, provenance active 2.6 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).