hgm wrote:PGN is awful, because it uses SAN for the moves. To interpret SAN requires knowledge of the game rules. For broadcasting games in WinBoard I already switched to a different format, based on long-algebraic notation.
Normal long-algebraic is not enough if moves can have side-effects though: for en-passant capture you need to know that you're not just moving the one pawn, but also removing a pawn from another square. For castling, you need to know that you're not just moving the king but also the rook. So you still need to know the rules of the game, unless you would store the full board change.
I do agree that PGN would be easier to parse (for a computer) if it used long algebraic notation though. I do hate reading long algebraic myself, however, but that's not much of a concern: I find it easier to interpret a plot than a table too, but that doesn't mean that I want to store my data as a .png file depicting the graph.
You could say that XBoard broadcast use 'extended algebraic', where it you are not limited to mentioning two squares, but can mention any even number of them. So
O-O = e1g1h1f1
fxg6 e.p. = f5g5g5g6
The latter makes a detour over all squares it captures as a side effect, which is a technique that can be generally applied for such captures. The from-square can be replaced by a piece name for drop moves, (and possibly an @ to make sure there is no collision between square names and piece names). This can specify any side effect other than disappearing pieces:
I guess this leaves the case where a piece simply diappears (kamikaze or Atomic captures, approaching a Fire Demon in Teniku Shogi). I never broadcasted any of these. You could simply move an empty square on top of the piece, but this looks a bit kludgy, and in encoding the move you would have to look around for empty squares. Perhaps it would be better to allow the 'drop' of an empty square, as @@<toSqr>. So
Bg5xf6 = g5f6@@f6 (kamikaze capture)
This offers of course an alternative way to denote side-effect captures:
Yes, time to have a new protocol. PGN is out-dated and has deficiencies.
With PGN you cannot export games from ChessBase or Scidb accurately, both applications are using pre-move and post-move comments, and Scidb supports leading and trailing comments inside a game. No way to export a ChessBase game and to import it correctly in Scidb via PGN, the information where the comment belongs is lost. Furthermore it is not possible to export formatting information (bold, underlined, italic), used in Scidb.
Scidb supports hyperlinks and game links inside a game, no way to export this appropriately to PGN.
PGN is even not well tested, how do you export a comment which contains the characters "{" or "}" without a string change?
PGN does not support meta data appropriately, for example board markers (like arrows) or move/clock time. These [%eval] and [%emt] constructs are only work-arounds for deficiencies, not user friendly.
PGN does not know game results like 0:0 (both players did not play for example). And some more result types would be appreciated.
Originally PGN is limited to Latin-1, but nowadays Unicode is widespread used.
It would be fine if a format is not limited to the English chess set (KQRBNP).
By the way: I'm not a fan of long algebraic notation inside a text format, the problem with PGN files (and other text formats) is the size of the file (even if zipped), the file size would grow much with LAN.
9.8.1: Tag: Termination
This takes a string that describes the reason for the conclusion of the game.
While the Result tag gives the result of the game, it does not provide any
extra information and so the Termination tag is defined for this purpose.
Strings that may appear as Termination tag values:
* "abandoned": abandoned game.
* "adjudication": result due to third party adjudication process.
* "death": losing player called to greater things, one hopes.
* "emergency": game concluded due to unforeseen circumstances.
* "normal": game terminated in a normal fashion.
* "rules infraction": administrative forfeit due to losing player's failure to
observe either the Laws of Chess or the event regulations.
* "time forfeit": loss due to losing player's failure to meet time control
requirements.
* "unterminated": game not terminated.
gcramer wrote:Yes, time to have a new protocol. PGN is out-dated and has deficiencies.
I disagree with the second part of the sentence, but I fully agree with the first part. In the sense that, if you really need something more than what PGN can do today, then you should create a completely new format (xml comes to mind) rather than patch PGN. For my own experience PGN is fit for most common used tasks.