H. G. Muller wrote on Tue, Oct 7, 2008 08:38 AM UTC:
About FEN standardization:
I agree with most of what Fergus says. The purpose of a FEN is to express
the game state, not describe the game.
I would not be against having the FEN unambiguously desrcibe the board,
though. So I would like to outlaw 'sloppy' FENs, which do not fill out
the ranks completely, and use the rank-separator '/' to imply the rest
of the rank is empty. This would only invite undetectable errors.
Preferably a FEN reader should be able, once it knows the variant, to
detect omissions or spurious characters in the FEN.
I would also like to fix the use of various types of parentheses: The
brackets [] should preferably be reserved for delimiting an optional
holdings field in the FEN, for games with piece drops like Crazyhouse and
Shogi. For delimiting multi-character piece names, we coud use braces {}
to delimit arbitrary names referring to the legend, like {griffon} or
{Griffon}. The first letter decides if the piece is white or black,
through being upper or lower case, respectively. Upper and lower case in
the rest of the name are at the disposal the creator of the legend to
enhance readaility, e.g. {MurrayLion}, {highPriestess}. Normal parentheses
() I would like to reserve for delimiting fully descriptive piece
indications, like (BN), according to some nearly universal
(variant-independent) notation similar to Betza notation.
The Cannon indeed seems to have the strongest claim on the letter C
(altough most people call it Pao...). But we should not be blind to
reality. Any 'standard' that will not allow Chancellor to be indicated
by C in Capablanca-type variants is still-born. Too many people and too
much software World wide is already using the FENs with the C in it. So a
standard that outlaws this might as well be referred to the garbage bin
immediately. The most reasonable compromise that makes the standard viable
seems to be the use of board-width dependent defaults, and predefine A=(BN)
and C=(RN) on a 10-wide board. This hurts no one: variants that name these
pieces differently can simply use (BN) and (RN), and are off no worse than
they would have been when A and C were not predefined.
Actually we might even go a step further, and allow the variant-specific
legend to define any one-letter code as it pleases, just as it can define
multi-letter piece names. I am not even sure if there would be any reason
to protect the letters for the orthodox Chess pieces from redefinition.
The FEN reader could always look in the legend first to see what a letter
means. If the letter is not listed, the defaut meaning (if any) would
apply. If there is also no default in force, we have a FEN syntax error.