25 June 2015

Origin of PGN

Anyone who collects computerized chess games knows the importance of Portable Game Notation (PGN). In The Rise of Internet Chess, I included it as the third major topic:-

It may seem unusual to include PGN in an account of Internet chess. The moves of a chess game are easy to digitalize, and the Internet made the data easy to transfer. Before PGN, every chess software vendor had a different way of encoding chess data. PGN, developed in 1993 by Steven J. Edwards, was discussed and disseminated via rec.games.chess (rgc). It became an immediate success because, as a readable text format, it satisfied the needs of people as well as of computers.

My recent post, Early Chess Newsgroups, motivated me to take another look at the birth of PGN, 'developed in 1993 by Steven J. Edwards'. The work started in 1992, and is documented in a series of rgc posts written by Edwards himself. The PGN development was preceded by work on other aspects of chess transmission by digital encoding. • New and improved SAN Kit chess source kit available (September 1992):-

The SAN Kit is designed to help chess software efforts by providing common routines for move notation I/O, move generation, move execution, and various useful position manipulation services. [...] Acronyms:

SAN: Standard Algebraic Notation. This is a notational system for recording chess moves based upon the FIDE Laws of Chess used worldwide. It is the same as FAN (Figurine Algebraic Notation) except that ASCII piece letters are substituted for piece figurines. [...]

FEN: Forsyth-Edwards Notation. While SAN is used for universal move representation, FEN is used to describe a position. It is based on the 19th century Forsyth system used in the United Kingdom with some extensions of my own for giving extra information about a position. This extra information includes: the active color, the castling availability (if any), the en passant target square (if any), the count of halfmoves since the last irreversible move, and the fullmove number. [...]

ICC: Intermachine Chess Communication. This is a standard for linking various chess software programs together. It is both a language and a communication protocol that will allow simplified communication among chessplaying programs, chess position repositories, chess opening libraries, and human interface systems. Using SAN and FEN, the ICC standard will be both easily readable by humans and machines. [...]

The PGN work followed shortly. It coincided with the 1992 Fischer - Spassky Rematch, aka FS II. • PGN: FS II games 1..23 in proposed ASCII portable format (November 1992):-

The SAN Kit currently has source code support for both SAN (Standard Algebraic Notation) representing chess moves and FEN (Forsyth-Edwards Notation) representing chess positions. The current direction of the work is towards developing a standard, portable representation for entire games (and lists of games). Unless someone comes up with something better, I'm going to call this yet to be fully developed scheme PGN (Portable Game Notation). There are four main goals for the PGN design:

1) The design should be reasonably complete [...]
2) The design should be truly portable [...]
3) The design should be intelligible by humans without extensive training in deciphering [...]
4) The design should be intelligible by computer programs without extensive coding effort [...]

The following list in PGN gives the first twenty three games of the Fischer-Spassky II match.

Those 23 games were given in a format remarkably similar to the PGN used today. The most important difference was the lack of a '[Result]' tag. Here are two more rgc posts by Edwards from the end of 1992, documenting the progress of the standard.

Over the next months, Edwards and other rgc users provided files of games in PGN format. A formal specification was issued at the end of the following year.

Discussions of the standard continued until the end of the year. In 1994 PGN use increased dramatically, making it the dominant method of transmitting chess game scores. I'll cover that evolution in a future post.

No comments: