← alle onderwerpen

Over dit platform

Wie zegt wat.

Deze site ontleedt Nederlandse politieke debatten op argumenten: wie zegt wat, en waarom. Voor stikstof, abortus, asiel, energietransitie en oekraine zet ze de standpunten van Kamerleden en partijen naast elkaar, met het letterlijke citaat erbij. Zo zie je in één oogopslag welke argumenten er, van welke kant, gebruikt worden. Dat maakt het makkelijk om standpunten te vergelijken tussen partijen, personen en door de tijd heen.

Dit platform dient ook als onderwijsmateriaal: het maakt zichtbaar hoe politieke argumentatie in de praktijk werkt, met echte citaten en hun bron, zodat het bruikbaar is bij het analyseren van politiek debat.

Uitgangspunten

Wat is een argument?

Een argument heeft altijd twee delen, en beide moeten letterlijk in het citaat staan: een standpunt (pro/contra/onduidelijk) én een reden of onderbouwing die dat standpunt ondersteunt. Geen onderbouwing betekent geen argument, ook niet als de uitspraak stellig of politiek geladen klinkt.

Eén argument, twee delen

Standpunt

Wat vindt de spreker van de stelling?

ProContraOnduidelijk

Onderbouwing

Wáárom vindt de spreker dat? Een reden, gevolg, voorbeeld of vergelijking.

FeitelijkMoreelEconomischJuridischOverig

Dit zijn geen argumenten, met echte citaten uit de database — het aanwezige deel is onderstreept, het ontbrekende deel is de gestippelde streep:

Dit wél, want standpunt én reden staan er allebei, letterlijk in het citaat:

Ook zuiver procedurele tekst (orde van de vergadering, spreektijd-afspraken, "ik geef het woord aan...") levert nooit een argument op. Een uitspraak over de legitimiteit of spelregels van het debat zelf telt wél mee als argument, mits onderbouwd, zie de typologie "Overig" hieronder.

Wie verder wil lezen: Stanford Encyclopedia of Philosophy over argument en argumentatie voor een algemeen overzicht; Van Eemeren & Grootendorsts pragma-dialectische theorie voor het standpunt-plus-onderbouwing-model zelf; Douglas Waltons argumentatieschema's voor het type redeneerpatroon achter de "Walton"-tags in de taxonomie; en Haddadan, Cabrio & Villata (2019) voor de externe dataset waartegen deze definitie kwantitatief gevalideerd is (zie docs/eval-elecdebate.md).

Hoe de argumenten hier terechtkomen

Bronnen (op dit moment: Tweede Kamer-debatverslagen) worden per sprekerbeurt gesegmenteerd en door een LLM geanalyseerd, dat per beurt 0 of meer argumenten extraheert: een standpunt, een citaat, en eventueel genoemde claims met hun bron. Dit is een geautomatiseerd, foutgevoelig proces, extractiekwaliteit verbetert nog met de tijd, en je kunt op elke kaart feedback geven als iets niet klopt.

  1. 1 Crawlen

    Debatverslagen worden opgehaald bij de open data van de Tweede Kamer: alle plenaire debatten en commissiedebatten, en aanvullend per onderwerp op trefwoord. Geen LLM, dus dit mag altijd draaien.

  2. 2 Segmenteren

    Eén verslag (een heel debat) wordt opgeknipt per sprekerbeurt.

  3. 3 Beurten aan onderwerpen koppelen

    Een beurt hoort bij een onderwerp via de titel van het debat, of doordat de beurt zelf inhoudelijk over het onderwerp gaat. Een beurt kan bij meerdere onderwerpen horen.Hoe dat werkt.

  4. 4 Argumenten-extractie

    Een lokaal LLM haalt per sprekerbeurt 0 of meer argumenten eruit: standpunt, typologie, citaat, eventuele claims.

  5. 5 Tags toekennen

    Tags uit de taxonomie hieronder worden toegekend: drie labelgroepen deterministisch, de rest via hetzelfde lokale LLM.

  6. 6 Argumentenboom & redactie

    Voor elk onderwerp selecteert een LLM een subset van elkaar scherp weersprekende argumenten en legt daar relaties tussen (welk argument onderbouwt of weerlegt welk ander). Elke relatie wordt vervolgens los gecontroleerd: gaat dit argument aantoonbaar in op het andere, of staan ze er alleen toevallig naast? Geen feitelijke-juistheidscheck — alleen of de koppeling zelf standhoudt.

  7. 7 Steekproefcontrole

    Vóór elke publicatieronde herbeoordelen een mens en Gemini een representatieve steekproef; de resultaten staan in de validatie-rapportage.

  8. 8 Export & publicatie

    De resultaten worden geëxporteerd en de site wordt daarop statisch gebouwd, zonder server of eigen database.

Hoe een beurt bij een onderwerp komt

Een sprekersbeurt kan op twee manieren bij een onderwerp horen. Via het debat: staat het onderwerp in de titel van het debat, dan horen de beurten daaruit erbij. En via de beurt zelf: ook een beurt in een debat dat over iets anders gaat, zoals een Vragenuur of de Algemene Politieke Beschouwingen, kan inhoudelijk over het onderwerp gaan.

Dat laatste bepalen we met de embeddings van de beurten (zie de plenaire kaart). Per onderwerp berekenen we een profiel uit de beurten die al over dat onderwerp gingen, en een nieuwe beurt wordt gekoppeld als ze dicht genoeg bij dat profiel ligt. Hoe dicht dat moet zijn verschilt per onderwerp en per soort debat. We hebben dat bepaald met steekproeven waarin een lokaal LLM per beurt beoordeelde of ze over het onderwerp gaat. De grens ligt zo dat volgens die beoordeling ongeveer 80% van de gekoppelde beurten echt over het onderwerp gaat.

Een beurt kan bij meerdere onderwerpen horen. Wat gekoppeld is doorloopt daarna dezelfde extractie en tagging als elke andere beurt; een beurt die toch niet over het onderwerp blijkt te gaan, levert daar geen argument op.

De koppeling op inhoud geldt voor debatten vanaf Prinsjesdag 2025 (16 september 2025). Oudere debatten zijn alleen via de titel gekoppeld, dus daar kunnen beurten ontbreken die wel over het onderwerp gaan. De grenzen zijn bepaald op steekproeven van enkele tientallen beurten per onderwerp en op het oordeel van een LLM, dus ongeveer een op de vijf gekoppelde beurten kan er toch naast zitten.

Standpunt & typologie

Elk argument krijgt tijdens de argumenten-extractie een standpunt (de kleur van de kaart) en, om meteen aan te geven wat voor soort onderbouwing erbij hoort, een typologie (het label bovenaan de kaart) mee. Standpunt en typologie zijn onafhankelijk van elkaar: een moreel argument kan net zo goed vóór als tegen zijn. Wat "pro" en "contra" concreet betekenen is per onderwerp gedefinieerd en staat toegelicht bovenaan elke topicpagina.

Standpunt

Pro6853x
De 'pro'-kant van de pro/contra-as die per onderwerp apart is gedefinieerd, zie de toelichting bovenaan de topicpagina.
Contra8689x
De 'contra'-kant van diezelfde onderwerpsspecifieke as.
Onduidelijk399x
Richting t.o.v. die as is niet eenduidig, of het argument gaat over het debat zelf.

Onderbouwing (typologie)

Feitelijk10391x
Feiten, cijfers, of beleidsinhoudelijke/bestuurlijke constateringen, zoals een norm, een fractiestandpunt, of wie iets wel/niet steunt.
Moreel1114x
Beroept zich op ethiek of waarden.
Economisch3060x
Gaat over kosten en baten.
Juridisch1180x
Verwijst naar een specifieke wet, regelgeving, of juridische toetsing/procedure.
Overig196x
Past niet in de andere categorieën, bijvoorbeeld metadiscours over het debat zelf.

Tags beschrijven de vorm van een argument

Naast stance/typologie krijgen argumenten waar mogelijk ook tags uit een argumentatietheoretische taxonomie (o.a. redeneerschema's, en, in de labelgroep "Debatzetten"/"Metadiscussie", retorische patronen zoals herformuleren of persoon aanspreken). Een tag zegt iets over de vorm van een fragment: "dit heeft de vorm van een ad-hominem-constructie." Deze taxonomie-laag is minder uitgebreid gevalideerd dan stance/typologie en kan foutgevoeliger zijn bij subtiele gevallen, zie de validatie-rapportage hieronder voor de laatste steekproefresultaten.

De taxonomie is verdeeld in vier perspectieven, elk met een eigen kleur die overal op de site hetzelfde blijft (correspondentiekaart, tag-grafieken, hieronder). Dit overzicht toont elke tag die op dit moment ergens is toegekend, met beschrijving en het aantal toekenningen over alle onderwerpen heen.

Filosofisch & Argumentatietheoretisch

Redeneerschema
Walton-Causaal3520x
Argumentatie gebaseerd op een directe oorzaak-gevolgrelatie.
Walton-Consequentie8366x
Het verdedigen of aanvallen van een standpunt op basis van de verwachte praktische (voordelige of nadelige) gevolgen.
Walton-Expertise1464x
Het argument leunt op de autoriteit, bevindingen of de verklaring van een specialist of expert.
Walton-Analogie980x
Er wordt een vergelijking getrokken met een historische gebeurtenis, een andere specifieke casus of een precedent.
Walton-Regel2834x
Het argument beroept zich op een reeds gevestigde wet, formele regel of breed geaccepteerde maatschappelijke norm.
Debatzetten
Debatzet-Persoon-Aanspreken406x
Persoonlijke aanval op de tegenstander (op de man spelen) in plaats van een inhoudelijke weerlegging.
Debatzet-Herformuleren520x
Het vertekenen of overdrijven van het standpunt van de opponent om dit makkelijker te kunnen aanvallen.
Debatzet-Keuze-Aanscherpen1543x
Zwart-wit denken; de situatie voorstellen alsof er slechts twee uiterste, elkaar uitsluitende opties bestaan.
Debatzet-Bewijs-Vragen279x
Doen alsof een claim geen bewijs behoeft of de tegenstander dwingen het tegendeel te bewijzen.
Debatzet-Gevoelens-Verwoorden1300x
Emotioneel argumenteren gericht op het oproepen van angst, woede of medelijden bij de toehoorder.
Metadiscussie
Meta-Bevoegdheid933x
Uitingen over het formele mandaat, de wettelijke of constitutionele autoriteit, of de institutionele taakverdeling om over de kwestie te beslissen.
Meta-Agenda-Tijdigheid1312x
Uitingen over de chronologische geschiktheid, de prioriteitstelling of de urgentie van de discussie op dit specifieke moment.
Meta-Reikwijdte851x
Uitingen over de thematische grenzen van het debat, de toelaatbaarheid van specifieke beweringen, of de legitimiteit van bepaalde linguïstische framings.
Meta-Vorm-Setting784x
Uitingen over de formele procedure, de interactieve spelregels, het vergaderformat of de fysieke en institutionele context van de uitwisseling.
Meta-Deelnemers43x
Uitingen over de spreektijdregelingen, de aanwezigheidsplicht van specifieke actoren, of de legitieme toegang van sprekers tot de lopende interactie.
Stijlmiddelen
Stijl-Slogan520x
Beknopte, pakkende frase.
Stijl-Herhaling3857x
Herhaling van hetzelfde woord of dezelfde woordgroep binnen het fragment, ter nadruk.
Stijl-Aangekondigde-Opsomming442x
Vooraf het aantal elementen aankondigen (twee, drie, vijf, ...), gevolgd door een opsomming van precies dat aantal.
Stijl-Antithese1729x
Het naast elkaar plaatsen van twee tegengestelde begrippen of ideeën.
Stijl-Retorische-Vraag3568x
Een vraag waarvan het antwoord al besloten ligt in de formulering zelf.

Communicatie & Media

Framing-Focus
Frame-Episodisch1504x
Inzoomen op een specifiek, individueel incident, persoonlijk verhaal of een concrete casus.
Frame-Thematisch14526x
Het benaderen van de kwestie vanuit een breder maatschappelijk, statistisch of historisch kader.
Generieke Nieuwsframes
Frame-Conflict1707x
De nadruk ligt op de felle strijd of meningsverschillen tussen personen, partijen of groepen.
Frame-Economisch6242x
De focus ligt op de financiële kosten, baten of budgettaire gevolgen van een kwestie.
Frame-Menselijk-Belang1435x
De focus ligt op de menselijke kant, de emoties of het individuele leed (Human Interest).
Frame-Moraliteit1601x
Inbranding vanuit ethische plichten, spirituele of religieuze principes.
Frame-Verantwoordelijkheid8705x
De nadruk ligt op de schuldvraag of de plicht tot het oplossen van het probleem.

Politicologisch & Sociaal-Psychologisch

Cultureel-Ideologische Breuklijn
Ideologie-GAL5581x
Progressief, ecologisch, kosmopolitisch (Green, Alternative, Libertarian).
Ideologie-TAN4175x
Conservatief, traditioneel, nationalistisch (Traditional, Authoritarian, Nationalist).
Ideologie-Links-Economisch1547x
Gericht op herverdeling van welvaart, sterke collectieve voorzieningen en overheidsingrijpen.
Ideologie-Rechts-Economisch4081x
Gericht op de vrije markt, deregulering en individuele verantwoordelijkheid.
Morele Fundamenten
Moraliteit-Zorg5188x
Gericht op empathie, compassie en het voorkomen van leed en schade bij kwetsbaren.
Moraliteit-Eerlijkheid2483x
Gericht op gelijke kansen, gelijke rechten en onpartijdige behandeling (equality).
Moraliteit-Proportionaliteit713x
Gericht op rechtvaardigheid naar rato van inspanning; belonen naar werken en het straffen van profiteurs.
Moraliteit-Loyaliteit2450x
Gericht op groeps-solidariteit, vaderlandsliefde en trouw aan de eigen gemeenschap (in-group).
Moraliteit-Autoriteit4095x
Gericht op respect voor traditie, legitieme hiërarchie, wetten en maatschappelijke orde.
Moraliteit-Zuiverheid287x
Gericht op het vermijden van morele of fysieke besmetting; streven naar het schone, natuurlijke of verhevene.
Moraliteit-Vrijheid2765x
Gericht op individuele autonomie en weerstand tegen dwang of onderdrukking door dominante actoren.

Methodologisch & Contextueel

Type Bewijsvoering
Bewijs-Statistisch2608x
Onderbouwd met kwantitatieve gegevens, cijfers, percentages of grootschalig representatief onderzoek.
Bewijs-Anekdotisch2526x
Onderbouwd met één specifiek praktijkgeval, incident, exemplar of persoonlijk verhaal.
Bewijs-Causaal4059x
Onderbouwd met een heldere, mechanistische of logische verklaring van oorzaak en gevolg.
Bewijs-Expert2037x
Onderbouwd met de consensus, verklaring of het oordeel van een erkend specialist.

Hoe favoriete en minst favoriete tags worden bepaald

De personenlijst toont per spreker een favoriet (★) en een minst favoriet (☆) tag. Dit gaat alleen over de tags uit de argumentatietheoretische taxonomie hierboven (LLM-toegekend); afgeleide tags als Arena-Parlement of Actor-Politicus volgen mechanisch uit metadata en zeggen niets over iemands eigen argumentatiestijl, dus die tellen niet mee.

Voor elke tag vergelijken we het aandeel dat een spreker 'm zelf gebruikt (van hun eigen getagde argumenten) met het aandeel over alle sprekers heen. Een ratio boven 1 betekent: deze spreker gebruikt de tag vaker dan gemiddeld; onder 1 betekent minder vaak.

Bij weinig getagde argumenten is dit minder betrouwbaar; hover over een badge voor de exacte aantallen en de ratio.

Hoe tekststatistieken worden berekend

Elke persoonspagina toont een blokje tekststatistieken: puur tekstuele kenmerken van iemands sprekerbeurten (zinsbouw, woordvariatie, argument- en onderbouwingsdichtheid), los van wat er inhoudelijk gezegd wordt. Dit zijn beschrijvende tekstmetingen, geen oordeel over de kwaliteit van iemands bijdrage.

Elke maat toont ook de mediaan over alle sprekers met minstens 3 sprekerbeurten, als ijkpunt voor een "typische" spreker. Bij deze dichtheidsmaten ligt de verdeling scheef -- een enkele spreker met veel argumenten per 1000 tekens trekt een gemiddelde flink omhoog, de mediaan is dan representatiever dan een gemiddelde. De richtingaanduiding (bv. "hoger = complexer") is puur beschrijvend: een hogere of lagere waarde is geen betere of slechtere bijdrage, alleen een ander soort formulering.

Wat betekent de tik boven een balk in het tag-overzicht?

De taghistogram op elke persoons- en partijpagina toont per tag in hoeveel procent van de getagde argumenten van deze persoon of partij 'm gebruikt wordt (bv. "16%", oftewel 79 van de 490 getagde argumenten). Getagde argumenten, niet alle argumenten: bijna de helft van alle argumenten krijgt geen enkele LLM-tag (bv. te kort, of buiten de taxonomie), en die als nul meetellen zou elk percentage verdunnen. Percentage i.p.v. een kaal aantal, want anders is een balk niet vergelijkbaar tussen bv. een minister met honderden argumenten en een achterbanker met een handvol -- beiden kunnen ruwweg even vaak per argument een tag gebruiken, ook al ligt hun kale telling mijlenver uit elkaar.

De verticale tik bovenop een balk is de mediaan van datzelfde percentage: hoe vaak een typische spreker (op de persoonspagina) of typische partij (op de partijpagina) diezelfde tag gebruikt, ook uitgedrukt als percentage van hun eigen argumenten. Ligt de balk voorbij de tik, dan gebruikt deze persoon/partij die tag bovengemiddeld vaak; blijft de balk erbinnen, dan is het ondergemiddeld.

Op een persoonspagina staat er, als de spreker een partij heeft, ook een klein partijicoontje bij: diezelfde mediaan, maar dan alleen berekend over de fractiegenoten van deze spreker in plaats van de hele Kamer. Zo zie je niet alleen of iemand landelijk op- of ondergemiddeld scoort op een tag, maar ook of dat binnen de eigen fractie al opvalt.

Wat is een correspondentiekaart?

Elke topicpagina toont een correspondentiekaart: partijen (of personen) en tags samen in één plaatje. Punten die dicht bij elkaar staan, horen bij elkaar: twee partijen dicht bij elkaar gebruiken vergelijkbare soorten argumenten, twee tags dicht bij elkaar worden vaak samen toegekend. Een tag dicht bij een partij betekent dat die partij die tag relatief vaak gebruikt, niet per se vaker dan andere partijen in absolute aantallen, maar relatief tot haar eigen totaal.

De kaart is interactief: klik op een punt om erop te filteren, of wissel bovenaan de kaart tussen partijen en personen als rijen. Ze draait volledig in de browser (de techniek heet correspondentieanalyse, afgekort CA), zodat ze live meebeweegt met het filter bovenaan de pagina.

Hoe de kaart tot stand komt

We beginnen met een voorbeeld: een echte uitsnede uit de huidige data (drie partijen, drie tags, de volledige kaart gebruikt alle partijen/personen en alle toegekende tags tegelijk). Deze drie tags:

Ideologie-GALProgressief, ecologisch, kosmopolitisch (Green, Alternative, Libertarian).
Ideologie-TANConservatief, traditioneel, nationalistisch (Traditional, Authoritarian, Nationalist).
Moraliteit-AutoriteitGericht op respect voor traditie, legitieme hiërarchie, wetten en maatschappelijke orde.
PartijIdeologie-GALIdeologie-TANMoraliteit-AutoriteitRijtotaal
BBB714687240
D66166042208
SGP18519105
Tagtotaal174231148553

D66 gebruikt Ideologie-GAL in 166 van de 208 toekenningen (80%) en Ideologie-TAN vrijwel nooit. BBB en SGP zijn het spiegelbeeld: samen goed voor 231 van de 231 Ideologie-TAN-toekenningen en nauwelijks Ideologie-GAL. Moraliteit-Autoriteit wijst niet zomaar naar dezelfde plek als Ideologie-TAN: BBB gebruikt die tag relatief vaker (87 van de 240, 36%) dan SGP (19 van de 105, 18%), een nuance die in een kale TAN/GAL-indeling verloren zou gaan.

Correspondentieanalyse (CA) zet dat soort verschil om in een positie op de kaart. Toegepast op precies deze tabel (zonder de weergave-compressie uit de laatste stap hieronder, bij drie rijen en drie tags is er nog niets te comprimeren):

dim. 2 (3.4%)dim. 1 (96.6%)Ideologie-GALIdeologie-TANMoraliteit-AutoriteitBBBD66SGP

Ruit = tag, cirkel = partij. Resultaat: D66 komt ver van BBB en SGP te liggen, dicht bij Ideologie-GAL; BBB en SGP clusteren aan de Ideologie-TAN-kant, met BBB net iets dichter bij Moraliteit-Autoriteit dan SGP.

Dat gebeurt in zes stappen:

  1. 1 Tellen

    Voor elke combinatie van rij (partij of persoon) en tag: hoeveel argumenten hebben die combinatie? Dat leverde de tabel hierboven op. Alleen LLM-toegekende tags tellen mee, de drie deterministisch afgeleide labelgroepen staan bij vrijwel elk argument en zouden geen signaal toevoegen. Rijen en tags met te weinig toekenningen vallen weg; onder drie rijen of drie tags stopt de analyse (te weinig voor een zinnige uitspraak).

  2. 2 Afwijking van "geen verband"

    Elke cel wordt vergeleken met wat je zou verwachten als rij en tag niets met elkaar te maken hadden (rijgrootte × tagpopulariteit). Wat overblijft is een tabel met residuen: hoe sterk, en in welke richting, wijkt elke combinatie af van dat neutrale nulpunt.

  3. 3 Assen zoeken (SVD)

    Een singuliere-waardenontbinding vindt de assen waarlangs die afwijkingen het sterkst uiteenlopen. De eerste assen vangen het meeste patroon: hun aandeel staat als percentage (verklaarde inertie) bij elke as op de kaart.

  4. 4 Coördinaten

    Rijen én tags krijgen allebei een positie op diezelfde assen. Daardoor is de afstand tussen twee rijen onderling, en tussen twee tags onderling, interpreteerbaar, maar de afstand van een rij tot een tag alleen richtinggewijs, niet als letterlijke maat.

  5. 5 Tekenconventie

    De ontbinding uit stap 3 legt geen teken vast: een as mag zonder betekenisverschil spiegelen. Zonder correctie zou de kaart dus willekeurig links-rechts of boven-onder omklappen zodra er nieuwe data bijkomt. Een vaste oriëntatieregel voorkomt dat.

  6. 6 Weergave-compressie

    Eén zeldzame tag kan een afstand tot de kern hebben die de rest van de puntenwolk tot een vlekje samenperst. Vlak vóór het tekenen worden dat soort uitschieters radiaal naar de kern getrokken (richting blijft gelijk). Dit is puur een weergavetruc, ná de echte analyse: afstanden op de kaart zijn daardoor geen letterlijke chi-kwadraatafstanden meer, alleen richting en relatieve volgorde blijven behouden.

Wat is de plenaire kaart?

De overzichtspagina van alle onderwerpen toont een interactieve plenaire kaart. Hierin is elke sprekersbeurt uit de plenaire vergaderingen van de Tweede Kamer afgebeeld als één punt. Punten die dicht bij elkaar liggen, behandelen inhoudelijk vergelijkbare onderwerpen; punten die ver van elkaar liggen, gaan over heel andere thema's.

De kaart stelt je in staat om te zien hoe de vier uitgelichte onderwerpen (stikstof, abortus, asiel en energietransitie) zich verhouden tot het bredere parlementaire werk — van justitie en defensie tot zorg en buitenlandse zaken.

Begrippen op de kaart

Onderwerp is een van de uitgewerkte onderwerpen waar we argumenten uit halen, taggen en in een argumentenboom zetten.

Gebied is een cluster op de kaart: een groep spreekbeurten die inhoudelijk dicht bij elkaar ligt. Een hoofdgebied is een groot gebied op het hoogste niveau, een deelgebied ligt daarbinnen. Een gebied is niet hetzelfde als een onderwerp: veel gebieden horen bij geen enkel uitgewerkt onderwerp, en een onderwerp kan meerdere gebieden beslaan.

Witte vlek is een gebied waar een partij veel minder spreekbeurten heeft dan op grond van het aandeel van die partij in alle debatten te verwachten was. Een zwaartepunt is het omgekeerde: een gebied waar een partij veel meer spreekbeurten heeft dan verwacht. Het verwachte aantal is per kamerperiode berekend, zonder de beurten van bewindspersonen. Gebieden die vooral debatprocedure zijn, zoals het verlenen van het woord of het indienen van moties, tellen niet mee: elke fractie spreekt in elk debat procedureel, dus dat zegt niets over een onderwerp.

Beide zeggen alleen iets over wat er in de plenaire debatten en commissiedebatten is gezegd. Ze zeggen niets over motieven, over moties, schriftelijke vragen of stemgedrag, en niets over de taakverdeling binnen een fractie.

Hoe de plenaire kaart tot stand komt

  1. 1 Tekst-embeddings (BGE-M3)

    Elke sprekersbeurt uit de officiële Handelingen wordt omgezet in een hoogdimensionale betekenisvector (embedding). Woorden en zinsneden met een vergelijkbare betekenis komen dicht bij elkaar in deze vectorruimte te liggen.

  2. 2 Dimensiereductie (UMAP)

    Het UMAP-algoritme projecteert de tienduizenden vectoren naar een tweedimensionaal vlak. UMAP behoudt daarbij de lokale topologische structuur: spreekbeurten over hetzelfde wetsvoorstel of beleidsterrein blijven in elkaars nabijheid.

  3. 3 Hiërarchische clustering (HDBSCAN condensed tree)

    In plaats van een vaste clusterdrempel loopt het algoritme de vertakkingsboom (condensed tree) van HDBSCAN top-down af, op vijf aflopende drempels: van een handvol brede beleidsdomeinen tot honderden smalle deelthema's. Elk niveau is een snede van dezelfde boom, dus een deelthema valt altijd binnen precies één beleidsdomein.

  4. 4 Voorstel voor naam & duiding (taalmodel + kenmerkende woorden)

    Per cluster worden de kenmerkende woorden berekend: welke woorden maken deze spreekbeurten anders dan de rest van de kaart. Dat gebeurt exact, uit de woordgewichten (sparse vectoren) die BGE-M3 naast de gewone embedding geeft, met uitsluiting van procedurele Kamertermen. Een lokaal taalmodel (Qwen) doet op basis van die woorden, de spreekbeurten die het dichtst bij het clustermiddelpunt liggen en de naam van het bovenliggende beleidsdomein een voorstel voor een themanaam en een korte duiding. Het blijft een voorstel: het model mag de naam van de ouder niet herhalen en geen vage woorden gebruiken.

  5. 5 Handmatig labelen in de labeltool

    Clusters krijgen zelden in één keer een goed label, dus elk cluster wordt door een redacteur beoordeeld in een eigen labeltool, nooit automatisch in bulk. Daar corrigeer je de structuur (clusters die op elkaar lijken bundelen, een cluster met meerdere onderwerpen opnieuw verdelen), verbeter je de namen en teken je zo nodig gebieden op de kaart. Een naam is kort, bevat geen vage woorden (zoals beleid of procedure), geen personen of partijen en herhaalt de ouder niet. Elke correctie wordt met reden vastgelegd; bijna duizend zijn zo gemaakt. De kenmerkende woorden en voorbeeldfragmenten staan daarbij in beeld, zodat elke naam te controleren is.

  6. 6 Renderen als vector tiles (MapLibre + deck.gl)

    Alle sprekersbeurten uit acht jaar plenaire debatten worden als vector tiles (PMTiles) geserveerd en in de browser getekend met MapLibre GL en deck.gl — dezelfde schaalbare tegeltechniek als een gewone kaartviewer, met dichtheidsbewuste puntreductie per zoomniveau zodat uit- en inzoomen vloeiend blijft.

De labeltool: links de taak Namen verbeteren met twee clusters en keuzes (nieuwe naam, naam is goed zo, cluster kan weg, laat opgaan in een ander), rechts de omtrekken van die twee clusters op de kaart.
De labeltool bij de taak Namen verbeteren: twee clusters met dezelfde naam staan naast elkaar, met rechts hun omtrek op de kaart. De redacteur kiest een nieuwe naam, laat de naam staan, laat het ene cluster opgaan in het andere of laat het vervallen.

Waarom BGE-M3?

We hebben BGE-M3 vergeleken met twee andere embeddingmodellen: Qwen3-Embedding-8B en E5-NL, een Nederlandstalig model van de Universiteit Antwerpen. Alle drie zijn losgelaten op dezelfde 9.950 sprekersbeurten uit november 2025 tot en met juli 2026.

Voor elke beurt hebben we de tien beurten genomen die het model er het dichtst bij legt, en gekeken welk deel daarvan een label deelt met de beurt zelf. Die labels komen van de Tweede Kamer en hangen dus niet van een model af:

Aandeel van de tien dichtstbijzijnde beurten met dezelfde debattitel, of met een dossier in gemeen met de beurt, per embeddingmodel
ModelZelfde debattitelZelfde dossier, ander debat
BGE-M327,3%13,2%
Qwen3-Embedding-8B23,9%11,2%
E5-NL20,1%9,5%
Willekeurig gekozen beurten0,9%1,2%

Een percentage is het gemiddelde aandeel van de tien buren dat het label deelt. Het is geen aandeel correcte antwoorden: een buur met een andere titel kan inhoudelijk wel verwant zijn, dus de percentages zijn alleen zinvol naast elkaar en naast de kans bij willekeurige beurten.

BGE-M3 scoort op beide maatstaven het hoogst. Alle drie de modellen liggen ver boven wat toeval zou geven. Qwen3-Embedding-8B is gedraaid als 4-bit-versie via LM Studio, dus een volledige versie kan anders scoren. E5-NL leest maximaal 512 tokens, dus langere beurten zijn in stukken gedeeld en de vectoren zijn daarna gemiddeld. Het is een vergelijking op deze twee maatstaven en deze steekproef, geen volledige beoordeling van elk model.

Transparantie & reproduceerbaarheid

We claimen geen feilloosheid, wel traceerbaarheid: elk argument is te herleiden tot het exacte model, de exacte promptversie en de brontekst waaruit het is gedestilleerd.