Members · Prefs · Collections · Openings · Endgames · Sacrifices · History · Search Kibitzing · Kibitzer's Café · Chessforums · Tournament Index · Players · Kibitzing User Profile Chessforum

CG Librarian
Member since May-07-11 · Last seen Apr-20-15
<"I adjust">

Hi, I'm your friendly Chessgames database librarian. My job is to make the database better by processing correction slips.

I'll be using this forum to ask for help when something needs more research. You can use this forum for the same purpose, to get others' input on possible errors or duplicates.

If you've submitted a correction there's no need to post here about it. I will see the correction slip and it will be fixed as soon as possible. Thanks!

A few notes:

1. As you probably know, there's currently a long backlog of corrections. From now on, new corrections will get priority, while I also chip away at the older ones. If you submit a new slip on something that isn't fixed yet, that will bump it up to the top and it will get fixed faster. Please be judicious about this.

2. Probably due to the backlog, volunteer bio editors have started to put "aka" and a duplicate player link in bios. Please don't do this, just submit a correction slip. Similarly, if there's a problem with a player name (such as first and last name reversed), submit a slip on it rather than putting it in the bio, so it can get changed in the database.

3. We also try to delete kibitzes about errors that would be confusing once the error is fixed, so the more you keep the corrections to the correction slip, the less extra work for me and the faster I can correct the database. Full Member

   CG Librarian has kibitzed 21 times to chessgames   [more...]
   Jun-04-12 CG Librarian chessforum (replies)
CG Librarian: OK, here are a few things I wanted to mention: 1. I got a copy of Chess Personalia (quite a while ago now) :) 2. The reason CG put a hyphen in Spanish double last names was so the database software didn't get confused about what the last name was (for things like the Player ...
   Nov-03-11 European Team Championship (2011) (replies)
CG Librarian: <Slaven MNE> You're right. We also had the wrong Georgiev. I think the error must have gotten propagated from the official site.
   Aug-08-11 World Junior Championships (2011) (replies)
CG Librarian: Here's the situation with incorrect game scores for this tournament: we first received many truncated games, then the correct versions. I've removed all the incorrect duplicate games that affect the leaderboards. If you see more please submit a correction slip on them.
   May-28-11 World Championship Candidates Final (2011) (replies)
CG Librarian: <alexmagnus: Actually if you do the search now you get +9 -5 =27. One Gelfand win from 1990s, present just a week ago, now magically disappeared... Maybe it was attributed to some different players.> Hello, I just saw this. The stats changed because I merged away a ...
   May-08-11 chessforum (replies)
CG Librarian: <Domdaniel: Welcome, o Eager and Bright database administrator person.> Thanks, and hello everyone! My chessforum is now available for correction-related comments. I'm sure I'll also be posting things that need additional research, so check back often.
(replies) indicates a reply to the comment.

Kibitzer's Corner
< Earlier Kibitzing  · PAGE 16 OF 16 ·  Later Kibitzing>
Jun-20-15  gauer: Are there any sort of standard columns that we should and should not want to include in (i) round-by-round or (ii) leaderboard crosstables? Are there any <optional> columns that we'd want to import and export via csv (comma-separated-value) format?

The problem is is that if we do allow 0-move game stubs for which to build a crosstable from strictly automatically, that we need to know how handle players paired to an unpaired bye (ghost pairing). If on the other hand, we do some of the editing of the table by hand, then we don't necessarily need all games present when voting in a tournament, but the scores of byes and unplayed games need to be inserted manually (especially when they are different from the FIDE usage recommendations of when to assign a bye of a certain score - pairings programs have about 5-10 other symbols other than win/loss/draw, and also carry the colour/floats in the pairing to the next round, and maybe it would be good for our tables to know how to handle these as well, for some not-quite-perfect-swiss algorithm - swisssys has a number of choices, too).

Not sure if it's worth's time to carry that excess baggage - but it might've helped in reconstructing some of the older US open due-colour pairings, etc - if it was better known of how the pairing variations were working as we later found more new games of it.

Premium Chessgames Member
  zanzibar: <gauer> Non-scoring byes need no stub. There simply isn't any pairing for the player in the round, and the xtab just inserts "...".

Scoring byes need a fictitious player or maybe more, let's name them BYEn, where n is used for enumeration purposes only.

No need for these players to have a bio, or to have their statistics tracked.

As far as the extra symbols used by pairing programs, I'd have to gain some familiarity to say anything further.

As for the extra columns, I like the SCID system, imperfect though it may be. It includes the player's age, nationality (federation), ELO, and titles. Also, S-B tiebreak scoring.

Premium Chessgames Member <I'll describe some of the requires for the <CG> database design, as I see them.>

I have some opinions on that post and I'll get back to you soon.

Premium Chessgames Member
  zanzibar: <chessgames> Good, it would be nice to get some discussion going with an eye towards implementing some of the ideas.

Just a quick word on the rationale for the terser <CG_id> tag.

Basically, this tag isn't intended for people to edit by hand. It's intended for transfer of information from one program to another in the PGN.

Therefore, it was designed for easy parsing, and to avoid taking up too much space in the PGN.

It is much easier to look for the one tag (<CG_id>), then to have to parse out <ChessgamesWhiteID>, <ChessgamesBlackID>, <ChessgamesTournamentID>, <ChessgamesGameID>.

The information is naturally a tuple, and all I have to do is process all the tags normally, then:


try: = tuple( [int(k) for k in g.CG_id.split(".")] ) except: = ( 0, 0, 0, 0 )


If people understand the tuple that's fine, but the tag is intended to mark off pre-existing <CG> games which a biographer downloads to begin the tournament build process.

These pre-existing games are only edited for Round/Date information. Missing games are added, but without the <CG_id> tag.

And it takes less file space because it is more compact as well. Additionally, if you do know the format you can do searches with an editor and have all the information right there, one line/game.

It has a lot of advantages.

Premium Chessgames Member
  zanzibar: I did a series introducing Swiss error checking - which could include RR and maybe KO tournaments as well.

Basically, we are looking for a player showing up twice within a round:

Biographer Bistro (kibitz #11707)

Having introduced the problem via some easy examples let's tackle a more difficult case - <Baku Open (2013)>:

Baku Open (2013)

The question is what is going on in R5?

Swiss can be difficult due to missing games. But here we have 69 players for a 9-round match:

Expected N_games = 68*9/2 = 306

In fact, <CG> has 302 games, whereas TWIC gives 308 games. So the coverage is almost complete.

(Note: TWIC gives 72 players, since it includes 3 R1 dropouts maybe(?))

We can look at the games/round:

>>> [ len(G[r]) for r in range(1,10)]

[33, 34, 34, 34, 41, 26, 33, 34, 33]


And it appears that R5 has "stolen" games from R6.

How many? Could be 7 or 8 depending.

Now here's the trick. List out R5 games, sorted by gid to see a possible bias:

note the games @g

<[1732270, 1732271, 1732275, 1732276, 1732277, 1732278, 1732286, 1732287]>

are injected in-between R5.10/@g1732256 and R5.11/@g1732798

Take those out of R5 and into R6, and one gets a correct Swiss.

* * * * *

So, the question becomes, how is <CG> going to clean all that up?

(1) Doing as the above seems much too time-consuming.

(2) Not doing any fix is an option.

(3) Redoing all the tournaments from a source like TWIC or the official sites, seems likely the best and most efficient.

(4) ???


Premium Chessgames Member
  zanzibar: <chessgames> I am really wondering what the best approach to revamping the <CG> promoted tournaments should be...

I am truly beginning to think that the best approach is to jettison the current batch of non-biographer tournaments/games and just rebuild the post-2000 set of tournaments anew.

So I'm led to a series of questions (as usual):

Are you aware of the issues?

Assuming yes, have a rough idea of the scope of the problem?

And in consequence, what might be your suggestions on remedies?

While we're here, have you also given any thought to the need for biographical documentation for these tournaments?

Premium Chessgames Member
  zanzibar: Doing the ICCF stuff jammed me up yesterday (and some today)... as they use unicode in their ratings list.

Some of the PGN I got from <crawfb5> also uses unicode (or more accuratly, some extended character set), whereas the other source I used stuck with ascii.

So doing the ICCF provided me a good excuse to actually bite the bullet and see how involved handling unicode names is.

The answer is that it's quite involved, and very confusing at first.

Ok, it's not so bad once you realize who uses what encoding, but the whole business has gotten so many people so confused that it's hard to find good targeted advice on the web.

And in the end, I think my earlier conclusion from my first utf-8 attempt with SCID, still stands - it's not really worth the effort.

Still, this time through a little more progress was made, and I'll provide some notes and code later.

One thing is for sure, it's necessary to maintain ascii compatibility at some level, so a player's name would have to track both ascii and unicode versions of the long/short <CG> names.

The other conclusion is that some unicode encoding has to be used to manage the byte-streams, and it isn't always utf-8. So beware.

Premium Chessgames Member
  zanzibar: Finally decided to bite the bullet and wrote a routine to do Berger tables (for Round Robin pairings). <Phony> originally inspired this, but it's been awhile since he wrote up the work he did with the USSR-ch tables.

I think I remember <Phony> doing it like everybody else - with tables.

Never wanting to do things the easy way, I tried to generalize, and discover the algorithm which generates the table.

Wiki has a page:

where the scheduling algorithm looks fairly straightforward. It involves a cyclical rotation, with one player always fixed at the same table. Easy to code up too.

Unfortunately, FIDE's tables don't match this straight-forward approach.

In fact, I had a heck of a time trying to find the algorithm. FIDE's tables only go up to 16 players: (see Annex 1)

Inadequate for checking the pairings for <hemy>'s list given here:

V Mikenas vs Averbakh, 1970 (kibitz #5)

for USSR Championship (1970)

Turns out this French wiki page seems to match FIDE's coloring while going out to N=30 players:

Still, I wondered why a simple algorithm matching FIDE's results wasn't apparent to me. And what if I wanted to do a RR with 32-players?

I squandered some time on several dead end approaches, until I finally watched this video:

Where the algorithm is displayed, somewhat slowly, but explicitly enough that I finally understand it.

If only I watched it sooner!

(I thought it just did it with the FIDE provided tables).

Premium Chessgames Member
  zanzibar: Yes, I looked up <phony>'s posts on the topic, the first being here:

Biographer Bistro (kibitz #11004)

and the elaboration here:

Biographer Bistro (kibitz #11066)

Biographer Bistro (kibitz #11066)

Of course, I think <phony>'s main concern was backtracking - finding the initial player list used to determine the pairings given a collection of games without round numbers.

* * * * *

Still, <phony>'s does post another site given the Berger tables out to 30-players too:

But I still intend to code up the general algorithm as displayed on the youtube video.

Premium Chessgames Member
  zanzibar: I wasn't ready to try to use <Phony>'s post at the time:

His first post, explaining how to find Berger pairing numbers from partially complete information (i.e. complete pairings published by a newspaper for at least the first two rounds (actually any two successive rounds), or, an entire listing of any one player complete with round assignments).

That post, and his previous (showing how to disentangle when first two rounds are completely covered, or one player's complete games are given with correct rounds) are both excellent.

Biographer Bistro (kibitz #11066)

Then he goes on to explain how to untangle a pile of unassigned RR games (e.g. you have all the games, with correct pairings, but don't know the rounds).

Biographer Bistro (kibitz #11073)

But the later approach seems to rely heavily on an initial partitioning by asymmetric color totals - which only works if its a tournament without byes, i.e. there is an even number of players.

(Here's the problem, if there are byes due to an odd number of players, the bye player is like a ghost player.

The trouble is that information is lost, nobody publishes the color-pairing of the bye round of a player, you just know they had a bye.)

So I'm wondering if <Phony>'s technique works in this case.

If <Phony>'s technique doesn't work in this case, I have to ask if there is another technique which does.

Premium Chessgames Member
  Phony Benoni: <Zanzibar> Yes, the latter approach is more difficult, if not impossible, if byes are involved. Since byes may be assigned in such a way as to equalized color allocation, vital clues are not available.

If that is the case, you have to hope for more information. For example, since the "bye" is assigned a pairing number like anybody else, you may be able to deduce that from other clues.

Quite often, the bye will be the largest number in the field (this produces the "equalization" effect). You can try assuming the bye has that number and see if every thing falls into place, but that's still an assumption rather than a certainty.

But, if I haven't made this clear before, none of this is infallible at any time. There are different pairing systems, even different Berger tables. They are even tournaments, such as Hastings 1895 or New York 1924, when rounds were played in random order.

This little tool works best if yo already have some information, but also some blanks. It can fill in a large number of blanks, but isn't perfect. I think it can be a valuable aid, but it's not an all-purpose technique.

Premium Chessgames Member
  zanzibar: Thanks <Phony>.

I understand the cautions - after all, as you point out, there's no assurance that the "official" Berger tables were used for historical tournaments.

In fact, I started my recent explorations using the wiki algorithm - which is much easier to implement than the FIDE algorithm. So yes indeed, there's many a possible table for a RR.

* * * * *

Also, I was wrong about byes losing information. For an individual round, that's true. But as you point out, the players have a color asymmetry over the entire tournament which can be used to give the color of bye.

* * * * *

I'm trying to solve the general case, where an entire tournament is scheduled with the FIDE Berger tables(*) but none of the games have a round number.

Can the games be sorted into rounds?

It's just a challenge for some idle moments, but I think it might be fun to try to crack.

I'm trying to do it heuristically, of course, and not formally (via mathematical proof).

Right now it looks like it might be possible to solve by looking at color correlations. Isn't it true that players 1 and N can be identified as having the most games with the same color.

That's about as far as I've gotten.

* * * * *

(*) By the way, I wonder if the USCF uses a variant of the Berger tables. I see mention of Cranshaw-Berger and Porter-Cranshaw-Berger tables.

I should check out the USCF Official Rules book from the library.

Premium Chessgames Member
  Phony Benoni: <zanzibar> In the Standard Berger tables, if "N" is the total number of players and there is an even number overall:

(1) Player 1 through N/2 start with white and receive an extra White overall. Player N/2 always alternates, while the others get two Whites in a row at some point.

(2) Players (n/2)+1 through N start with Black, and get an extra Black overall. Player N always alternates, while the others get two Blacks in a row at some point.

So, in a 16-player tournament, #1-8 get an extra White, and #8 always alternate; #9-16 get an extra Black, and #16 always alternates.

I dealt mostly with older tournaments such as the USSR Championships which used Standard Berger, and haven't looked at other systems.

I am sure this should be easily programmable, at least in principle. Dealing with variations, of co8urse, would complicate matters.

Premium Chessgames Member
  zanzibar: I have to admit this is a little tougher than I first thought!

Thanks for the pointers... clearly I have some homework to do.

Premium Chessgames Member
  zanzibar: There's a series of 10-RR's from <Margate (1935-1939)>.

They seem to all use a non-standard (i.e. non-Berger) scheduling table for the 10-players.

For instance, there is one player who gets 2w, 2b, 2w, 3b for colors. All the other players get the more usual alternating colors with maybe one repeat.

Using this unique player as player one allows enumeration of the other players. From then I determined this pairing-schedule:


Margate = {

1: [ (1,10), (5,6), (7,4), (3,8), (9,2) ],

2: [ (1,2), (4,9), (6,7), (8,5), (10,3) ],

3: [ (3,1), (2,4), (5,10), (9,6), (7,8) ],

4: [ (4,1), (3,5), (6,2), (8,9), (10,7) ],

5: [ (1,5), (2,8), (7,3), (4,6), (9,10) ],

6: [ (1,6), (3,9), (5,7), (8,4), (10,2) ],

7: [ (7,1), (2,3), (4,10), (6,8), (9,5) ],

8: [ (8,1), (3,4), (5,2), (7,9), (10,6) ],

9: [ (9,1), (2,7), (4,5), (6,3), (8,10) ]



* * * * *

Does anybody have experience with this kind of table? Is their a better presentation (enumeration) which makes the pattern more obvious?

I'm wondering how to generalize this schedule for an arbitrary number of players.

Premium Chessgames Member
  Phony Benoni: <zanzibar> Seeing that reminds me of something.

Back in the days when I played in Speed tournaments (yes, that long ago), we had a simple system for making pairings quickly. One player, the pivot, was seated in a corner of the table and never moved. The other players, after each round, would move one seat to the right. If they reached the pivot chair, they would go around the corner the to first seat on the other side.

So the movement looked like this (Player #1 is the pivot):

<Round 1>
1 2 3 4 5
10 9 8 7 6

<Round 2>
1 3 4 5 6
2 10 9 8 7

<Round 3>
1 4 5 6 7
3 2 10 9 8

<Round 4>
1 5 6 7 8
4 3 2 10 9

<Round 5>
1 6 7 8 9
5 4 3 2 10

<Round 6>
1 7 8 9 10
6 5 4 3 2

<Round 7>
1 8 9 10 2
7 6 5 4 3

<Round 8>
1 9 10 2 3
8 7 6 5 4

<Round 9>
1 10 2 3 4
9 8 7 6 5

Which duplicates your Margate observation.

Now, there must be some pattern to the color allocation I haven't figured out yet. OUr speed tournaments were generally double round robin, so that didn't matter. But this is a quick and uncomplicated alternative way to determine the basic pairings

Premium Chessgames Member
  zanzibar: <Phony> very good work. Yes, that is the pattern.

I missed it, properly because of the non-standard color pattern.

With you observation I think I can generalize the pattern as follows:

Player 1 is the pivot, players are numbered clockwise (cw) and rotate counter-clockwise (ccw).

Player 1's colors are 2w, 2b, 2w, ...., 2w, 3b

For all other tables, colors are flipped for each round for every other table (always the same tables, e.g. table's 2 and 4: e.g. R1 (9,2) & (7,4), R2 (10,3) & (8,5), etc.)

Now, the question is, besides Margate, are there other tournaments utilizing Table 1 pivoting?

Premium Chessgames Member
  RonB52734: <zanzibar> <Mr. Benoni> This looks not unlike the way duplicate bridge tournaments are handled.
Premium Chessgames Member
  offramp: Duplicate post detected!
Premium Chessgames Member
  technical draw: Yes but the post was vulnerable.
Premium Chessgames Member
  TheFocus: I tried to hire a librarian. Unfortunately, they're all booked.
Premium Chessgames Member
  crawfb5: So you had to settle for a page?
Premium Chessgames Member
  TheFocus: Yes, a delightful young lady named Paige!
Premium Chessgames Member
  zanzibar: OK, this is technical, so I'll put it here.

How to handle <Vienna (1873)>?

Well, the games must go into a standard PGN, with stubs for the forfeited games. But the scores there don't reflect the scoring actually used in the tournament.

Each pairing is a best of three match. That is, at most three games played, where a match is won with two decisive game wins.

On the other hand, a match can be drawn by 1/2-1/2-1/2 or any 0-1-1/2 permutations.

The rounds are notated as Rn.m where n runs over the pairings (1-11), and m over the match games (1-3).

A won match is scored as one point, a drawn match by 1/2.

So, given the games, I just created a stub for each match pairing. The color used mirrors the first game in a match colors.

The stub comment then records the match record of whoever is White. Black's scoring is simply the compliment. The actual individual games have the usual alternating colors, in the modern style.

I'll show even more details in a blog post later.

Premium Chessgames Member

click for larger view

Jump to page #   (enter # from 1 to 16)
search thread:   
< Earlier Kibitzing  · PAGE 16 OF 16 ·  Later Kibitzing>

Take the Premium Membership Tour
NOTE: You need to pick a username and password to post a reply. Getting your account takes less than a minute, totally anonymous, and 100% free--plus, it entitles you to features otherwise unavailable. Pick your username now and join the chessgames community!
If you already have an account, you should login now.
Please observe our posting guidelines:
  1. No obscene, racist, sexist, or profane language.
  2. No spamming, advertising, or duplicating posts.
  3. No personal attacks against other members.
  4. Nothing in violation of United States law.
  5. No posting personal information of members.
Blow the Whistle See something that violates our rules? Blow the whistle and inform an administrator.

NOTE: Keep all discussion on the topic of this page. This forum is for this specific user and nothing else. If you want to discuss chess in general, or this site, you might try the Kibitzer's Café.
Messages posted by Chessgames members do not necessarily represent the views of, its employees, or sponsors.

You are not logged in to
If you need an account, register now;
it's quick, anonymous, and free!
If you already have an account, click here to sign-in.

View another user profile:

home | about | login | logout | F.A.Q. | your profile | preferences | Premium Membership | Kibitzer's Café | Biographer's Bistro | new kibitzing | chessforums | Tournament Index | Player Directory | World Chess Championships | Opening Explorer | Guess the Move | Game Collections | ChessBookie Game | Chessgames Challenge | Store | privacy notice | advertising | contact us
Copyright 2001-2017, Chessgames Services LLC