# Forslag: Knowledge Graph Health Monitor
**Innsats:** Lav | **Wow-faktor:** Middels

## Idé
En admin-side i SvelteKit som viser "Graf-helse": tetthet, isolerte noder, svake relasjoner, ubalanserte temaer. AI-en foreslår ukentlig nye edges:

*"Du har 47 faktoider om Støre og 32 om Ap — skal vi koble dem med WORKS_FOR?"*
*"Dette segmentet nevner vindkraft 9 ganger, men ingen #Tema-knute finnes."*

## Hvorfor
- Kunnskapsgrafen vokser organisk, men kan bli rotete uten vedlikehold
- Gir redaksjonen en "huskeliste" av ting de bør koble manuelt eller godkjenne
- Synliggjør verdien av grafen — man ser den bli smartere over tid
- Forhindrer "orphan nodes" som aldri dukker opp i oppslag

## Bygger på
- Kunnskapsgrafen (nodes, graph_edges — rekursive CTEs for å finne isolerte subgrafer)
- pgvector (allerede planlagt i Kunnskaps-Bridge — brukes for å finne semantisk like noder som mangler eksplisitt kobling)
- `generate_embeddings`-jobb (eksisterende jobbtype)
- Jobbkø (`graph_suggest_edges` — ny jobbtype, scheduled ukentlig)
- AI Gateway (`sidelinja/resonering` for naturlig språk-forslag)

## Helsemetrikker
| Metrikk | SQL-skisse | Handlingsforslag |
|---|---|---|
| Isolerte noder | `nodes LEFT JOIN graph_edges ... WHERE edge IS NULL` | "Koble til tema eller slett" |
| Temaer uten faktoider | `themes LEFT JOIN factoids ... HAVING count = 0` | "Tomt tema — berik eller arkiver" |
| Aktører uten relasjoner | Samme mønster | "Ny aktør — trenger kontekst" |
| Semantisk like noder | pgvector cosine distance < 0.15 | "Mulig duplikat — slå sammen?" |
| Manglende edges | AI-analyse av node-par med høy co-occurrence i segmenter | "Koble Støre → Ap?" |

## Dataklassifisering
- Edge-forslag: Flyktig (TTL 30 dager) — godkjente forslag blir ekte `graph_edges`
- Helsemetrikker: Avledet (beregnes on-demand fra grafen)

## Åpne spørsmål
- Skal forslagene dukke opp som "innboks-kort" i Redaksjonen, eller kun på en dedikert admin-side?
- Terskel for "semantisk lik": hvor lav cosine distance = mulig duplikat?
- Bør monitoren kjøre per workspace eller globalt (cross-workspace via Bridge)?
