Skip to content

Commit 193ff53

Browse files
chpollinclaude
andcommitted
docs: knowledge aktualisiert — Frontend Iteration 2, Entscheidungen, Visualisierungen
04-architektur: View-JSONs korrigiert, Frontend-Modulstruktur dokumentiert. 05-design-system: Layout von Tektonik-Sidebar auf Tab-basierte SPA aktualisiert. 06-visualisierungen: 4 D3-Vis → 2 D3-Vis + 2 Views, nicht umgesetzte Konzepte. 07-entscheidungen: E-03/11/18/19/20 als geaendert markiert, Tech Schulden Status. README: Beschreibungen 04 + 06 aktualisiert. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 9e53b88 commit 193ff53

File tree

5 files changed

+104
-54
lines changed

5 files changed

+104
-54
lines changed

knowledge/04-architektur.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ docs/data/*.json → GitHub Pages Frontend
2828
| reconcile.py | Wikidata-Reconciliation (noch nicht implementiert) | Indizes | Wikidata-IDs |
2929
| migrate.py | AUGIAS-Export → formatierte Excel (einmalig, abgeschlossen) | AUGIAS-XLSX | Excel |
3030

31-
View-JSONs: `partitur.json`, `matrix.json`, `kosmos.json`, `sankey.json`
31+
View-JSONs: `archiv.json`, `matrix.json`, `kosmos.json`, `indizes.json`
3232

3333
Details: siehe [`scripts/README.md`](../scripts/README.md)
3434

@@ -86,7 +86,43 @@ Mapping: archivsignatur → `rico:identifier`, titel → `rico:title`, entstehun
8686

8787
## Frontend
8888

89-
Vanilla JS (ES6-Module, kein Framework), D3.js v7 für alle Visualisierungen, Lucide Icons (CDN). Offline-first: alle Daten (~500KB) bei Startup geladen, kein Backend.
89+
Vanilla JS (ES6-Module, kein Framework), D3.js v7 (CDN) fuer Matrix + Kosmos, Lucide Icons (CDN). Offline-first: alle Daten (~500KB) bei Startup geladen, kein Backend. Kein Build-Tool (Vite aus Iteration 1 entfernt) — direkt auf GitHub Pages.
90+
91+
### 4 Tabs
92+
93+
| Tab | Typ | Datenquelle | Beschreibung |
94+
|---|---|---|---|
95+
| **Archiv** | Datengetriebene View | archiv.json | Bestand (Tektonik-Hierarchie) + Chronik (zeitlich-geografisch), Toggle, Inline-Expansion statt Sidebar |
96+
| **Indizes** | Datengetriebene View | indizes.json | 4-Grid: Personen, Organisationen, Orte, Werke mit Detailansicht |
97+
| **Matrix** | D3.js Heatmap | matrix.json | Person x 5-Jahres-Periode, Begegnungsintensitaet |
98+
| **Kosmos** | D3.js Force-Graph | kosmos.json | Radiale Darstellung: Malaniuk → Komponisten → Rollen |
99+
100+
### Modulstruktur
101+
102+
```
103+
docs/js/
104+
├── main.js # Einstiegspunkt, Store-Aufbau, Router
105+
├── data/
106+
│ ├── loader.js # Fetch + JSON-Parse
107+
│ ├── aggregator.js # buildStore() — Maps, Indizes, Konvolute
108+
│ └── constants.js # DOKUMENTTYP_LABELS, PERSONEN_NORMALISIERUNG
109+
├── ui/
110+
│ ├── router.js # Tab-Wechsel, URL-Hash-State
111+
│ ├── detail-panel.js # Slide-in Sidebar (fuer Indizes/Matrix/Kosmos)
112+
│ ├── stats-bar.js # Header-Statistik-Chips
113+
│ └── info-modal.js # Datenstand-Dialog
114+
├── views/
115+
│ ├── archiv.js # Orchestrator: Toggle, Filter, Sort
116+
│ ├── archiv-bestand.js # Tektonik: Fonds → Konvolute → Objekte
117+
│ ├── archiv-chronik.js # Zeitlich-geografische Gruppierung
118+
│ ├── archiv-inline-detail.js # Shared Detail-Komponente
119+
│ ├── indizes.js # 4-Grid mit Detailansicht
120+
│ ├── matrix.js # D3.js Heatmap
121+
│ └── kosmos.js # D3.js Force-Graph
122+
└── utils/
123+
├── dom.js # el(), clear(), HTML-Helpers
124+
└── format.js # formatSignatur(), formatDate()
125+
```
90126

91127
---
92128

knowledge/05-design-system.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,14 @@ Primary `#2C2825` · Secondary `#5C5651` · Tertiary `#8A857E`
5050

5151
## Layout
5252

53-
Zwei-Bereiche-Architektur:
54-
55-
- **ARCHIV:** Tektonik-Sidebar (280px), Card Grid, Detail Modal (720px)
56-
- **ANALYSE:** 4 D3.js-Visualisierungen, Document Panel (380px), Horizontale Toolbar
53+
Tab-basierte Single-Page-App mit 4 Tabs:
54+
55+
- **Header:** KUG-Blau, Statistik-Chips (Objekte, Konvolute, Zeitraum, Personen)
56+
- **Tab-Bar:** Archiv · Indizes · Matrix · Kosmos
57+
- **Archiv:** Bestand/Chronik-Toggle, Suchleiste + Typfilter + Sortierung, Inline-Expansion (kein Modal/Sidebar)
58+
- **Indizes:** 4-Grid (Personen, Organisationen, Orte, Werke), Suche + Kategorie-Filter, Detailansicht in Sidebar
59+
- **Matrix/Kosmos:** D3.js-Visualisierungen mit Slide-in Detail-Panel (420px)
60+
- **Footer:** KUG Graz · GitHub · Prototyp
5761

5862
Spacing: 8px-Raster. Icons: Lucide (CDN). Accessibility: WCAG 2.1 AA.
5963

knowledge/06-visualisierungen.md

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,37 @@
1-
# Visualisierungen
1+
# Visualisierungen & Views
22

3-
> Vier D3.js-basierte Darstellungen, operieren auf vorberechneten View-JSONs.
3+
> 2 D3.js-Visualisierungen (Matrix, Kosmos) + 2 datengetriebene Views (Archiv, Indizes), operieren auf vorberechneten View-JSONs.
44
55
---
66

77
## Übersicht
88

9-
| Visualisierung | Dimension | View-JSON | Forschungsfragen |
9+
| Tab | Typ | View-JSON | Forschungsfragen |
1010
|---|---|---|---|
11-
| Mobilitäts-Partitur | Zeit | partitur.json | FF1FF4 |
12-
| Begegnungs-Matrix | Netzwerk | matrix.json | FF1, FF3 |
13-
| Rollen-Kosmos | Repertoire | kosmos.json | FF2 |
14-
| Karrierefluss | Korrelation | sankey.json | FF2, FF4 |
11+
| Archiv (Bestand + Chronik) | Datengetriebene View | archiv.json | FF1, FF4 |
12+
| Indizes | Datengetriebene View | indizes.json | FF1, FF3 |
13+
| Begegnungs-Matrix | D3.js Heatmap | matrix.json | FF1, FF3 |
14+
| Rollen-Kosmos | D3.js Force-Graph | kosmos.json | FF2 |
1515

1616
---
1717

18-
## Mobilitäts-Partitur (Zeit)
18+
## Archiv (Bestand + Chronik)
1919

20-
6 Spuren auf gemeinsamer Zeitachse:
21-
1. **Lebensphasen** LP1–LP7 (1919–2009)
22-
2. **Orte-Swimlane** (Wohnorte oberhalb, Aufführungsorte unterhalb)
23-
3. **Mobilitäts-Spur** (5 Migrationsereignisse farbkodiert)
24-
4. **Netzwerk-Aggregation** (Balkendiagramm pro 5-Jahres-Periode)
25-
5. **Repertoire** (Rollen als Balken nach Komponist)
26-
6. **Dokumente** (Überlieferungsdichte)
20+
Zwei umschaltbare Perspektiven auf denselben Datenbestand:
2721

28-
Fokus-Linie als zentrales Navigationsinstrument.
22+
**Bestand (Tektonik):** Hierarchische Darstellung Fonds → Konvolute → Objekte. Konvolute sind aufklappbar. Jeder Record kann inline expandiert werden (shared `buildInlineDetail()`-Komponente). Suchleiste, Dokumenttyp-Filter, Sortierung (Signatur/Datum/Titel).
23+
24+
**Chronik (Mobilität):** Zeitlich-geografische Gruppierung nach 5-Jahres-Perioden → Orte. Karriere-Notizen pro Periode (z.B. "1945-1949: Graz / Nachkriegszeit"). Records inline expandierbar.
25+
26+
Ersetzt die ursprüngliche Mobilitäts-Partitur (6-Spuren-Zeitachse aus Iteration 1, zu komplex für den aktuellen Datenstand).
27+
28+
---
29+
30+
## Indizes (4-Grid)
31+
32+
Vier durchsuchbare Index-Karten: Personen, Organisationen, Orte, Werke. Jeder Index mit Suchfeld und Kategorie-Filter. Detail-Panel (Sidebar) zeigt verknüpfte Archiv-Records.
33+
34+
Ersetzt den Karrierefluss/Sankey aus Iteration 1.
2935

3036
---
3137

@@ -45,11 +51,13 @@ Radiale Force-Graph. Zentrum: Malaniuk (50px). Mittlere Bahn: Komponisten. Äuß
4551

4652
---
4753

48-
## Karrierefluss (Korrelation)
54+
## Nicht umgesetzte Konzepte (Iteration 1)
4955

50-
Alluvial/Sankey: Phase → Repertoire → Ort. Schwächste Visualisierung, redundant mit Partitur und Kosmos.
51-
52-
**Empfehlung Iteration 2:** Ablösung durch Leaflet-Karte (CartoDB Positron).
56+
| Konzept | Status | Begründung |
57+
|---|---|---|
58+
| Mobilitäts-Partitur (6-Spuren-Zeitachse) | Ersetzt durch Archiv-Chronik | Zu komplex, Daten unzureichend für 6 Spuren |
59+
| Karrierefluss/Sankey (Phase → Repertoire → Ort) | Ersetzt durch Indizes | Redundant mit Partitur und Kosmos |
60+
| Leaflet-Karte (CartoDB Positron) | Verschoben | Deferred auf spätere Iteration |
5361

5462
---
5563

@@ -66,9 +74,9 @@ Alluvial/Sankey: Phase → Repertoire → Ort. Schwächste Visualisierung, redun
6674
| FF | Zielerreichung | Hauptlücke |
6775
|---|---|---|
6876
| FF1 Vernetzung | 70% | Zeitfilter in Matrix fehlt |
69-
| FF2 Genre | 90% | Kosmos + Partitur bilden Repertoire ab |
77+
| FF2 Genre | 90% | Kosmos bildet Repertoire ab |
7078
| FF3 Wissenstransfer | 60% | Vermittler identifizierbar, Inhalte nicht kodiert |
71-
| FF4 Mobilität | 85% | Kartendarstellung fehlt |
79+
| FF4 Mobilität | 85% | Kartendarstellung fehlt, Chronik-View als Zwischenlösung |
7280

7381
---
7482

knowledge/07-entscheidungen.md

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,24 @@
1010
|---|---|
1111
| E-01 | Vanilla JS (kein Framework) |
1212
| E-02 | D3.js v7 für alle Visualisierungen |
13-
| E-03 | Vite v5 als Build-Tool |
13+
| E-03 | ~~Vite v5~~ → Iteration 2: Kein Build-Tool, direkte ES6-Module auf GitHub Pages |
1414
| E-04 | Leaflet + CartoDB (deferred auf Iteration 2) |
1515
| E-05 | Offline-first (alle Daten bei Startup) |
1616
| E-06 | Google Sheets als Erfassungstool |
1717
| E-07 | Wikidata Q-IDs als Normdaten |
1818
| E-08 | JSON-LD / RiC-O 1.1 als Datenformat |
1919
| E-09 | Mobilitätsform-Präfix `[mobilität:]` im Anmerkungsfeld |
2020
| E-10 | Synthetische Daten mit `_meta.synthetic` |
21-
| E-11 | Vier Visualisierungen (Partitur, Matrix, Kosmos, Karrierefluss) |
21+
| E-11 | ~~Vier Visualisierungen~~ → Iteration 2: 2 D3-Vis (Matrix, Kosmos) + 2 Views (Archiv, Indizes) |
2222
| E-12 | Netzwerk-Schwellenwert 3+ für Matrix |
2323
| E-13 | 5-Jahres-Intervalle in Matrix |
2424
| E-14 | Komponisten-Farbkodierung |
2525
| E-15 | 7 Lebensphasen LP1–LP7 |
2626
| E-16 | Scroll-Morphing im Kosmos |
2727
| E-17 | Farbe + Linienstil für Mobilitätstypen |
28-
| E-18 | Zwei-Bereiche-Architektur (Archiv + Analyse) |
29-
| E-19 | Tektonik-Navigation als Hauptnavigation |
30-
| E-20 | Side Panel + Modal für Details |
28+
| E-18 | ~~Zwei-Bereiche~~ → Iteration 2: Tab-basiert (Archiv, Indizes, Matrix, Kosmos) |
29+
| E-19 | ~~Tektonik-Sidebar~~ → Iteration 2: Bestand/Chronik-Toggle mit Inline-Expansion |
30+
| E-20 | ~~Modal~~ → Iteration 2: Inline-Expansion (Archiv) + Slide-in Sidebar (Indizes/Matrix/Kosmos) |
3131
| E-21 | Collapsible Provenienz-Darstellung |
3232
| E-22 | Gruppierte Verknüpfungen mit Icons |
3333
| E-23 | Horizontale Toolbar für Visualisierungen |
@@ -40,42 +40,44 @@
4040

4141
| Thema | Priorität | Optionen |
4242
|---|---|---|
43-
| Karrierefluss vs. Karte | mittel | Sankey beibehalten oder durch Leaflet-Karte ersetzen |
43+
| ~~Karrierefluss vs. Karte~~ | erledigt | Beide ersetzt: Sankey → Indizes, Karte weiterhin verschoben |
4444
| Matrix Zeitfilter UI | hoch | Slider, Dropdown, oder Timeline-Brush |
45-
| Deep Linking | niedrig | Hash-basiert oder URL-Parameter |
45+
| ~~Deep Linking~~ | erledigt | Hash-basiert implementiert (router.js) |
46+
| Wikidata-Reconciliation | hoch | reconcile.py implementieren, Kosmos-View anpassen |
4647

4748
---
4849

49-
## Technische Schulden (Iteration 1)
50+
## Technische Schulden (Iteration 1) — Status
5051

51-
- `app.js` monolithisch (1.101 Zeilen)
52-
- `partitur.js` monolithisch (4.460 Zeilen)
53-
- Synthetische Daten noch in Frontend-Code praesent (Iteration 1 Artefakt)
54-
- Kategoriefilter-HTML ohne JS-Binding
55-
- Kein CSV/JSON-LD-Export aus Archiv-View
56-
- Inline-CSS in partitur.js
52+
- ~~`app.js` monolithisch (1.101 Zeilen)~~ → Behoben: 15+ Module (main.js, router.js, loader.js, etc.)
53+
- ~~`partitur.js` monolithisch (4.460 Zeilen)~~ → Behoben: Partitur durch Archiv-Chronik ersetzt
54+
- ~~Synthetische Daten noch in Frontend-Code~~ → Behoben: Reale Pipeline-Daten
55+
- ~~Kategoriefilter-HTML ohne JS-Binding~~ → Behoben: Funktionale Filter in allen Views
56+
- Kein CSV/JSON-LD-Export aus Archiv-View (offen)
57+
- ~~Inline-CSS in partitur.js~~ → Behoben: CSS-Klassen in archiv.css
5758

5859
---
5960

6061
## Verschobene Features
6162

62-
| Priorität | Feature |
63-
|---|---|
64-
| Hoch | Matrix Zeitfilter |
65-
| Hoch | Matrix Kategoriefilter aktivieren |
66-
| Hoch | Export CSV/JSON-LD/GEXF |
67-
| Mittel | Deep Linking |
68-
| Mittel | Cross-Visualization Linking |
69-
| Niedrig | Leaflet Karte |
70-
| Niedrig | Kosmos Scroll-Morphing |
63+
| Priorität | Feature | Status |
64+
|---|---|---|
65+
| Hoch | Matrix Zeitfilter | offen |
66+
| Hoch | Matrix Kategoriefilter aktivieren | offen |
67+
| Hoch | Wikidata-Reconciliation (reconcile.py) | offen |
68+
| Hoch | Export CSV/JSON-LD/GEXF | offen |
69+
| Mittel | ~~Deep Linking~~ | erledigt (Hash-Router) |
70+
| Mittel | Cross-Visualization Linking | offen |
71+
| Niedrig | Leaflet Karte | offen |
72+
| Niedrig | ~~Kosmos Scroll-Morphing~~ | gestrichen (E-16) |
7173

7274
---
7375

7476
## Prozesswissen (Iteration 1)
7577

7678
### Was funktioniert hat
7779

78-
- Promptotyping-Dokumente als Source of Truth (9 Knowledge-Docs → Code-Generierung)
80+
- Promptotyping-Dokumente als Source of Truth (12 Knowledge-Docs → Code-Generierung)
7981
- Synthetische Daten entkoppeln Frontend- von Datenarbeit
8082
- Design-System als CSS Custom Properties vorab definiert
8183
- Offline-first überlebt Funding-Gaps

knowledge/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ Stand: 2026-02-20
1313
| 01 | [Projekt](01-projekt.md) | Projektkern, Forschungsfragen, Mobilitätstypen, Meilensteine |
1414
| 02 | [Quellenbestand](02-quellenbestand.md) | 282 Objekte, Konvolute, Verknüpfungen, Datenqualität |
1515
| 03 | [Datenmodell](03-datenmodell.md) | Dreischichtenmodell v2.5, Konvolut-Hierarchie, Vokabulare, String-Matching |
16-
| 04 | [Architektur](04-architektur.md) | Pipeline (5 Python-Scripts), Normalisierung, JSON-LD/RiC-O, CI/CD |
16+
| 04 | [Architektur](04-architektur.md) | Pipeline (5 Python-Scripts), Frontend (4 Tabs, 15+ Module), JSON-LD/RiC-O, CI/CD |
1717
| 05 | [Design-System](05-design-system.md) | Scholarly Elegance, Farbsystem, Typografie, Layout |
18-
| 06 | [Visualisierungen](06-visualisierungen.md) | 4 D3.js-Vis, Forschungshypothesen, Evaluation |
18+
| 06 | [Visualisierungen](06-visualisierungen.md) | 2 D3.js-Vis (Matrix, Kosmos) + 2 Views (Archiv, Indizes), Forschungshypothesen |
1919
| 07 | [Entscheidungen](07-entscheidungen.md) | 25 finale + 3 offene Entscheidungen, Tech Schulden, Prozesswissen |
2020
| 08 | [RiC-O Referenz](08-ric-o.md) | RiC-O 1.1 Ontologie, Klassenhierarchie, Properties, M3GIM-Mapping |
2121
| 09 | [m3gim-Ontologie](09-m3gim-ontology.md) | Projekteigene RiC-O-Erweiterung, MusicalWork, Rollen, Dokumenttypen |

0 commit comments

Comments
 (0)