Explication
EPD signifie Extended Position Description. Une ligne EPD commence par quatre champs décrivant les pièces, le camp au trait, les , qui indiquent si chaque camp conserve encore le coup spécial impliquant son roi et une tour, ainsi que la . Elle peut ensuite contenir des opérations EPD qui associent des instructions ou des informations supplémentaires à cette position.
Chaque opération contient un opcode, c'est-à-dire un nom court qui en indique la signification, suivi de zéro ou plusieurs opérandes, qui sont les valeurs de l'opération. Elle se termine toujours par un point-virgule. Dans id "test-001";, id est l'opcode et la chaîne entre guillemets est l'opérande. Plusieurs opérations sont séparées par un espace.
Les opcodes normalisés couvrent des tâches telles que l'identification de la position, la proposition des meilleurs coups, le signalement de coups à éviter, l'enregistrement d'une variante prévue ou l'ajout de commentaires. Un logiciel qui ne reconnaît pas un opcode doit ignorer cette opération plutôt que rejeter toute la ligne. Cette extensibilité permet à la même description de position de base de servir dans des suites de tests, des analyses et des échanges entre programmes.
Usage et contexte
EPD sert principalement aux collections de positions, aux tests de , programmes qui analysent les positions, et aux tâches où chaque position nécessite des données structurées en plus de l'état de l'échiquier.
Confusions fréquentes
Opération et champ de position
Les quatre premiers champs décrivent l'état nécessaire pour jouer à partir de la position. Les opérations suivantes ajoutent des étiquettes, des réponses ou des instructions.
Opcode et opérande
L'opcode indique le type de donnée qui suit. L'opérande fournit la valeur précise de cette donnée.
Sources
- 1.Standard: Portable Game Notation Specification and Implementation Guide, Steven J. Edwards / ChessGML
- 2.Core, python-chess 1.11.2 documentation
