From d2ad10f136b4ed5c46942d4b3fcfefc77f471fd0 Mon Sep 17 00:00:00 2001 From: vps1_gitea_admin Date: Tue, 31 Mar 2026 15:48:37 +0000 Subject: [PATCH] Add "Domeinmodel" --- Domeinmodel.md | 226 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 Domeinmodel.md diff --git a/Domeinmodel.md b/Domeinmodel.md new file mode 100644 index 0000000..1fb0a57 --- /dev/null +++ b/Domeinmodel.md @@ -0,0 +1,226 @@ +# Domeinmodel + +## 1. Conceptueel domeinmodel + +### Kerndomeinen + +Het informatiemodel is opgebouwd rond de volgende kerndomeinen: + +``` +┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ STRATEGIE │────▶│ PROJECT │────▶│ OVERDRACHT │ +│ & ROADMAP │ │ & FASE │ │ & TRANSITIE │ +└─────────────┘ └──────┬──────┘ └─────────────┘ + │ + ┌────────────┼────────────┐ + ▼ ▼ ▼ + ┌──────────┐ ┌──────────┐ ┌──────────┐ + │COMMITMENT│ │ BESLUIT │ │ DOCUMENT │ + │ & ACTIE │ │& BUDGET │ │ & KENNIS │ + └──────────┘ └──────────┘ └──────────┘ + │ │ │ + └────────────┼────────────┘ + ▼ + ┌──────────┐ + │ ACTOR │ + │ & ROL │ + └──────────┘ +``` + +--- + +## 2. Entiteiten en relaties + +### 2.1 Strategie & Roadmap + +| Entiteit | Beschrijving | Kernattributen | +|----------|-------------|----------------| +| **Thema** | Strategisch innovatiethema | naam, beschrijving, prioriteit, periode | +| **Speerpunt** | Concreet speerpunt binnen een thema | naam, beschrijving, eigenaar, status | +| **Roadmap-item** | Visueel element op de tijdlijn | titel, start, eind, type, status, thema | + +**Relaties:** +- Thema `1:N` Speerpunt +- Thema `1:N` Roadmap-item +- Speerpunt `1:N` Project + +### 2.2 Project & Fase + +| Entiteit | Beschrijving | Kernattributen | +|----------|-------------|----------------| +| **Project** | Innovatietraject | naam, beschrijving, eigenaar, status, prioriteit, startdatum, streef-einddatum | +| **Fase** | Stap in de innovatielevenscyclus | type, status, startdatum, einddatum, opmerkingen | +| **Risico** | Geïdentificeerd risico | beschrijving, impact, kans, mitigatie, eigenaar | +| **Afhankelijkheid** | Relatie tussen projecten | type, beschrijving, status | + +**Relaties:** +- Project `1:N` Fase (een project doorloopt meerdere fasen) +- Project `N:M` Project (afhankelijkheden) +- Project `1:N` Risico +- Project `N:1` Speerpunt + +**Fasetype-enum:** +``` +signaal | verkenning | concept | experiment | pilot | +besluitvorming | overdracht_bouwen | overdracht_beheer | evaluatie +``` + +### 2.3 Commitment & Actie + +| Entiteit | Beschrijving | Kernattributen | +|----------|-------------|----------------| +| **Commitment** | Toezegging of afspraak | beschrijving, eigenaar, deadline, status, bron | +| **Actie** | Concrete uitvoerbare stap | beschrijving, eigenaar, deadline, status, prioriteit | + +**Relaties:** +- Project `1:N` Commitment +- Commitment `1:N` Actie +- Besluit `1:N` Commitment +- Actor `1:N` Commitment (als eigenaar) +- Actor `1:N` Actie (als eigenaar) + +### 2.4 Besluit & Budget + +| Entiteit | Beschrijving | Kernattributen | +|----------|-------------|----------------| +| **Besluit** | Bestuurlijk of managementbesluit | titel, beschrijving, datum, type, status, onderbouwing | +| **Budget** | Financiële toekenning | bedrag, type, periode, status | +| **Besteding** | Daadwerkelijke uitgave | bedrag, beschrijving, datum, categorie | + +**Relaties:** +- Project `1:N` Besluit +- Project `1:N` Budget +- Budget `1:N` Besteding +- Besluit `1:N` Commitment + +### 2.5 Document & Kennis + +| Entiteit | Beschrijving | Kernattributen | +|----------|-------------|----------------| +| **Document** | Projectdocument of bijlage | titel, type, inhoud, versie, auteur, datum | +| **Kennisartikel** | Kennisbankitem | titel, inhoud, tags, auteur, datum | +| **Lesson Learned** | Reflectie op een traject | titel, inhoud, project, fase, tags | +| **Tag** | Classificatielabel | naam, categorie | + +**Relaties:** +- Project `1:N` Document +- Project `1:N` Lesson Learned +- Fase `1:N` Document +- Document `N:M` Tag +- Kennisartikel `N:M` Tag + +### 2.6 Overdracht & Transitie + +| Entiteit | Beschrijving | Kernattributen | +|----------|-------------|----------------| +| **Overdrachtsplan** | Plan voor transitie | type, status, eigenaar_rnd, eigenaar_ontvanger | +| **Criterium** | Voorwaarde voor overdracht | beschrijving, status, verificatie | +| **Acceptatie** | Formele acceptatie | datum, door, opmerkingen, status | + +**Relaties:** +- Project `1:N` Overdrachtsplan +- Overdrachtsplan `1:N` Criterium +- Overdrachtsplan `1:1` Acceptatie + +### 2.7 Actor & Rol + +| Entiteit | Beschrijving | Kernattributen | +|----------|-------------|----------------| +| **Gebruiker** | Systeemgebruiker | naam, email, functie, afdeling | +| **Rol** | Systeemrol | naam, beschrijving, permissies | +| **Projectrol** | Rol binnen een project | type (eigenaar, lid, reviewer, stakeholder) | + +**Relaties:** +- Gebruiker `N:M` Rol (systeemrollen) +- Gebruiker `N:M` Project (via Projectrol) + +--- + +## 3. Lifecycle / Statusmodel van een project + +``` + ┌──────────┐ + │ SIGNAAL │ + └────┬─────┘ + ▼ + ┌──────────┐ + │VERKENNING│ + └────┬─────┘ + ▼ + ┌──────────┐ + ┌───▶│ CONCEPT │◀── heropenen + │ └────┬─────┘ + │ ▼ + │ ┌──────────┐ + parkeren──┤ │EXPERIMENT│ + │ └────┬─────┘ + │ ▼ + │ ┌──────────┐ + └───▶│ PILOT │ + └────┬─────┘ + ▼ + ┌──────────┐ + │ BESLUIT │──── afwijzen ──▶ GESTOPT + └────┬─────┘ + ▼ + ┌──────────┐ + │OVERDRACHT│ + │ BOUWEN │ + └────┬─────┘ + ▼ + ┌──────────┐ + │OVERDRACHT│ + │ BEHEER │ + └────┬─────┘ + ▼ + ┌──────────┐ + │EVALUATIE │ + └────┬─────┘ + ▼ + ┌──────────┐ + │AFGEROND │ + └──────────┘ +``` + +**Aanvullende statussen:** +- **Geparkeerd** — tijdelijk stilgelegd, kan worden heropend +- **Gestopt** — definitief beëindigd (met reden en lessons learned) + +--- + +## 4. Voorstel voor kennislaag + +### Relationeel vs. vector vs. graph + +| Aspect | Relationeel (PostgreSQL) | Vector (pgvector) | Graph | +|--------|------------------------|-------------------|-------| +| Gestructureerde data | Primair | Niet geschikt | Mogelijk | +| Zoeken in documentinhoud | Beperkt (full-text) | Semantisch zoeken | Niet primair | +| Relaties tussen entiteiten | Goed (FK's, joins) | Niet geschikt | Excellent | +| Complexiteit | Laag | Midden | Hoog | +| Onderhoud | Laag | Midden | Hoog | + +### Advies + +**MVP:** PostgreSQL met pgvector-extensie +- Relationeel model voor alle gestructureerde data +- pgvector voor embeddings van documenten en kennisartikelen +- Full-text search als fallback + +**Later evalueren:** Knowledge graph +- Pas overwegen wanneer relatie-queries aantoonbaar complex worden +- Bijvoorbeeld: "welke projecten zijn indirect afhankelijk van besluit X?" +- Neo4j of Apache AGE (PostgreSQL-extensie) als dan relevant + +### Aanname +Een relationeel model met pgvector dekt de behoeften van de MVP en waarschijnlijk ook de fasen daarna. Een knowledge graph voegt pas meerwaarde toe bij complexe traversal-queries over veel entiteiten. Dit is een aanname die we bewust monitoren. + +--- + +## 5. Open vragen bij het domeinmodel + +1. Moet er een apart entiteitstype zijn voor "aanbestedingen" of valt dit onder projecten? +2. Hoe gedetailleerd moet het financiële model zijn? (Kostenplaatsen, facturen, of alleen budgetten?) +3. Moeten er templates zijn voor veelvoorkomende projecttypen? +4. Is er een bestaande taxonomie of tagstructuur die overgenomen moet worden? +5. Hoe wordt omgegaan met vertrouwelijkheid per project? (Projectniveau, documentniveau, of beide?)