|
1 | | -# Entscheidungen, Schulden & Prozesswissen |
| 1 | +# Architekturentscheidungen und Prozesswissen |
2 | 2 |
|
3 | | -> 30 finale + 2 offene Architekturentscheidungen. Technische Schulden und Learnings aus Iteration 1+2. |
4 | | -
|
5 | | ---- |
| 3 | +> 30 finale Architekturentscheidungen (E-01 bis E-30), offene Entscheidungen, technische Schulden und Learnings aus Iteration 1+2. |
6 | 4 |
|
7 | 5 | ## Architekturentscheidungen (final) |
8 | 6 |
|
9 | 7 | | ID | Entscheidung | |
10 | 8 | |---|---| |
11 | 9 | | E-01 | Vanilla JS (kein Framework) | |
12 | | -| E-02 | D3.js v7 für alle Visualisierungen | |
| 10 | +| E-02 | D3.js v7 fuer alle Visualisierungen | |
13 | 11 | | E-03 | ~~Vite v5~~ → Iteration 2: Kein Build-Tool, direkte ES6-Module auf GitHub Pages | |
14 | 12 | | E-04 | Leaflet + CartoDB (deferred auf Iteration 2) | |
15 | 13 | | E-05 | Offline-first (alle Daten bei Startup) | |
16 | 14 | | E-06 | Google Sheets als Erfassungstool | |
17 | 15 | | E-07 | Wikidata Q-IDs als Normdaten | |
18 | 16 | | E-08 | JSON-LD / RiC-O 1.1 als Datenformat | |
19 | | -| E-09 | Mobilitätsform-Präfix `[mobilität:]` im Anmerkungsfeld | |
| 17 | +| E-09 | Mobilitaetsform-Praefix `[mobilitaet:]` im Anmerkungsfeld | |
20 | 18 | | E-10 | Synthetische Daten mit `_meta.synthetic` | |
21 | 19 | | E-11 | ~~Vier Visualisierungen~~ → Iteration 2: 2 D3-Vis (Matrix, Kosmos) + 2 Views (Archiv, Indizes) | |
22 | | -| E-12 | Netzwerk-Schwellenwert 3+ für Matrix | |
| 20 | +| E-12 | Netzwerk-Schwellenwert 3+ fuer Matrix | |
23 | 21 | | E-13 | 5-Jahres-Intervalle in Matrix | |
24 | 22 | | E-14 | Komponisten-Farbkodierung | |
25 | 23 | | E-15 | 7 Lebensphasen LP1–LP7 | |
26 | 24 | | E-16 | Scroll-Morphing im Kosmos | |
27 | | -| E-17 | Farbe + Linienstil für Mobilitätstypen | |
| 25 | +| E-17 | Farbe + Linienstil fuer Mobilitaetstypen | |
28 | 26 | | E-18 | ~~Zwei-Bereiche~~ → Iteration 2: Tab-basiert (Archiv, Indizes, Matrix, Kosmos) | |
29 | 27 | | E-19 | ~~Tektonik-Sidebar~~ → Iteration 2: Bestand/Chronik-Toggle mit Inline-Expansion | |
30 | 28 | | E-20 | ~~Modal~~ → Iteration 2: Inline-Expansion (Archiv) + Slide-in Sidebar (Indizes/Matrix/Kosmos) | |
31 | 29 | | E-21 | Collapsible Provenienz-Darstellung | |
32 | | -| E-22 | Gruppierte Verknüpfungen mit Icons | |
33 | | -| E-23 | Horizontale Toolbar für Visualisierungen | |
| 30 | +| E-22 | Gruppierte Verknuepfungen mit Icons | |
| 31 | +| E-23 | Horizontale Toolbar fuer Visualisierungen | |
34 | 32 | | E-24 | Export CSV > JSON-LD > GEXF > GeoJSON | |
35 | | -| E-25 | Keine präemptive Performance-Optimierung | |
36 | | -| E-26 | Seiten statt Modals — About/Projekt/Hilfe als bookmarkbare Hash-Routen statt Info-Modal | |
37 | | -| E-27 | 4 funktionale Farbkategorien: KUG-Blau (Interaktion), Signal-Grün (Verknüpfung), Neutral-Grau (Abwesenheit), Warmer Hintergrund (Struktur) | |
38 | | -| E-28 | Handreichung als UX-Quelle — Erfassungskonventionen (Schichten-Modell, Datumsformat, Abwesenheits-Semantik) direkt in Frontend-Texte | |
| 33 | +| E-25 | Keine praeemptive Performance-Optimierung | |
| 34 | +| E-26 | Seiten statt Modals — About/Projekt/Hilfe als eigenstaendige HTML-Seiten | |
| 35 | +| E-27 | 4 funktionale Farbkategorien: KUG-Blau (Interaktion), Signal-Gruen (Verknuepfung), Neutral-Grau (Abwesenheit), Warmer Hintergrund (Struktur) | |
| 36 | +| E-28 | Handreichung als UX-Quelle — Erfassungskonventionen direkt in Frontend-Texte | |
39 | 37 | | E-29 | Dynamischer Counter: "X von Y Objekten" bei aktivem Filter, sonst "Y Objekte · Z Konvolute" | |
40 | 38 | | E-30 | Stats-Bar entfernt — keine duplizierte Statistik im Header, Info nur kontextuell im Archiv-Tab | |
41 | 39 |
|
42 | | ---- |
43 | | - |
44 | 40 | ## Offene Entscheidungen |
45 | 41 |
|
46 | | -| Thema | Priorität | Optionen | |
| 42 | +| Thema | Prioritaet | Status | |
47 | 43 | |---|---|---| |
48 | | -| ~~Karrierefluss vs. Karte~~ | erledigt | Beide ersetzt: Sankey → Indizes, Karte weiterhin verschoben | |
49 | | -| Matrix Zeitfilter UI | hoch | Slider, Dropdown, oder Timeline-Brush | |
50 | | -| ~~Deep Linking~~ | erledigt | Hash-basiert implementiert (router.js) | |
51 | | -| ~~Navigation-Architektur~~ | erledigt | Seiten statt Modals (E-26) | |
| 44 | +| Matrix Zeitfilter UI | hoch | Slider, Dropdown, oder Timeline-Brush — noch nicht entschieden | |
52 | 45 | | Wikidata-Reconciliation | hoch | reconcile.py implementieren, Kosmos-View anpassen | |
53 | 46 |
|
54 | | ---- |
55 | | - |
56 | 47 | ## Technische Schulden (Iteration 1) — Status |
57 | 48 |
|
58 | 49 | - ~~`app.js` monolithisch (1.101 Zeilen)~~ → Behoben: 15+ Module (main.js, router.js, loader.js, etc.) |
|
62 | 53 | - Kein CSV/JSON-LD-Export aus Archiv-View (offen) |
63 | 54 | - ~~Inline-CSS in partitur.js~~ → Behoben: CSS-Klassen in archiv.css |
64 | 55 |
|
65 | | ---- |
66 | | - |
67 | 56 | ## Verschobene Features |
68 | 57 |
|
69 | | -| Priorität | Feature | Status | |
| 58 | +| Prioritaet | Feature | Status | |
70 | 59 | |---|---|---| |
71 | 60 | | Hoch | Wikidata-Reconciliation (reconcile.py) | offen | |
72 | 61 | | Hoch | Export CSV/JSON-LD/GEXF | offen | |
73 | | -| Hoch | ~~Matrix Kategoriefilter~~ | erledigt (Session 9, M3) | |
74 | 62 | | Mittel | Matrix Zeitfilter/Zoom | offen | |
75 | | -| Mittel | ~~Deep Linking~~ | erledigt (Hash-Router) | |
76 | 63 | | Mittel | Cross-Visualization Linking | offen | |
77 | 64 | | Mittel | Merkliste + CSV-Export | offen | |
78 | 65 | | Niedrig | Leaflet Karte | offen | |
79 | | -| Niedrig | ~~Kosmos Scroll-Morphing~~ | gestrichen (E-16) | |
80 | | -| Niedrig | ~~Kosmos Zoom/Pan~~ | erledigt (Session 9, M10) | |
81 | | - |
82 | | ---- |
83 | 66 |
|
84 | 67 | ## Prozesswissen (Iteration 1) |
85 | 68 |
|
|
88 | 71 | - Promptotyping-Dokumente als Source of Truth (12 Knowledge-Docs → Code-Generierung) |
89 | 72 | - Synthetische Daten entkoppeln Frontend- von Datenarbeit |
90 | 73 | - Design-System als CSS Custom Properties vorab definiert |
91 | | -- Offline-first überlebt Funding-Gaps |
92 | | -- Iterative Vis-Entwicklung (Partitur zuerst → Patterns für Matrix/Kosmos/Karrierefluss) |
| 74 | +- Offline-first ueberlebt Funding-Gaps |
| 75 | +- Iterative Vis-Entwicklung (Partitur zuerst → Patterns fuer Matrix/Kosmos/Karrierefluss) |
93 | 76 |
|
94 | 77 | ### Was in Iteration 2 anders |
95 | 78 |
|
96 | 79 | - Data-first statt UI-first |
97 | 80 | - Modularisierung von Anfang an |
98 | | -- User Testing früher |
| 81 | +- User Testing frueher |
99 | 82 | - Evaluation-driven Priorisierung (FF3=60% braucht Aufmerksamkeit) |
100 | 83 | - Controlled Vocabulary Enforcement bei Datenerfassung |
101 | 84 |
|
102 | | -### Positive Überraschungen aus der Datenanalyse |
| 85 | +### Positive Ueberraschungen aus der Datenanalyse |
103 | 86 |
|
104 | | -- Erschließungstiefe bei 3 Konvoluten (1.246 effektive Verknüpfungen) übertrifft Erwartungen |
105 | | -- Gender-inklusives Rollen-Vokabular (58 Werte mit `:in`-Form) zeigt sorgfältige Erfassung |
| 87 | +- Erschliessungstiefe bei 3 Konvoluten (1.246 effektive Verknuepfungen) uebertrifft Erwartungen |
| 88 | +- Gender-inklusives Rollen-Vokabular (58 Werte mit `:in`-Form) zeigt sorgfaeltige Erfassung |
106 | 89 | - 257/296 Personen mit Kategorie — Begegnungs-Matrix bekommt direkt Daten |
107 | | -- 134 Werk-Verknüpfungen ermöglichen substantiellen Rollen-Kosmos |
| 90 | +- 134 Werk-Verknuepfungen ermoeglichen substantiellen Rollen-Kosmos |
108 | 91 |
|
109 | 92 | ### Erkenntnisse aus Daten-Exploration (Feb 2026) |
110 | 93 |
|
111 | 94 | - Konvolut-Hierarchie entdeckt: Objekt-ID = archivsignatur + folio (2 Spalten) |
112 | | -- Verknüpfung über String-Matching (`name`-Spalte), nicht über IDs |
| 95 | +- Verknuepfung ueber String-Matching (`name`-Spalte), nicht ueber IDs |
113 | 96 | - Header-Shifts in 3 von 4 Indizes — Pipeline muss Spaltennamen mappen |
114 | 97 | - Dokumenttyp-Vokabular gewachsen (18 → 25 Werte) |
115 | | -- Case-Inkonsistenzen durchgängig — Pipeline normalisiert mit `.lower().strip()` |
116 | | -- Wikidata wird via Reconciliation-Script befüllt, nicht manuell |
117 | | -- 62/282 Objekte mit Verknüpfungen (22%) — Verknüpfungsarbeit steht am Anfang |
118 | | - |
119 | | ---- |
120 | | - |
121 | | -Siehe auch: [→ Architektur](04-architektur.md) · [→ Visualisierungen](06-visualisierungen.md) · [→ Projekt](01-projekt.md) |
| 98 | +- Case-Inkonsistenzen durchgaengig — Pipeline normalisiert mit `.lower().strip()` |
| 99 | +- Wikidata wird via Reconciliation-Script befuellt, nicht manuell |
| 100 | +- 62/282 Objekte mit Verknuepfungen (22%) — Verknuepfungsarbeit steht am Anfang |
0 commit comments