You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
269 lines
13 KiB
269 lines
13 KiB
"""Configuration constants for the parliamentary explorer.
|
|
|
|
This module contains all constant definitions used across the explorer.
|
|
It is intentionally free of Streamlit and DuckDB dependencies.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Dict
|
|
|
|
__all__ = [
|
|
"PARTY_COLOURS",
|
|
"SVD_THEMES",
|
|
"KNOWN_MAJOR_PARTIES",
|
|
"CURRENT_PARLIAMENT_PARTIES",
|
|
"_PARTY_NORMALIZE",
|
|
"CANONICAL_RIGHT",
|
|
"CANONICAL_LEFT",
|
|
]
|
|
|
|
CANONICAL_RIGHT: frozenset[str] = frozenset(
|
|
{
|
|
"PVV",
|
|
"FVD",
|
|
"JA21",
|
|
"SGP",
|
|
}
|
|
)
|
|
|
|
CANONICAL_LEFT: frozenset[str] = frozenset(
|
|
{
|
|
"SP",
|
|
"PvdA",
|
|
"GL",
|
|
"GroenLinks",
|
|
"GroenLinks-PvdA",
|
|
"DENK",
|
|
"PvdD",
|
|
"Volt",
|
|
}
|
|
)
|
|
|
|
PARTY_COLOURS: Dict[str, str] = {
|
|
"VVD": "#1E73BE",
|
|
"PVV": "#002366",
|
|
"D66": "#00A36C",
|
|
"CDA": "#4CAF50",
|
|
"SP": "#E53935",
|
|
"PvdA": "#D32F2F",
|
|
"GroenLinks": "#388E3C",
|
|
"GroenLinks-PvdA": "#2E7D32",
|
|
"CU": "#0288D1",
|
|
"SGP": "#F4511E",
|
|
"PvdD": "#43A047",
|
|
"FVD": "#6A1B9A",
|
|
"JA21": "#7B1FA2",
|
|
"BBB": "#8D6E63",
|
|
"NSC": "#FF8F00",
|
|
"Nieuw Sociaal Contract": "#FF8F00",
|
|
"DENK": "#00897B",
|
|
"50PLUS": "#7E57C2",
|
|
"Volt": "#572AB7",
|
|
"ChristenUnie": "#0288D1",
|
|
"Unknown": "#9E9E9E",
|
|
}
|
|
|
|
SVD_THEMES: dict[int, dict[str, str]] = {
|
|
1: {
|
|
"label": "Fiscaal-economisch beleid versus sociaal welzijn en internationale rechten",
|
|
"explanation": (
|
|
"Deze as scheidt fiscaal-economisch beleid van sociaal welzijn en internationale solidariteit. "
|
|
"Aan de positieve kant staan moties over dijkvervanging, medische bijscholing, gaswinning op land, "
|
|
"landbouwsubsidies en fiscale verlichting. "
|
|
"Aan de negatieve kant staan moties over huurprijsbeheersing, boycot van defensiebedrijven, "
|
|
"beëindiging van militaire verdragen, antipersoneelslandmijnen en zorgbuurthuizen. "
|
|
"Deze as weerspiegelt de spanning tussen financieel-economische prioriteiten en sociaal-internationaal beleid."
|
|
),
|
|
"positive_pole": "Fiscaal-economisch: dijkvervanging, landbouwsubsidies, gaswinning, fiscale verlichting",
|
|
"negative_pole": "Sociaal welzijn en internationale rechten: huurbeheersing, defensieboycot, zorg, landmijnverbod",
|
|
"flip": False,
|
|
},
|
|
2: {
|
|
"label": "Nationalistische versus multilateralistische oriëntatie",
|
|
"explanation": (
|
|
"Deze as meet een onafhankelijke culturele dimensie: nationalistisch-populistisch "
|
|
"tegenover kosmopolitisch-mainstream. Aan de positieve kant staan PVV en FVD. "
|
|
"Aan de negatieve kant staan Volt, GroenLinks-PvdA, DENK en SP. "
|
|
"Deze as is onafhankelijk van links-rechts (as 1) en scheidt partijen "
|
|
"op hun houding tegenover nationale identiteit, EU-samenwerking en de "
|
|
"etnisch-culturele dimensie."
|
|
),
|
|
"positive_pole": "Nationalistisch/populistisch — PVV, FVD: nationale identiteit en soevereiniteit",
|
|
"negative_pole": "Kosmopolitisch/mainstream — Volt, GL-PvdA, DENK, SP: EU en internationale samenwerking",
|
|
"flip": False,
|
|
},
|
|
3: {
|
|
"label": "Verzorgingsstaat versus defensie en nationale veiligheid",
|
|
"explanation": (
|
|
"Deze as weerspiegelt de spanning tussen staatsingrijpen en marktliberalisme, "
|
|
"aangescherpt door de kabinetscrisis van 2025. Aan de positieve kant staan moties "
|
|
"die bezuinigingen op zorg en het gemeentefonds willen terugdraaien, winstuitkeringen "
|
|
"in de zorg verbieden en publieke controle over ziekenhuisfusies eisen. SP, PvdD, "
|
|
"GroenLinks-PvdA stemmen hier gelijk — ondanks hun tegengestelde PC1-posities. "
|
|
"Aan de negatieve kant staan moties "
|
|
"over marktwerking in de zorg, fiscale bedrijfsopvolgingsfaciliteiten (VVD), "
|
|
"doorgaan met besturen ondanks de kabinetscrisis (VVD/BBB) en defensie-"
|
|
"uitgaven van 3,5% bbp."
|
|
),
|
|
"positive_pole": "Pro-verzorgingsstaat: SP, PvdD, GroenLinks-PvdA (anti-bezuinigingen)",
|
|
"negative_pole": "Marktliberaal en fiscaal conservatief: VVD, D66, CDA, SGP, BBB",
|
|
"flip": True,
|
|
},
|
|
4: {
|
|
"label": "Actieve internationale betrokkenheid versus terughoudendheid",
|
|
"explanation": (
|
|
"Deze as scheidt actieve internationale betrokkenheid van terughoudendheid of terugtrekking. "
|
|
"Aan de positieve kant staan moties over bilaterale en Europese samenwerking: partnerschappen met Australië, "
|
|
"actieve vaderbetrokkenheid, kennisuitwisseling en coördinatie via internationale gremia. "
|
|
"Aan de negatieve kant staan moties over verlaten van de WHO, beperking van migratiesaldo, "
|
|
"gezinsbeleid en asielrestricties. "
|
|
"Deze as is indicatief — de spreiding van partijen is breed."
|
|
),
|
|
"positive_pole": "Actieve internationale betrokkenheid: bilaterale samenwerking, kennisuitwisseling, multilaterale coördinatie",
|
|
"negative_pole": "Terughoudendheid en restricties: WHO-verlating, migratielimieten, binnenlands gericht beleid",
|
|
"flip": False,
|
|
},
|
|
5: {
|
|
"label": "Pragmatische financiële ondersteuning versus progressieve individuele rechten",
|
|
"explanation": (
|
|
"Deze as scheidt pragmatische financiële en structurele ondersteuning van progressieve individuele rechten. "
|
|
"Aan de positieve kant staan moties over een vrijgesteld minimumbudget voor infrastructurele werken, "
|
|
"maatschappelijke diensttijd voor kwetsbare jongeren, verkorting van de WW alleen met concrete "
|
|
"ondersteuningsmaatregelen, en vrijwaring van kindertoeslagen. "
|
|
"Aan de negatieve kant staan moties over erkenning van meerouderschap, "
|
|
"wettelijke kwaliteitseisen aan zwemlessen, een nationaal coördinator tegen buitenlandse beïnvloeding, "
|
|
"en vastlegging van abortusrecht in het EU-Handvest. "
|
|
"Deze as weerspiegelt de spanning tussen financiële prikkels en individuele rechtenbescherming."
|
|
),
|
|
"positive_pole": "Pragmatische financiële ondersteuning: budgetvrijwaring, diensttijd, WW-hervorming, kindertoeslagen",
|
|
"negative_pole": "Progressieve individuele rechten: meerouderschap, abortusrecht, zwemveiligheid, buitenlandse beïnvloeding",
|
|
"flip": False,
|
|
},
|
|
6: {
|
|
"label": "Fossiele brandstoffen en financiële prikkels versus klimaatbeleid en internationale rechten",
|
|
"explanation": (
|
|
"Deze as scheidt fossiele brandstoffen en financiële marktprikkels van klimaatbeleid en internationale rechten. "
|
|
"Aan de positieve kant staan moties over lng-capaciteit als alternatief voor gaswinning, "
|
|
"kernenergie als volwaardig onderdeel van energiebeleid, vermogenswinstbelasting en beperkte "
|
|
"overheidsuitgaven. "
|
|
"Aan de negatieve kant staan moties over het uitsluiten van de fossiele industrie van klimaatconferenties, "
|
|
"veroordeling van aanvallen op Libanon, sancties tegen internationale conflicten, "
|
|
"en structureel overleg met moslimgemeenschappen. "
|
|
"Deze as weerspiegelt de spanning tussen economisch-fiscale prioriteiten en klimaat/internationale solidariteit."
|
|
),
|
|
"positive_pole": "Fossiel en financieel: lng-capaciteit, kernenergie, vermogenswinstbelasting, bezuinigingen",
|
|
"negative_pole": "Klimaat en internationale rechten: fossiele industrie uitsluiten, sancties, Libanon, gemeenschappen",
|
|
"flip": False,
|
|
},
|
|
7: {
|
|
"label": "Praktisch-bestuurlijk versus idealistisch-proceduraal",
|
|
"explanation": (
|
|
"Een residuele as die overwegend beleidsdossiers uit 2024 (vorige parlementaire "
|
|
"periode) omvat. De scores zijn smal (max ~11 punten) en de partijcombinaties "
|
|
"ideologisch divers — dit label is indicatief. Aan de positieve kant staan "
|
|
"pragmatische bestuursmoties: een compleet kostenoverzicht van producten van eigen "
|
|
"bodem, papieren schoolboeken voor basisvaardigheden, een invoeringstoets voor het "
|
|
"minimumloon en de A2-snelwegplanning. ChristenUnie, Volt, DENK en SP scoren "
|
|
"positief. Aan de negatieve kant staan meer ideologisch geladen moties: een "
|
|
"landelijk stookverbod (PvdD), het strafbaar stellen van verbranding van religieuze "
|
|
"geschriften (DENK), chroom-6 schadevergoedingen en tegenhouden van nieuwe "
|
|
"gaswinning. GroenLinks-PvdA, VVD, FVD en JA21 scoren negatief."
|
|
),
|
|
"positive_pole": "Praktisch-bestuurlijk: ChristenUnie, Volt, SGP, DENK, SP",
|
|
"negative_pole": "Ideologisch-principieel: GroenLinks-PvdA, VVD, FVD, JA21",
|
|
"flip": True,
|
|
},
|
|
8: {
|
|
"label": "Europese defensiesamenwerking versus binnenlands sociaaleconomisch beleid",
|
|
"explanation": (
|
|
"Deze as scheidt Europese defensiesamenwerking van binnenlands sociaaleconomisch beleid. "
|
|
"Aan de positieve kant staan moties over militaire mobiliteit in EU- en NAVO-verband, "
|
|
"een Europees onderzoeksinstituut voor defensie, en concrete stappen voor 35% defensie-uitgaven. "
|
|
"Aan de negatieve kant staan moties over toeslagenaffaire-herstel, ontslagrecht, "
|
|
"coronastrategie en bestuurlijke instructieregels. "
|
|
"Deze as is indicatief — de spreiding van partijen is breed en de thematische diversiteit is groot."
|
|
),
|
|
"positive_pole": "Europese defensiesamenwerking: NAVO-militaire mobiliteit, Europees defensie-instituut, defensie-uitgaven",
|
|
"negative_pole": "Binnenlands beleid: toeslagen, ontslagrecht, coronastrategie, administratieve lasten",
|
|
"flip": False,
|
|
},
|
|
9: {
|
|
"label": "Concreet-bestuurlijke versus systemische hervorming",
|
|
"explanation": (
|
|
"Deze as scheidt concreet-bestuurlijke oplossingen van systemische hervorming. "
|
|
"Aan de positieve kant staan moties over naleving van financiële verhoudingswetten voor gemeenten, "
|
|
"beperking van arbeidsmigratie, een nieuwe tandartsopleiding in Rotterdam, "
|
|
"en oplossingen voor milieuproblemen op Bonaire. "
|
|
"Aan de negatieve kant staan moties over een moratorium op geitenstallen, "
|
|
"een verbod op gokadvertenties, gronden voor voorlopige hechtenis, "
|
|
"een leegstandbelasting en end-to-end-encryptie. "
|
|
"Deze as is indicatief — de scores zijn smal en ideologisch divers."
|
|
),
|
|
"positive_pole": "Concreet-bestuurlijk: financiële verhoudingswet, arbeidsmigratie, tandartsopleiding, Bonaire",
|
|
"negative_pole": "Systemische hervorming: geitenstallen-moratorium, gokverbod, leegstandbelasting, encryptie",
|
|
"flip": False,
|
|
},
|
|
10: {
|
|
"label": "Bescherming van burgers versus overheidsregulering",
|
|
"explanation": (
|
|
"Deze as scheidt bescherming van burgers van overheidsregulering en handhaving. "
|
|
"Aan de positieve kant staan moties over minder tijdsintensieve schoolinspecties, "
|
|
"het recht van toeslagenouders op hun persoonlijk dossier, behoud van tegemoetkomingen "
|
|
"voor arbeidsongeschikten, integratie die geldt voor nieuwkomers (niet voor Nederlanders), "
|
|
"en verlaging van de leeftijdsdrempel voor kindgesprekken. "
|
|
"Aan de negatieve kant staan moties over een aangifteplicht voor scholen bij "
|
|
"veiligheidsincidenten, rookverboden in auto's met kinderen, "
|
|
"braakliggende landbouwgrond en verhoogd beloningsgeld voor tipgevers. "
|
|
"Deze as is indicatief — de scores zijn smal en de partijcombinaties divers."
|
|
),
|
|
"positive_pole": "Bescherming van burgers: minder inspecties, toegang tot dossiers, behoud toeslagen, kindleeftijd",
|
|
"negative_pole": "Overheidsregulering: aangifteplicht scholen, rookverbod, braakliggende grond, tipgeversbeloning",
|
|
"flip": True,
|
|
},
|
|
}
|
|
|
|
KNOWN_MAJOR_PARTIES = [
|
|
"VVD",
|
|
"PVV",
|
|
"D66",
|
|
"GroenLinks-PvdA",
|
|
"GroenLinks",
|
|
"PvdA",
|
|
"CDA",
|
|
"SP",
|
|
"NSC",
|
|
"CU",
|
|
"BBB",
|
|
]
|
|
|
|
CURRENT_PARLIAMENT_PARTIES: frozenset[str] = frozenset(
|
|
{
|
|
"PVV",
|
|
"VVD",
|
|
"NSC",
|
|
"BBB",
|
|
"D66",
|
|
"GroenLinks-PvdA",
|
|
"CDA",
|
|
"SP",
|
|
"ChristenUnie",
|
|
"SGP",
|
|
"Volt",
|
|
"DENK",
|
|
"PvdD",
|
|
"JA21",
|
|
"FVD",
|
|
}
|
|
)
|
|
|
|
_PARTY_NORMALIZE: dict[str, str] = {
|
|
"Nieuw Sociaal Contract": "NSC",
|
|
"CU": "ChristenUnie",
|
|
"GL": "GroenLinks-PvdA",
|
|
"GroenLinks": "GroenLinks-PvdA",
|
|
"PvdA": "GroenLinks-PvdA",
|
|
"Gündoğan": "Volt",
|
|
"Lid Keijzer": "BBB",
|
|
"Groep Markuszower": "PVV",
|
|
}
|
|
|