Montag, 27 Dezember 2010 17:07

Kampf den Dubletten

Jedes Jahr die gleiche Bescherung: Anfang Dezember bringt Chessbase die neue Mega heraus und ich stelle mir die Frage, wie ich sie mit meiner Datenbank vereinige... möglichst ohne Dubletten. Denn meine enthält neben den Informatoren noch eine Menge Partien, die es in der Mega nicht gibt, die ich irgendwo aufgelesen habe und nicht mehr verlieren möchte.

Jedes Jahr die gleiche Hoffnung beim Auspacken. Vielleicht haben sie ja endlich einmal die neuen und geänderten Partien gegenüber dem Vorjahr extra verpackt. Auch dieses Jahr Fehlanzeige. Aber Chessbase mit 25 Jahren Programmiererfahrung hat da ja schon vorgedacht und anstatt mich selbst auf die Suche zu machen starte ich vor dem Schlafen gehen den Chessbase Dublettenchecker oder Ausschlachter mit der Aufgabe lupenreine Dubletten zu finden und am nächsten Morgen, wenn ich so richtig ausgeschlafen bin, ist auch er fertig. Den Computer sich die Nacht um die Ohren schlagen zu lassen, bietet sich an, da Chesssbase sich der Schwere der Aufgabe bewusst gleich völlig den Zugang zu anderen Funktionen des Programms blockiert und man ja auch keine zweite Instanz starten kann. Mein Taskmanager zeigt 5 Stunden netto am Morgen, man sollte also wirklich ausschlafen.

Der erste Gedanke ist, dies wird schon alles richtig sein, denn zweimal fünf Millionen Partien miteinander zu vergleichen muss halt dauern. Tut man dies auf die einfache Art fielen an die 12.500.000.000.000 Vergleiche an, habe ich vor 25 Jahren in Bonn gelernt als dort die erste Version des Programms entstand. Das ist schon heftig. Aber direkt darauf drängt sich die Frage auf, was Firmen mit ihren Kundendaten vor dem Computerzeitalter gemacht haben. Die hatten da ein Karteikartensystem von A-Z oder wenn sinnvoll Aa bis Zz. Darin befanden sich die Daten und wenn man eine suchte, brauchte man nur die Karten in einem Fach zu vergleichen. Relativ praktisch, solange eine Kundin nicht heiratete. Gleiches hat sicherlich Chessbase auch hier verwendet, denn Vorlesungen über Algorithmen waren ja auch damals in Bonn schon Pflichtprogramm für Anfänger. Zuerst sortiert man die Partien nach Eigenschaften, die zwischen den Dubletten gleich sein müssen, in Gruppen und dann braucht man nur noch die Gruppen zu vergleichen. Das Gute ist, dass es solche Eigenschaften immer gibt, denn sonst wäre Sortieren und Löschen von Dubletten sinnlos.

Zweifel kommen einem aber dann doch, wenn man dann auch Scid stößt. Dies ist eine Opensource Schachdatenbank und kann kostenlos unter http://scid.sourceforge.net mit Quellcode kopiert werden. Sie implementiert auch einen Dubletten-Check mit einem Karteikartensystem, aber dies relativ rudimentär. Lässt man sie aber auf die gleiche Aufgabe los, benötigt sie gerade einmal 5 Minuten. Offensichtlich waren unsere Vorfahren aus der prädigitalen Zeit gar nicht so dumm. Der Satz in der Hilfe von Chessbase "Jahr ignorieren findet mehr Dubletten, macht den Test jedoch langsamer." hätte mich stutzig machen müssen. Die Partien auf in Jahresordner zu stecken, löst das Problem nicht. (Scid ist übrigens die Datenbank, wo ich zu einer Partiestellung deren Notation (Chessbase 1) und gleichzeitig die relevanten Partien guter Spieler (Chessbase 11), die meines nächsten  Gegners und - da ich schon etwas senil werde - auch noch die von mir sehen kann.)

Aber nun muss ich weitermachen beim Dubletten suchen, denn Chessbase hielt nur gut die Hälfte der Partien in der neuen Mega für lupenreine Dubletten und das Jahr werde ich bei einem Lauf auch noch einmal ignorieren müssen. Aber vorher sollte man zuerst einmal die schon gefundenen Dubletten endgültig löschen. Kostet wieder eine Nacht, aber das ist ein anderer Teil des gleichen Themas.
Gerd Lorscheid