Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: When PGN goes wrong? My list of the 18 most common PGN sins

Author: Richard A. Fowell

Date: 02:23:01 10/19/00

Go up one level in this thread


> My conclusion from your list is the PGN standard is poorly designed. It lacks
> flexibility and makes outright bad decisions. It is obvious that some of the
> reasons for the variations are that there are *good* reasons to vary.

While there are certainly items in the PGN specification that I would think
might have been nicer done differently, I feel that, like the QWERTY keyboard,
sometimes the only practical thing to do is to make a bad decision and stick
with it.

The fact that there are many "PGN sins" visible out there might give the
impression that there is not agreement on the standard. That would be a
misperception. The fact that I only found 18 worth commenting on is an
astounding victory for standardization. Consider that there are dozens of
rules in the PGN standard, and dozens of programs creating PGN. Any given
PGN "sin" (save for shortened line wrap) is performed by a small percentage
of programs.

Since most programs do not commit any particular one of these "sins", any
programmer that thinks their pet "sin" is the "right" thing to do is
definitely in the minority. And by sticking to their "sin", they are
putting yet another burden on the majority - they have added one more
variation that some user of every program is likely to run into at some
point, and make the user unhappy with the their program if it will not
read it. If you had 100 programmers, each of whom violated only one PGN
feature, then each programmer would have to handle something like 50
PGN variations (plus the standard itself) for all programs to be
cross-compatible.

If you want nicer output - why not create a separate, optional,
non-default view for this (call it "text format", for example), and
keep your "PGN output" for communication with other software strictly standard.

For example, while MacChess provides an "Export PGN" option, it also
provides a "save text as colums", "save text as rows", and "save game"
option (the latter is a private binary format). "Save text as columns"
looks like:

White: Topalov, V
Black: Anand, V
B00 King's Pawn Game: B10 Caro-Kann: B12 Caro-Kann: B17 Steinitz Variation
  1. e4        c6
  2. d4        d5
  3. Nd2       dxe4
  4. Nxe4      Nd7
  5. Ng5       e6
  6. Bd3       Ngf6
  7. N1f3      Bd6
     ... ...

"Save Text as rows" could produce multi-columnar text, as:

White: Topalov, V
Black: Anand, V
B00 King's Pawn Game: B10 Caro-Kann: B12 Caro-Kann: B17 Steinitz Variation
  1. e4    c6    2. d4      d5    3. Nd2     dxe4    4. Nxe4      Nd7
  5. Ng5   e6    6. Bd3     Ngf6  7. N1f3    Bd6

-Richard



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.