Spiegazione
EPD significa Extended Position Description. Una riga EPD inizia con quattro campi che descrivono i pezzi, la parte al tratto, i , che indicano se ciascuna parte conserva la mossa speciale che coinvolge il re e una torre, e la . Può poi includere operazioni EPD che associano istruzioni o informazioni aggiuntive alla posizione.
Ogni operazione contiene un opcode, un nome breve che ne identifica il significato, seguito da zero o più operandi, cioè i valori dell'operazione. Termina sempre con un punto e virgola. In id "test-001";, id è l'opcode e la stringa tra virgolette è l'operando. Più operazioni sono separate da uno spazio.
Gli opcode standardizzati coprono attività quali identificare la posizione, proporre le mosse migliori, indicare mosse da evitare, memorizzare una variante prevista o aggiungere commenti. Un programma che non riconosce un opcode deve ignorare quell'operazione anziché rifiutare l'intera riga. Questa estensibilità permette alla stessa descrizione di base della posizione di servire raccolte di test, analisi e comunicazioni tra programmi.
Uso e contesto
EPD è usato soprattutto per raccolte di posizioni, test di , programmi che analizzano le posizioni, e attività in cui ogni posizione richiede dati strutturati oltre allo stato della scacchiera.
Confusioni comuni
Operazione e campo della posizione
I primi quattro campi descrivono lo stato necessario per giocare dalla posizione. Le operazioni successive aggiungono etichette, risposte o istruzioni.
Opcode e operando
L'opcode indica quale tipo di dato segue. L'operando fornisce il valore specifico di quel dato.
Fonti
- 1.Standard: Portable Game Notation Specification and Implementation Guide, Steven J. Edwards / ChessGML
- 2.Core, python-chess 1.11.2 documentation
