docs/knowledge_design.md aktualisiert
Some checks failed
Deploy mindnet to llm-node / deploy (push) Failing after 2s
Some checks failed
Deploy mindnet to llm-node / deploy (push) Failing after 2s
This commit is contained in:
parent
ec346905ed
commit
e672eade8b
|
|
@ -1,69 +1,67 @@
|
||||||
# knowledge_design.md
|
# mindnet – Knowledge Design
|
||||||
|
|
||||||
## Ziel & Anspruch
|
## 1. Gesamtziel, Anspruch & Nutzen
|
||||||
Dieses Dokument definiert die Wissensarchitektur von **mindnet**.
|
Ziel ist eine persönliche Wissensbasis, die langfristig tragfähig ist (eigene Gedanken, Erfahrungen, Pläne, Erlebnisse) und ist zugleich so strukturiert, dass Tools (Obsidian, Dataview, Parser, Vektorsuche/Qdrant, Agenten) es **maschinenlesbar** nutzen können.
|
||||||
Ziele:
|
|
||||||
- Persönliches Wissen, Erfahrungen, Pläne und Ideen konsistent speichern.
|
|
||||||
- Vernetzung durch Backlinks und Wikilinks, auch bei noch nicht vorhandenen Zielen.
|
|
||||||
- LLM-fähige Abfragen durch semantische Vektoren und strukturierte Graph-Kanten.
|
|
||||||
- Vollständiger Roundtrip: Markdown ↔ Qdrant ↔ Markdown.
|
|
||||||
|
|
||||||
## YAML-Frontmatter-Schema
|
**Anspruch an die Struktur:**
|
||||||
**Pflichtfelder**
|
- **Stabil**: robuste IDs, deterministische Dateinamen, konsistente Feldnamen
|
||||||
- `id`: eindeutige Note-ID
|
- **Atomar**: ein Kerninhalt pro Datei (keine Sammelcontainer)
|
||||||
- `title`: kurzer Titel
|
- **Erweiterbar**: neue Typen (z. B. `milestone`, `manifesto`) jederzeit möglich
|
||||||
- `type`: z. B. `concept`, `plan`, `journal`
|
- **Portabel**: reines Markdown + YAML → funktioniert in Obsidian, Git und Parsern
|
||||||
- `created`: ISO-Datum
|
- **Vernetzbar**: systematische Links/Backlinks erzeugen ein sinnvoll navigierbares Netz
|
||||||
- `updated`: ISO-Datum
|
- **Parser-freundlich**: wiederkehrende Abschnittsüberschriften; Felder/Enums klar definiert
|
||||||
|
|
||||||
**Optionale Felder**
|
**Späterer Nutzen / Einsatzzwecke:**
|
||||||
- `status`, `area`, `project`, `tags`, `lang`, `slug`, `aliases`, `priority`, `effort_min`, `due`, `people`, `depends_on`, `assigned_to`
|
- **Schnelles Wiederfinden**: Dataview-Abfragen, Filter, Dashboards
|
||||||
|
- **LLM-gestütztes Arbeiten**: Frage-Antwort mit Kontext-Zitaten aus den Chunks
|
||||||
|
- **Agenten**: Vorschläge für neue Verbindungen/Strukturierung; Auflösen von „unresolved links“
|
||||||
|
- **Projektnavigation**: Aufgabenbeziehungen, Abhängigkeiten (leichtes PM)
|
||||||
|
- **Lebenslaufende Struktur**: persönliche Werte, Wendepunkte, Kinderentwicklung, Lernpfade
|
||||||
|
- **Automatisierung**: Vektor-Index (Qdrant), Embeddings, LLM-Q&A, Agenten-Workflows
|
||||||
|
- **Langfristiges Gedächtnis**: eigene Lebens-/Projektchronik reproduzierbar pflegen
|
||||||
|
- **Aufgaben-/Projektsteuerung**: im selben System, vernetzt mit Kontextwissen
|
||||||
|
|
||||||
## Dateinamen-Konvention
|
---
|
||||||
- Format: `YYYY-MM-DD_title.md` oder `slug.md`
|
|
||||||
- Pfade relativ zum Vault, z. B. `area/project/note.md`
|
|
||||||
|
|
||||||
## Tagging-Regeln
|
## 2. YAML-Frontmatter-Schema
|
||||||
- Tags im Frontmatter als YAML-Liste (`tags: [#karate, #projektX]`).
|
|
||||||
- Im Text: `#Tag` erlaubt, aber nicht für die Kantenbildung verwendet.
|
|
||||||
|
|
||||||
## Link-Regeln
|
> **Pflichtfelder:** `title`, `id`, `type`, `status`, `created`, `tags`
|
||||||
- Wikilinks: `[[note-id]]` oder `[[Titel|note-id]]` → erzeugen Edges.
|
> **Empfohlen:** `updated`, `area`, `project`, `priority`, `aliases` (u. a.)
|
||||||
- Forwardlinks (references): Chunk-Scope.
|
|
||||||
- Backlinks: Note-Scope, automatisch generiert.
|
|
||||||
- Unresolved-Links: bleiben als Edge mit `status=unresolved` bestehen, bis Zielnote existiert.
|
|
||||||
|
|
||||||
## Edge-Typen
|
### 2.1 Feldübersicht
|
||||||
- **belongs_to**: Chunk → Note
|
| Feld | Typ | Bedeutung |
|
||||||
- **references**: Chunk → Note (aus Wikilinks im Text)
|
|--------------------|-------------------------------|---------------------------------------------------------------------------|
|
||||||
- **backlink**: Note → Note (automatisch, invers von references)
|
| `title` | string | Menschlich lesbarer Titel |
|
||||||
- **prev / next**: Chunk → Chunk (symmetrisch)
|
| `id` | string (slug/identifier) | **Stabile** ID; referenzierbar über Wikilinks |
|
||||||
- **unresolved**: Edge mit `status=unresolved`, wenn Ziel fehlt
|
| `type` | enum | Notiz-Typ (`concept`, `thought`, `experience`, `task`, `project`, `journal`, …) |
|
||||||
- **weitere (Tasks/Projekte)**: `depends_on`, `assigned_to`, `related`, etc.
|
| `status` | enum | `draft` \| `active` \| `done` \| `archived` |
|
||||||
|
| `created` | date | Erstellungsdatum (ISO) |
|
||||||
|
| `updated` | date | Letzte Änderung (ISO) |
|
||||||
|
| `area` | string | Themen-/Lebensbereich |
|
||||||
|
| `project` | string | Projekt-/Arbeitskontext |
|
||||||
|
| `tags` | list<string> | Taxonomische Tags (präfixiert, s. Abschnitt 4) |
|
||||||
|
| `aliases` | list<string> | Alternative IDs/Titel (Slug-Resolver) |
|
||||||
|
| `lang` | string | Sprache, optional |
|
||||||
|
| `priority` | enum/int | Priorität, optional |
|
||||||
|
| `due`, `effort_min`| date/int | Für Aufgaben/Projekte |
|
||||||
|
| `people` | list<string> | Beteiligte Personen/IDs |
|
||||||
|
| `depends_on` | list<string> | Abhängigkeiten auf andere IDs |
|
||||||
|
| `source` | string | Quelle (Artikel, Buch, Video, …) |
|
||||||
|
|
||||||
**Optional:** `references:note` (Note-Scope-References), standardmäßig deaktiviert; aktivierbar via ENV/Flag.
|
### 2.2 Konventionen
|
||||||
|
- `id` ist **menschenlesbar** (Slug), eindeutig im Vault; `aliases` dienen als Fallback für Resolver.
|
||||||
|
- Datumsformat ISO `YYYY-MM-DD`.
|
||||||
|
- Keine duplizierten Tags; Präfixe nutzen (`area/…`, `type/…`, `topic/…`).
|
||||||
|
|
||||||
## Qdrant-Ablage
|
### 2.3 Minimalbeispiel Frontmatter
|
||||||
- Collections: `{prefix}_notes`, `{prefix}_chunks`, `{prefix}_edges`
|
```yaml
|
||||||
- Vektoren:
|
title: "Gedanke: YAML-Standards"
|
||||||
- Notes: Nullvektor oder Zentroid (optional)
|
id: thought-yaml-standards
|
||||||
- Chunks: 384-d Embeddings
|
type: thought
|
||||||
- Edges: 1-d Dummy-Vektor
|
status: draft
|
||||||
- IDs: deterministisch via UUIDv5 (idempotent)
|
created: 2025-09-02
|
||||||
|
updated: 2025-09-02
|
||||||
## Payload-Indizes (Performance)
|
area: mindnet
|
||||||
- Notes: `note_id`
|
project: project-mindnet
|
||||||
- Chunks: `note_id`, `chunk_index`
|
tags: [area/mindnet, type/thought, topic/yaml]
|
||||||
- Edges: `note_id`, `kind`, `scope`, `source_id`, `target_id`
|
aliases: [yaml-gedanken]
|
||||||
|
|
||||||
## Backlink-Sektion im Markdown
|
|
||||||
Jede Note kann am Ende eine Sektion **„Mögliche Verbindungen“** enthalten. Diese ist optional, wird chunked, erzeugt aber keine Kanten – dient nur als Inspirationsquelle.
|
|
||||||
|
|
||||||
## Graph-Layer (optional)
|
|
||||||
Für Multi-Hop-Queries kann zusätzlich eine SQL-Tabelle `nodes/edges/aliases` gepflegt werden. Der Importer schreibt parallel in Qdrant und SQL (UPSERT).
|
|
||||||
→ Vorteil: effiziente Abfragen wie „2-Hop Pfade“, „Top-Hubs“, Community-Erkennung.
|
|
||||||
|
|
||||||
## Nutzen
|
|
||||||
- Speicherung und Vernetzung persönlicher Wissensressourcen.
|
|
||||||
- LLM kann mit Hybrid-Retrieval (Vektor + Graph) antworten.
|
|
||||||
- Neue Inhalte können vom Agenten semantisch eingeordnet und durch vorgeschlagene Edges ergänzt werden.
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user