Explicație
EPD înseamnă Extended Position Description. O linie EPD începe cu patru câmpuri care indică piesele, partea la mutare, , care arată dacă fiecare parte mai poate efectua mutarea specială ce combină regele și un turn, și . După acestea poate include operații EPD pentru asocierea unor instrucțiuni sau informații suplimentare cu poziția.
Fiecare operație conține un opcode, adică un nume scurt care îi identifică sensul, urmat de zero sau mai mulți operanzi, care sunt valorile operației. Se încheie întotdeauna cu punct și virgulă. În id "test-001";, id este opcode-ul, iar șirul dintre ghilimele este operandul. Dacă există mai multe operații, ele sunt separate printr-un spațiu.
Opcode-urile standardizate acoperă utilizări precum identificarea poziției, propunerea celor mai bune mutări, marcarea mutărilor care trebuie evitate, păstrarea unei variante intenționate sau adăugarea comentariilor. Un program care nu recunoaște un opcode trebuie să ignore operația respectivă în loc să considere invalidă întreaga linie. Această extensibilitate permite folosirea aceleiași descrieri de bază a poziției în seturi de teste, analize și schimburi între programe.
Utilizare și context
EPD este folosit mai ales pentru colecții de poziții, testarea , adică a programelor care analizează poziții, și sarcini în care fiecare poziție necesită date structurate pe lângă tablă.
Confuzii frecvente
Operație și câmp de poziție
Primele patru câmpuri descriu starea necesară pentru a juca din poziție. Operațiile ulterioare adaugă etichete, răspunsuri sau instrucțiuni.
Opcode și operand
Opcode-ul spune ce tip de date urmează. Operandul conține valoarea concretă a acelor date.
Surse
- 1.Standard: Portable Game Notation Specification and Implementation Guide, Steven J. Edwards / ChessGML
- 2.Core, python-chess 1.11.2 documentation
