解説
PGNはPortable Game Notationの略で、チェスの対局を保存し交換するために設計されたテキスト形式です。通常のテキストとして開けますが、プログラム、サイト、データベースが対局を再現できる構造を持ちます。
PGN対局の2つの部分
- タグ部にはEvent、Site、Date、Round、White、Black、Resultなどの情報を角括弧内に記します。この7タグがアーカイブ用の基本セットです。
- 着手部には手数番号、の着手、任意のコメント、変化手順、最後の結果記号を記します。
コメントは通常波括弧内に置きます。代替変化手順は丸括弧内に置き、その中に別の変化手順も含められます。短い評価は、$と数字からなるNAGとして保存できます。一つの.pgnファイルに、一局または区切られた複数局を含められます。
PGNは盤の一瞬の状態だけでなく、対局全体または変化手順の木を記録します。初期配置以外から始まる場合は、SetUpタグとタグで開始局面を示せます。FEN単体は局面を表し、そこへ至る着手履歴は表しません。
PGNではないもの
PGNはエンジンが思考したりインターフェースと通信したりするためのプロトコルではありません。などのプロトコルはプログラム間で命令を交換し、PGNは対局記録を交換します。また、すべてのプログラムが同じ拡張を受け入れる保証はないため、互換性の高いファイルは標準構造に従い合法手を使います。
末尾の結果記号は1-0、0-1、1/2-1/2、*のいずれかで、ヘッダーのResultタグと一致する必要があります。アスタリスクは対局が進行中または最終結果がない場合に使います。
よくある混同
PGNとFEN
PGNは対局とメタデータを保存し、FENは開始時または途中の一局面を表します。
PGNとUCI
PGNは対局記録形式、UCIはエンジン通信プロトコルです。
出典
- 1.Portable Game Notation Specification and Implementation Guide, Steven J. Edwards
- 2.PGN parsing and writing, python-chess
