On the pm opcode, I use it in a non-standard way.sje wrote:The en passant target square will always be "-" except when at least one en passant capture is available.Dann Corbit wrote:Two suggestions for the update of the EPD specification:sje wrote:I need to finish the update of the EPD specification.
1. No useless e.p. tags. (I would suggest that even in the case where there is a vulnerable pawn but the attacker is pinned, the e.p. flag does not get set). In any case, if there is no attacker, do not set any e.p. flag.
2. Change the meaning of pm. To echo the first node of the pv does not seem to have any value for me. I use pm as a list of predicted moves (I also generally include an indication of their probability with a comment of some sort).
The old pm opcode has been deprecated. Instead, from the pv field (if present), use its first move (if present). The reason for this is to avoid having the same data appear twice and so eliminate the chance of a mismatch. Also, the old pm opcode would only specify a single move and not a set of moves. To specify a set of best moves, use the bm opcode which takes zero or more move operands.
Consider:
[d]2kr1b1r/pb3p2/5P2/1qnp4/Npp5/4B1P1/1P3PBP/R2Q1RK1 w - -
2kr1b1r/pb3p2/5P2/1qnp4/Npp5/4B1P1/1P3PBP/R2Q1RK1 w - - acd 31; acs 1896; bm Nxc5; c3 "Qg4+"; cce -131; ce 129; pm Qg4+ {151} Nxc5 {23} Bd4 {1}; pv Nxc5 Bxc5 Qg4+ Kb8 Qf4+ Ka8 Qc7 Rc8 Qxf7 Rhf8 Qg7 Rg8 Qh7 Rh8 Qf5 d4 Bg5 Bxg2 Kxg2 c3 h4 Qb7+ f3 Qh7 Qe4+ Qb7 Rad1 Rhe8 Qd3 b3 bxc3 dxc3 Qxc3 Re2+ Kh1 Rc2 Qd3 Bf2 Kg2 Be3+ Kh3; white_wins 46; black_wins 94; draws 23;
As you can see, black has a big advantage for this position, if I play the usual move Qg4+ (most books will have this). But Nxc5 gives a clear advantage for white.
This is very useful for me.
I also added some other obviously non-standard tags for my own usage.
A predicted move is not necessarily a best move (often, I know for certain that the most likely move to be played is a losing move and one of the less likely moves is a winning move). In the above row, the pm does not match the first move of the pv. But I will predict that it is likely to be played, because it is a book opening.
If we do not use pm for this, I would create my own tag for that purpose. The utility is obvious. (E.g. cce is calculated centipawn evaluation as composed from win/loss/draw statistics. If this disagrees with the ce value, then it is something to investigate. The won/loss/drawn stat is also helpful for me.)
In fact, the very best book moves are those that the opponent is probably going to make the wrong choice (if I know the better alternative).
