Long algebraic notation-piece promotion I am building a chess engine with the use of Artificial Intelligence, and I am almost done as long as the AI and the internal game mechanics are concerned.
Currently I am training the AI and I want to get it to play with as many other AIs as possible. As I was searching, I came across the Arena interface which makes possible exactly what I want.
So I began to modify my engine to meet the specifications required for this to work and here is where my question lies. To be more specific, Arena uses the UCI protocol to make two engines communicate.
In the UCI protocol, the move format is in long algebraic notation. I would like to know how exactly long algebraic notation differs from algebraic notation, and more specifically how pawn promotion is represented.
Most games published for human study are written in short algebraic notation.  For each move, the destination square is always specified, the moving piece is specified unless it's a pawn (in which case the origin file is specified for captures only), and if there's any ambiguity the origin rank and/or file is given to resolve it.  Captures are indicated by inserting 'x' before the destination square.  Promotion is indicated using eg. &quot;=Q&quot; suffix.  Additional suffixes are used to indicate check, mate, and move quality.
Long algebraic notation is just like the above, except that the origin square is always exactly specified, and usually a '-' is inserted in place of the 'x' for non-captures.  So Re1 might become Ra1-e1.  The same suffixes are used, and castling is still specified using O-O type notation.
English descriptive notation is somewhat more arcane, and may specify only the piece identities if the resulting move is unambiguous, eg. RxB.  It is now considered obsolete, though you might find it in old literature.  I don't think it is used in any engine protocols.  The same goes for foreign-language piece name abbreviations, eg. German chess uses Springer (S) instead of Knight (N).
The UCI protocol uses none of the above notations, but merely specifies the origin and destination squares; the only suffix is a single letter to disambiguate pawn promotions.  So exd8=N in short algebraic would become e7xd8=N in long algebraic, but e7d8n in UCI (all in lowercase).  Castling is specified by moving the king two spaces (in standard chess) or onto the corresponding rook (in 960) instead of in shorthand notation.