解説
EPDはExtended Position Descriptionの略です。EPDの1行は、駒配置、手番、各陣営がキングとルークを動かす特別な手を行う権利をまだ持つかを示す権、そしてを表す4つのフィールドから始まります。その後にEPDオペレーションを加え、その局面へ指示や追加情報を関連付けられます。
各オペレーションは、意味を識別する短い名前であるopcodeと、その後に続く0個以上のoperand、つまりオペレーションの値で構成されます。末尾には必ずセミコロンが付きます。id "test-001";では、idがopcodeで、引用符内の文字列がoperandです。複数のオペレーションは1個の空白で区切ります。
標準化されたopcodeには、局面の識別、最善手の提示、避けるべき手の指定、予想変化の保存、コメント追加などの用途があります。認識できないopcodeがあっても、ソフトウェアは行全体を無効とせず、そのオペレーションだけを無視すべきです。この拡張性により、同じ基本局面記述をテストスイート、解析、プログラム間通信に利用できます。
用法と背景
EPDは主に局面集、のテスト、局面解析プログラム、盤面状態に加えて各局面へ構造化データを付ける必要がある作業で使われます。
よくある混同
オペレーションと局面フィールド
最初の4フィールドは、その局面からプレーするために必要な状態を表します。後続のオペレーションはラベル、解答、指示を追加します。
opcodeとoperand
opcodeは後に続くデータの種類を示し、operandはその具体的な値を与えます。
出典
- 1.Standard: Portable Game Notation Specification and Implementation Guide, Steven J. Edwards / ChessGML
- 2.Core, python-chess 1.11.2 documentation
