Пояснення
EPD означає Extended Position Description. Рядок EPD починається з чотирьох полів, що описують розташування фігур, сторону, чия черга ходити, , які показують, чи кожна сторона ще зберігає спеціальний хід за участю короля й тури, та . Після них можуть бути операції EPD, що додають до позиції інструкції або додаткову інформацію.
Кожна операція містить opcode, тобто коротку назву, яка визначає її значення, а після неї нуль або більше операндів, тобто значень операції. Вона завжди завершується крапкою з комою. У id "test-001"; id є opcode, а рядок у лапках є операндом. Кілька операцій розділяються одним пробілом.
Стандартизовані opcode охоплюють такі завдання, як ідентифікація позиції, пропонування найкращих ходів, позначення ходів, яких слід уникати, збереження прогнозованого варіанта або додавання коментарів. Програма, що не розпізнає opcode, повинна ігнорувати цю операцію, а не відхиляти весь рядок. Завдяки такій розширюваності той самий базовий опис позиції можна використовувати в наборах тестів, аналізі та обміні між програмами.
Використання й контекст
EPD використовують переважно для колекцій позицій, тестів , програм, що аналізують позиції, і завдань, у яких кожна позиція потребує структурованих даних на додачу до стану дошки.
Поширені непорозуміння
Операція і поле позиції
Перші чотири поля описують стан, потрібний для продовження гри з позиції. Подальші операції додають мітки, відповіді або інструкції.
Opcode і операнд
Opcode визначає вид наступних даних. Операнд містить конкретне значення цих даних.
Джерела
- 1.Standard: Portable Game Notation Specification and Implementation Guide, Steven J. Edwards / ChessGML
- 2.Core, python-chess 1.11.2 documentation
