193 lines
6.7 KiB
Markdown
193 lines
6.7 KiB
Markdown
|
|
# Mindnet – Fachliche Architektur
|
|||
|
|
**Version:** 2.0 • **Datum:** 2025-11-09 • **Autor:** Fachkonzept (gemeinsam mit Owner)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 0. Zweck dieses Dokuments
|
|||
|
|
Dieses Dokument beschreibt **Fachdomäne, Funktionsräume, Prozesse und Regeln** von *mindnet*. Es ergänzt die technische Architektur und macht die ursprünglichen Ziele, Designentscheidungen, Anti‑Patterns und Umsetzungsstrategien explizit nachvollziehbar.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Vision & Leitplanken
|
|||
|
|
- **Essenz bewahren:** Entscheidungen, Erlebnisse, Werte, Prinzipien und Konditionierungen so strukturieren, dass sie später erklärbar rekonstruiert werden können.
|
|||
|
|
- **Antworten im eigenen Stil:** Ergebnisse sollen die Persönlichkeit des Owners widerspiegeln (Sprache: **Deutsch**).
|
|||
|
|
- **Vertraulichkeit:** Aktuell einheitlich, aber mit **Stufen** (public/internal/sensitive) erweiterbar.
|
|||
|
|
- **Zeitliche Priorisierung:** Standard: jüngere Inhalte leichter gewichten; Ausnahmen konfigurierbar.
|
|||
|
|
- **Lokal zuerst**, später skalierbar.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Fachliches Datenmodell
|
|||
|
|
### 2.1 Kernobjekte
|
|||
|
|
- **Note**: Eintrag im Wissensnetz (z. B. Konzept, Projekt, Erfahrung, Ereignis, Aufgabe).
|
|||
|
|
- **Chunk**: semantischer Abschnitt einer Note (Antwortbaustein).
|
|||
|
|
- **Edge**: gerichtete Beziehung zwischen Notes/Chunks (mit Typ, Gewicht, Quelle).
|
|||
|
|
- **Run**: Importlauf (Audit).
|
|||
|
|
- **Config**: aktive Regel‑ und Typkonfigurationen.
|
|||
|
|
|
|||
|
|
### 2.2 Typen & Semantik (Auszug)
|
|||
|
|
- `concept`: Begriff/These/Prinzip.
|
|||
|
|
- `experience`: Erlebnis/Beobachtung (zeitlich verankert).
|
|||
|
|
- `project`: Vorhaben mit Zielen/Abhängigkeiten.
|
|||
|
|
- `task`: Arbeitseinheit.
|
|||
|
|
- (erweiterbar: `event`, `decision`, `person`, `place`, `quote` …)
|
|||
|
|
|
|||
|
|
### 2.3 Relationen (fachlich)
|
|||
|
|
- `references`: verweist inhaltlich auf …
|
|||
|
|
- `related_to`: thematische Nähe/Assoziation.
|
|||
|
|
- `depends_on`: fachliche/kausale Abhängigkeit.
|
|||
|
|
- `belongs_to`: Zugehörigkeit (Teil‑von, Kapitel‑zu).
|
|||
|
|
- `derived_from`: abgeleitet (z. B. Schluss aus Erfahrung).
|
|||
|
|
- `inspired_by`: Impuls/Idee aus Quelle.
|
|||
|
|
- `supports` / `contradicts`: argumentative Beziehung.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Funktionsräume
|
|||
|
|
1. **Kurativer Raum**
|
|||
|
|
- Schreiben/Überarbeiten von Notizen (Obsidian Templates, Frontmatter‑Guides).
|
|||
|
|
- Plausibilisierung: Pflichtfelder, Dublettencheck, Warnungen (z. B. fehlende Relationen).
|
|||
|
|
|
|||
|
|
2. **Graphischer Raum**
|
|||
|
|
- Relationen setzen (declared), Vorschläge prüfen (inferred).
|
|||
|
|
- Subgraph‑Explorer je Frage/Entscheidung.
|
|||
|
|
|
|||
|
|
3. **Antwort‑Raum**
|
|||
|
|
- Query‑Typen: *Faktenabruf*, *Erlebnisbasiert erklären*, *Planung/Entscheidung begründen*.
|
|||
|
|
- Erklärpfad: Chunks → Kanten → Zeitfaktoren → Typgewichte.
|
|||
|
|
|
|||
|
|
4. **Governance‑Raum**
|
|||
|
|
- Sichtbarkeit/ACL, Qualitätsflags, Review‑Queues.
|
|||
|
|
- Versionsjournal, Import‑Runs, Config‑Historie.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Fachliche Regeln
|
|||
|
|
### 4.1 Frontmatter‑Schema (Mindeststandard)
|
|||
|
|
```yaml
|
|||
|
|
id: "{deterministic}"
|
|||
|
|
title: "…"
|
|||
|
|
type: "concept|experience|project|task|…"
|
|||
|
|
created: "YYYY-MM-DD"
|
|||
|
|
modified: "YYYY-MM-DD"
|
|||
|
|
visibility: "internal" # default
|
|||
|
|
retriever_weight: null # optional override
|
|||
|
|
chunk_profile: null # optional override
|
|||
|
|
tags: ["…"]
|
|||
|
|
edge_hints:
|
|||
|
|
- relation: references
|
|||
|
|
target: "note-id-or-path"
|
|||
|
|
- relation: depends_on
|
|||
|
|
target: "…"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.2 Typregeln (aus types.yaml)
|
|||
|
|
- `chunk_profile`, `retriever_weight`, `edge_defaults` werden je Typ **automatisch** angewandt.
|
|||
|
|
- Aus `edge_defaults` abgeleitete Kanten werden **persistiert** (`source='rule'`).
|
|||
|
|
|
|||
|
|
### 4.3 Zeitgewichtung
|
|||
|
|
- Default: **Exponential Decay** mit globalem λ; Override per `time_weight_override` möglich.
|
|||
|
|
- Erlebnisse (`experience`) erhalten standardmäßig leicht höheren **Base‑Impact** im Score, um Persönlichkeit abzubilden.
|
|||
|
|
|
|||
|
|
### 4.4 Qualitätsregeln
|
|||
|
|
- Jede Note soll **mind. eine Relation** besitzen.
|
|||
|
|
- **Konflikte** (contradicts) werden nicht gefiltert, sondern sichtbar gemacht (mit Hinweis).
|
|||
|
|
- **Sichtbarkeit**: Antworten aus `sensitive` nur bei expliziter Freigabe.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Use Cases (repräsentativ)
|
|||
|
|
1. **„Warum habe ich 2019 X entschieden?“**
|
|||
|
|
- Abfrage auf `decision` + temporale Nachbarschaft zu `experience`/`principle`.
|
|||
|
|
- Ausgabe mit Erklärpfad: *Erlebnis → Prinzip → Projekt → Entscheidung*.
|
|||
|
|
|
|||
|
|
2. **„Plane ein Trainingsprogramm“**
|
|||
|
|
- Query kombiniert Konzepte/Erfahrungen/Projekte → Graph‑Walk + Typgewichtung, priorisiert jüngere Erkenntnisse.
|
|||
|
|
|
|||
|
|
3. **„Welche Ereignisse haben mein Leitbild geprägt?“**
|
|||
|
|
- Subgraph über `derived_from`/`inspired_by` Ketten + Zeitachsen‑Visualisierung.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Anti‑Patterns (vermeiden)
|
|||
|
|
- **Edges ohne Relation** („Dot‑Kanten“) – verhindern jede sinnvolle Auswertung.
|
|||
|
|
- **Nur Vektor‑Suche** ohne Graph / Zeitfaktor – verfälscht Persönlichkeit.
|
|||
|
|
- **Freies Tag‑Chaos** ohne Typregeln – mindert Reproduzierbarkeit.
|
|||
|
|
- **Heimliche Workarounds** (z. B. Felder mit Mehrdeutigkeit) – erschweren spätere Automatisierung.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Umsetzungsstrategie & Roadmap
|
|||
|
|
### Phase 1 (Jetzt)
|
|||
|
|
- Pflicht‑Frontmatter, deterministische IDs, Ingestion v2 (Chunks/Edges **persistiert**).
|
|||
|
|
- types.yaml + retrieval.yaml live‑fähig; Import‑Run‑Audit.
|
|||
|
|
- Tests (Parser/Chunker/Edge‑Rules), Regression auf Chunk‑Mengen.
|
|||
|
|
|
|||
|
|
### Phase 2
|
|||
|
|
- Hybrid‑Retrieval mit Graph‑Boosts, Explain‑Traces in API.
|
|||
|
|
- Subgraph‑Explorer, Governance‑Views (Review‑Queues).
|
|||
|
|
|
|||
|
|
### Phase 3
|
|||
|
|
- ML‑gestützte Edge‑Vorschläge, temporale Graphanalysen, Reasoning‑Chains.
|
|||
|
|
- ACL/Sharing‑Modelle, Export/Archiv‑Pipelines.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Beispiel‑Konfigurationen
|
|||
|
|
### 8.1 types.yaml (Beispiel – wie technisch)
|
|||
|
|
```yaml
|
|||
|
|
version: 1.0
|
|||
|
|
types:
|
|||
|
|
concept:
|
|||
|
|
chunk_profile: medium
|
|||
|
|
edge_defaults: ["references", "related_to"]
|
|||
|
|
retriever_weight: 0.33
|
|||
|
|
task:
|
|||
|
|
chunk_profile: short
|
|||
|
|
edge_defaults: ["depends_on", "belongs_to"]
|
|||
|
|
retriever_weight: 0.8
|
|||
|
|
experience:
|
|||
|
|
chunk_profile: medium
|
|||
|
|
edge_defaults: ["derived_from", "inspired_by"]
|
|||
|
|
retriever_weight: 0.9
|
|||
|
|
project:
|
|||
|
|
chunk_profile: long
|
|||
|
|
edge_defaults: ["references", "depends_on"]
|
|||
|
|
retriever_weight: 0.95
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8.2 retrieval.yaml
|
|||
|
|
```yaml
|
|||
|
|
relation_weights:
|
|||
|
|
references: 1.0
|
|||
|
|
related_to: 0.6
|
|||
|
|
depends_on: 1.2
|
|||
|
|
belongs_to: 0.8
|
|||
|
|
derived_from: 1.1
|
|||
|
|
inspired_by: 0.8
|
|||
|
|
supports: 1.0
|
|||
|
|
contradicts: -0.9
|
|||
|
|
mixing:
|
|||
|
|
alpha: 0.45
|
|||
|
|
beta: 0.25
|
|||
|
|
gamma: 0.20
|
|||
|
|
delta: 0.07
|
|||
|
|
epsilon: 0.03
|
|||
|
|
time_decay:
|
|||
|
|
lambda: 0.0025
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Governance & Nachvollziehbarkeit
|
|||
|
|
- **Decision Log** (ADR‑ähnlich): jedes Regel‑/Schema‑Update mit Begründung.
|
|||
|
|
- **Import‑Protokolle** versioniert, inkl. geänderter Dateien, Chunk‑/Edge‑Zahlen.
|
|||
|
|
- **Explainability Standard** in jeder Antwort.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Anhang A: Glossar
|
|||
|
|
- **Chunk‑Profil**: Regelset zur Textteilung.
|
|||
|
|
- **Rule‑Edge**: automatisch erzeugte Kante auf Basis von Typregeln.
|
|||
|
|
- **Declared Edge**: explizit gesetzte Kante aus der Quelle.
|