Add "Domeinmodel"

2026-03-31 15:48:37 +00:00
parent 4c3414330d
commit d2ad10f136

226
Domeinmodel.md Normal file

@@ -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?)