Du betrachtest gerade 1) Spielanalysen – der Fahrplan
„Ein Plan ist nichts, Planung ist alles.“ -- Dwight D. Eisenhower

1) Spielanalysen – der Fahrplan

  • Beitrags-Autor:Peter Kühn
  • Beitrags-Kategorie:chess_analyser
  • Beitrags-Kommentare:0 Kommentare

Wir wollen die Spielstärke der besten Großmeister, zumindest aller (auch inoffizieller) Weltmeister der Vergangenheit, anhand ihrer gespielten Partien analysieren und daraus verschiedene Kennzahlen ableiten, um eine einheitliche Datenbasis zu schaffen, die wir für unseren Vergleich nutzen können.

Wir verwenden dazu öffentliche Partien-Datenbanken als Grundlage, die aktuell stärkste chess engine zur Analyse, etablierte Metriken als Maßstab und etwas SQL sowie Python-Programme zur Durchführung. Am Ende wollen wir Jupyter-Notebooks zur grafischen Veranschaulichung der Ergebnisse nutzen. Alle Schritte werden nachvollziehbar dokumentiert und der gesamten Code frei zugänglich auf Github hinterlegt. Soweit der grobe Plan.

Der Plan im Einzelnen:

  • Datenbeschaffung
    als Datenquelle für die zu untersuchenden Schachpartien verwenden wir von Lumbra’s Gigabase die OTB-Datenbank mit über 9,5 Millionen Schachpartien (Stand vom 5. 8. 2025) . Die Datenbank enthält alle bekannten Welt- und Großmeister-Partien bis ins 19. Jahrhundert zurück. OTB bedeutet over the board, d.h. dass es sich um keine Online-Spiele, sondern um Partien am physischen Schachbrett handelt. Das Format dieser Datenbank ist SCID 5.0, benannt nach einer bekannten Schachdatenbank-Software.
  • PGN-Archiv erstellen
    Wir installieren die aktuelle SCID-Software (derzeit Version 5.1), um obige Datenbank öffnen zu können. Von dort exportieren wir sämtliche darin enthaltene Partien in eine PGN-Datei, um sie im nächsten Schritt mittels eines Python-Programms in eine relationale Datenbank zu überführen. Dieser Schritt ist notwendig, da SCID keine dokumentierte Programmierschnittstelle besitzt, um mit einem eigenen Programm darauf zugreifen zu können. Außerdem wollen wir versuchen, die Qualität der gespeicherten Partien nachfolgend noch zu verbessern.
  • Aufbau MariaDB
    Mittels der Python-Software und entsprechender python-chess Bibliothek inklusive der aktuellen Stockfish engine importieren wir alle Partien aus der zuvor erstellten PGN-Datei. Wir bereinigen diese Daten und schreiben sie in unser normalisiertes Datenmodell mitsamt dem nach jedem Zug entstandenen FEN-Stellungsbild (dazu später mehr). Eine relationale Datenbank bietet viele Vorteile wie eine standardisierte Abfragesprache zur Filterung und Sortierung von Daten, Redundanzfreiheit, schnelle indizierte Zugriffe sowie die Möglichkeit, mit speziellen Datenextrakten rasch und unkompliziert weitere Hilfstabellen aufzubauen.
  • Partie-Analysen
    Wir nutzen etablierte Metriken oder definieren neue interessante Merkmale, um die Partien von ausgesuchten Schachmeistern daraufhin zu untersuchen. Als Analyse-Software verwenden wir Stockfish (aktuell in Version 17.1). Die gewonnenen Kennzahlen schreiben wir wieder zurück in spezielle Ergebnistabellen der Datenbank.
  • Ergebnis-Präsentation
    Für die vergleichende Visualisierung unserer Ergebnisse nutzen wir Jupyter-Notebooks mit den bekannten Grafik- und Statistik-Paketen.

Schreibe einen Kommentar