gantt
title Project Plan
dateFormat YYYY-MM-DD
tickInterval 1week
section Project Understanding
Context, Stakeholder & User analysis :a1, 2026-03-16, 3d
Draft Project Charta :milestone, m1, 2026-03-20, 0d
First Coaching Session :a2, 2026-03-23, 5d
section Data Acquisition & Processing
API Data Fetching (swissparlpy) :a3, 2026-04-01, 5d
AI Embeddings & UMAP reduction :a4, 2026-04-06, 7d
Exploratory Data Analysis (EDA) :a5, 2026-04-13, 5d
Complete Data Report :a6, 2026-04-18, 3d
section Visual Encoding and Design
Draft Visualization Concept :a7, 2026-04-21, 7d
Implement Dashboard Prototype :a8, 2026-04-28, 14d
Refine UI/UX & Interactivity :a9, 2026-05-12, 5d
section Evaluation & Deployment
User Testing / Peer Review :a10, 2026-05-17, 5d
Finalize Quarto Documentation :a11, 2026-05-22, 7d
Final Project Submission :milestone, m2, 2026-06-01, 0d
Prepare Presentation Slides :a12, 2026-06-02, 7d
1 Project Charta
1.1 Context and Scope
This project operates within the domain of Swiss politics and civic tech, focusing on the parliamentary debates of the Swiss Federal Assembly. The project addresses the semantic landscape of political speeches. The core question it seeks to answer is:
Are Swiss political parties truly polarized in their rhetoric, or do they use similar language and semantic structures when discussing key issues?
The expected benefit is to provide transparency and an intuitive, visual way for the public and media to understand the ideological proximity of political actors without having to read thousands of pages of official transcripts. The final visualization product will be published as an interactive web-based dashboard using Streamlit.
1.2 Project Objectives
Exploration: Enable users to visually explore the ideological and semantic similarities between Swiss politicians and parties based on their official speeches.
Intuition: Deliver an intuitive interface that translates complex AI-generated text embeddings into an easily readable format for non-technical users.
Interaction: Provide interactive filters on Party, Canton and Language.
Out of Scope:
- Real-time live transcription analysis
- Audio processing of speeches
- Predictive modeling (e.g., predicting how a politician will vote)
1.3 Success Criteria
- Qualitative:
- Users can successfully and quickly identify thematic clusters
- Different clusters can be clearly identified
- Quantitative:
- Process at least 10’000 transcripts
1.4 Stakeholder Analysis
- Development Team: Responsible for data engineering, AI processing, and visualization design.
- Course Instructors: Evaluate the project based on reproducibility, technical implementation, and storytelling quality.
- Political Journalists: Professional end-users looking for data-driven insights and quantitative proof of political polarization.
- Voters / Engaged Citizens: General end-users seeking a transparent, big-picture overview of Swiss political dynamics.
1.5 User Analysis
We have identified two primary personas based on the Value Proposition Canvas [1]:
1.5.1 The Political Journalist - Sarah (31)
- Quick Facts
- Domain expertise: High
- Data literacy: Moderate
- Usage: Weekly
- Device: Desktop / Laptop
- User tasks
- Writing data-driven articles on political polarization.
- Finding specific quotes or identifying which politicians are driving a specific narrative.
- Pains
- Reading through thousands of pages of the Amtliches Bulletin (official transcripts) is incredibly time-consuming.
- It is difficult to prove “polarization” quantitatively rather than just anecdotally.
- Gains
- A tool that instantly highlights outliers (e.g. a politician speaking more like an opposing party) to formulate compelling journalistic narratives.
1.5.2 The Engaged Citizen - Marco (57)
- Quick Facts
- Domain expertise: Moderate
- Data literacy: Low
- Usage: Regular (around elections)
- Device: Mobile (tablet)
- User Tasks
- Deciding who to vote for.
- Trying to understand if a party actually aligns with their personal values.
- Pains
- Political rhetoric is dense, dry and hard to follow.
- It is difficult to see the “big picture” of what a party actually focuses on.
- Gains
- A simple, visually appealing way to see which politicians and parties are ideologically similar at a single glance.
1.6 Situation Assessment
1.6.1 Resources
- Personnel
- 2 Data Science students
- 2 Coaches
- Software
- ZHAW licensed software
- Open source / public domain software
- Time
- 12 weeks
1.6.2 Constraints
- Publicly available data only via OpenParlData
- Swiss hosting service for dashboard
1.6.3 Risks
- High computational cost of generating AI embeddings locally
- Multilingual nuances (German, French, Italian) potentially skewing the semantic clustering
1.7 Visualization Concept
- Product form: An interactive web-based dashboard
- Visual encodings:
- Main Graphic: A 2D Scatter plot. Each dot represents a single speech (mapped via UMAP X/Y coordinates). Color hue encodes the Party (Categorical).
- Supporting Graphics: Bar charts encoding average speech duration or average sentiment score by Party (Length/Height encoding).
- Interactivity:
- Dropdown menus to filter the scatter plot by Party, Language or Canton.
- Hover tooltips on the dots to reveal the Speaker’s Name, Date, and a short snippet of the speech.
- Narrative and annotation: A brief introductory text panel explaining how the AI reads the speeches and creates the “semantic map,” guiding the user on how to interpret the spatial distances between dots.
- Target medium and integration: Hosted online as a standalone web application, accessible via a standard web browser.
Intended Value Dimensions:
- Cognitive and analytical value: The scatter plot clustering instantly reveals hidden patterns of ideological similarity that are impossible to detect by reading raw text.
- Communicative value: Color-coding by party communicates whether parties act as a unified bloc or if their members’ rhetoric is scattered.
- Experiential and aesthetic value: Turning dry government transcripts into an interactive, explorable “map” of ideas provides a modern and engaging experience.
1.8 Project Plan
Below is the preliminary timetable for the visualization project:
1.9 Roles and Contact Details
| Person | Role | Task | |
|---|---|---|---|
| Christian Bosshard | Data Scientist | Developer | boschr02@students.zhaw.ch |
| Enea D. Fedel | Data Scientist / Teamsprecher | Developer | fedelene@students.zhaw.ch |
| Manuel Dömer | Coach | Consulting for technical topics | doem@zhaw.ch |
| Wibke Weber | Coach | Consulting for (visual) communication topics | webw@zhaw.ch |