Grunnleggende arkitekturbeslutninger tatt og dokumentert: - Alt er noder (brukere, team, innhold, mediefiler, samlings-noder) - Edges definerer hva en node er (freeform typer, metadata i JSONB) - Materialisert tilgangsmatrise (node_access) erstatter workspace-RLS - Visibility (hidden/discoverable/readable/open) på noder - Aliaser via usynlige system-edges - Maskinrommet eier all skriving (SpacetimeDB først, PG asynk) - SpacetimeDB holder hele grafen, PG er persistent backup - Node- og edge-skjema spesifisert (docs/primitiver/) Fjernet workspace-konseptet fra hele dokumentasjonen (~40 filer). Fem retninger besluttet, én åpen (rom, ikke forum). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
Feature: Visuell Kunnskapsgraf (Graph View)
Filsti: docs/features/visuell_graf.md
1. Konsept
En interaktiv graf-visning i SvelteKit som gjør Kunnskapsgrafen visuelt navigerbar og redigerbar. Brukes i Kunnskapsgrafen-konseptet (se docs/concepts/kunnskapsgrafen.md).
2. Funksjonalitet
- Visualisering: Viser noder (Temaer, Aktører, Faktoider, Segmenter) og relasjoner som et interaktivt nettverkskart. Bygges med D3.js eller Vis.js i Svelte-frontenden.
- Visuell redigering: Redaksjonen kan dra streker mellom noder for å opprette nye relasjoner i
graph_edges-tabellen. Velg relasjonstype (PART_OF,CONTRADICTS,MENTIONS, etc.) via en kontekstmeny. - Hierarkier uten mapper:
PART_OF-relasjoner muliggjør fleksible prosjekthierarkier uten stive mappestrukturer. Et Tema kan værePART_OFet annet Tema, en Aktør kan værePART_OFen organisasjon, osv. - Filtrering: Brukeren kan filtrere grafen etter nodetype, relasjonstype, tidsperiode eller fritekst.
3. Datakilde
- SvelteKit server-side: Henter grafdata via Recursive CTE-spørringer mot PostgreSQL og returnerer
{ "nodes": [...], "edges": [...] }til klienten. - SpacetimeDB: Brukes ikke for graf-visualisering — dette er historiske data som lever i PostgreSQL.
4. Instruks for Claude Code
- Design JSON-responsen slik at den lett kan mates inn i graf-visualiseringsbiblioteker (D3.js, Vis.js).
- Begrens traversering til 2-3 ledd ut fra startnode for å unngå eksplosjoner i store grafer.
- Tilgangsstyrt: noder filtreres via
node_access-matrisen.