CTL-PGN: Format d'intercanvi
El format CTL-PGN enriqueix la CTL-AN, notació algebraica, incorporant metainformació, informació de la partida, de manera semblant a com el format PGN (Portable Game Notation) enriqueix la SAN (Standard Algebraic Notation), i seguint un format similar.
La funcionalitat principal del format PGN és establir un format per a permetre l'intercanvi d'informació. Ho fa fent servir fitxers de text pla, enriquint la notació algebraica amb metainformació de tres maneres diferents:
- Metadades classificades en etiquetes, informació referent a la partida. Cada etiqueta té un identificador i un valor en un format específic, fixat d'acord amb el tipus de valor que es representa.
- Comentaris lliures que s'intercalen en la notació algebraica.
- Variacions, jugades alternatives als moviments de la partida principal, amb finalitat didàctica.
Totes tres característiques es troben també incorporades en CTL-PGN, que introdueix alguns canvis subtils respecte al format PGN, principalment per l'adopció de la notació CTL-AN. Ja s'han vist algunes diferències de la notació CTL-AN amb la notació SAN, algunes relatives, en realitat, al format en medis informàtics, com és el cas del símbol ×, remplaçable per un asterisc *, però mai per la lletra x; també és destacable el format de data, ajustat als estàndards, que fan servir el guionet com a separació, i sempre començant amb els quatre digits de l'any. Els fitxers, donat que tots els sistemes de fitxers ja s'admeten extensions de més de tres caràcters, faran servir l'extensió .ctl-pgn
en el nom.Una etiqueta s'escriu en una linia, entre claudàtors [ ... ]
, i conté una paraula identificador de l'etiqueta, seguit d'un text entre cometes
, que és el valor de l'etiqueta.Etiqueta inicial de la variant
Tot registre CTL-PGN sempre ha de començar amb l'etiqueta Variant, fent servir el valor C'escacs per a l'etiqueta; és l'etiqueta inicial:
[Variant "C'escacs"]
Es dona el cas que en l'aplicació que permet provar posicions de C'escacs s'inclou una opció que denomina Grand C'escacs. Per a aquesta variant, fariem servir una etiqueta diferent:
[Variant "Grand C'escacs"]
Però no es generen fitxers PGN de Grand C'escacs, doncs és experimental.
Etiquetes per al registre d'una partida
Si es vol registar una partida, després de l'etiqueta inicial, es requereixen les set etiquetes obligatòries PGN (en total vuit, comptant la inicial obligatòria), que presenten alguna subtil variació. L'ordre d'aquestes etiquetes ha de ser el que aquí es presenta:
- Event Nom de l'esdeveniment; si és desconegut
?
, si no és un esdeveniment organitzat CG
acrònim de Casual Game.[Event "Barcelona Championship"]
[Event "Moià Championship"]
[Event "CG"]
- Site Lloc, en el format
Ciutat, Regió País
, on país és un codi ISO de tres lletres; es pot limitar només a la Regió País
, o senzillament el codi de país. Si tota la localització és desconeguda ?
.[Site "Barcelona, Catalunya ESP"]
[Site "Moià (Barcelona), Catalunya ESP"]
[Site "New York City, NY USA"]
[Site "St. Petersburg RUS"]
- Date Data, en format
any-mes-dia
, amb quatre-dos-dos dígits, fent servir ?
per a cada digit desconegut.[Date "2020-08-15"]
[Date "2010-07-20"]
[Date "2025-??-??"]
[Date "2031-??-??"]
[Date "201?-??-??"]
- Round Per a competicions, però també per a identificar diverses partides d'un mateix encontre; si no és aplicable s'indica amb un guionet (hyphen)
‐
(U+2010), o bé un guió polivalent (hyphen-minus) -
(U+002D).- Quan s'indica l'etiqueta Round s'ha de considerar indicar també l'etiqueta EventDate o MatchDate.
- Es pot requerir indicar diversos números, en competicions, o si es disputen diversos encontres entre dos jugadors el mateix dia; llavors els números es separen amb punts:
- White Jugador amb blanques:
- Cognom(s), i després, separat amb coma i un espai, el nom. Es poden fer servir inicials fent servir la lletra i un punt.
- Si el jugador és desconegut, es fa servir
?
. - Si és un programa informàtic es fa servir el nom, i a continuació la versió.
- Opcionalment pot anar seguida de l'etiqueta WhiteAlias.
- Es pot ometre, si es fa servir l'etiqueta WhiteNA en el seu lloc; llavors l'etiqueta WhiteAlias serà obligatòria per a fer públic el registre.
[White "Ferràs, Jaume"]
[White "Noguera, X."]
[White "Prat, J. A."]
- Black Jugador amb negres, indicat de la mateixa manera que el jugador per l'etiqueta
White
.- Si es fa servir l'etiqueta WhiteAlias, serà la vuitena etiqueta.
- Opcionalment pot anar seguida de l'etiqueta BlackAlias.
- Es pot ometre, si es fa servir l'etiqueta BlackNA en el seu lloc; llavors l'etiqueta BlackAlias serà obligatòria per a fer públic el registre.
[Black "Sasal, Cesc"]
[Black "?"]
- Result resultat de la partida, amb sis diferents valors acceptables:
[Result "3-0"]
Guanyen les blanques.[Result "0-3"]
Guanyen les negres.[Result "1-1"]
Taules.[Result "2-1"]
Les blanques ofeguen el Rei de les negres.[Result "1-2"]
Les negres ofeguen el Rei de les blanques.[Result "*"]
(asterisc) Partida inacabada.
- Serà la novena etiqueta, si es fa servir l'etiqueta WhiteAlias o la BlackAlias, la dècima si es fan servir ambdues.
Etiqueta de registre minimalista
Si no es registra una partida, sinò que es registren moviments per a il·lustrar un concepte, fins i tot en el cas d'una partida típica sobre el paper
, com ara el mat del boig, en comptes de les set etiquetes per al registre de partida, es fa servir l'etiqueta Id, sempre com a segona etiqueta.
Un registre fent servir l'etiqueta Id requerirà també incloure l'etiqueta Annotator identificant l'editor.
Ha de tenir-se present que les partides identificades únicament mitjançant una clau de l'editor no estan pensades per a ser exportades, i tampoc integrades en una base de dades, excepte la pròpia de l'editor.
Tot i això, poden representar partides model d'obertura, que altres partides poden referenciar amb l'etiqueta [model "…"]
.
- Id Com a valor tindrà un identificador format per lletres, números i guions que consistirà en una primera part que identificarà de manera única l'editor (en aquest lloc web es fa servir l'identificador d'editor
Cescacs
), i separat amb un guió, un identificador únic d'aquest editor; L'editor ha d'aparèixer com a primera etiqueta Annotator, que serà la tercera etiqueta, després de l'etiqueta [Variant "C'escacs"]
, i l'etiqueta [Id "…"]
.- Els identificadors d'un editor és convenient que facin servir un número, combinat amb un prefix de classificació:
- O – Opening sample
- C – Opening continuation
- Z – Puzzle
- P – Example
- E – Ending
- M – Middlegame
- X – Refutation (counterexample)
- …
Un cas particular és la lletra A
, per a partides d'un Annotator registrat pel editor. En aquest cas opcionalment n'hi haurà una segona etiqueta Annotator, doncs la primera serà la del editor, i obligatòriament una etiqueta AnnotatorId. El valor numèric de l'AnnotatorId serà el número que seguirà després de la lletra A
, i a continuació un sufix amb un valor únic dins dels d'aquest segon Annotator.
La funcionalitat d'aquestes etiquetes identificatives és el registre d'esborranys creats per un usuari (Annotator), on no consten els jugadors, generalment són partides no finalitzades, i només accessibles per a Annotator; l'equivalència seria:
[Event "CG"]
[Site "?"]
[Round "‐"]
[WhiteNA "Annotator2@Annotator1"] o similar
[BlackNA "Annotator2@Annotator1"] el mateix que WhiteNA
[Result "*"]
L'etiqueta [Date "????-??-??"] s'incorporarà en aquest cas a continuació de l'etiqueta [Id "…"], i en el cas excepcional de ser una partida finalitzada, a continuació podria incorporar l'etiqueta [Result "…"] amb un valor; això relegaria l'etiqueta Annotator a la quarta o cinquena posició.
- També es poden incloure-hi sufixos separant-los amb guions, per a indicar que inclou variacions, per a indicar l'idioma dels comentaris, o per a ambdós motius, sempre acabant amb el sufix de l'idioma, si hi fos.
Un editor només hauria d'incorporar una versió amb variacions, però potser n'hi afegeix noves alternatives o modifica alguna de les existents, identificant la nova versió amb números romans, separats amb un guió a continuació de la lletra V
, que indica la presència de variacions. Aquest mecanisme mai permet l'alteració de la línia principal representada.
Una variació concreta es pot representar linialment, per exemple, per a lectors sense capacitat d'interpretar variacions. Llavors s'indicarà amb una S
a continuació de la lletra V
i de qualsevol indicació de versió en números romans, seguida d'una seqüència de números separats amb dos punts per a indicar la variació que es representa. No és permesa una seqüència de zeros, que seria equivalent a no indicar variacions, que correspon a l'identificador sense la lletra V
.
Exemple: Cescacs-X01-V-ca.
[Id "Cescacs-X01"]
[Id "Cescacs-X01-en"]
[Id "Cescacs-X01-V"]
[Id "Cescacs-X01-V-II"]
[Id "Cescacs-X01-V-ca"]
[Id "Cescacs-X01-V-II-en"]
[Id "Cescacs-X01-V-S:0:1:1-es"]
Etiqueta identificador opcional
- Id L'etiqueta identificador Id també es pot fer servir per a exportar partides anònimament, preservant la identitat dels jugadors, i permet registres de fragments de partides. En aquest cas se incorpora després de les etiquetes que identifiquen la partida, sent llavors la novena etiqueta.
- Es fa servir un identificador únic compartit per totes les partides d'un encontre: un identificador de l'editor, i separat per un guionet (hyphen)
‐
(U+2010), o un guió polivalent (hyphen-minus) -
, un número identificador, que l'editor ha de garantir com a únic. Per a un fragment de partida, a continuació de l'identificador únic, separat per un guionet (hyphen), o un guió polivalent, incorporem un prefix i uns altres números, definint el fragment. Els prefixos que es farien servir en aquests casos serien només:
O
(Opening), sent el número l'últim moviment registrat.C
(Continuation) fent servir una parella de números per al primer i l'últim moviment registrats, separats per un guionet (hyphen) ‐
(U+2010), o un guió polivalent (hyphen-minus) -
. Usualment farà referència a una obertura amb l'etiqueta Model
.M
(Middlegame) Tot i que generalment no referenciarà una obertura, en la pràctica és equivalent a C
E
(Ending) incorporant com a número el moviment des del qual s'inicia el registre.
Es farà servir un ?
, en comptes del número d'inici, si es desconeix el número del primer moviment, però llavors sempre es requereix indicar a continuació el número de moviments registrats, separat per un guionet (hyphen) ‐
(U+2010), o un guió polivalent (hyphen-minus) -
.
S'afegirà al número del primer moviment una b
, si el registre comença amb un moviment de negres. Es pot donar llavors el cas ?b
per al registre del número del primer moviment.
S'afegirà al número de l'últim moviment una w
si el registre acaba en un moviment de blanques que no es el final de la partida.
Un cas específic és la lletra A
, per a partides d'un Annotator registrat pel editor. En aquest cas podem trobar una segona etiqueta Annotator, doncs la primera serà la del editor, que pot ser absent per motius de privacitat, però obligatòriament una etiqueta AnnotatorId, l'identificador que l'editor ha assignat a aquest Annotator; aquest identificador hauria de permetre localitzar la fitxa, on la persona determinarà quines dades són públiques.
Aquesta funcionalitat permet als usuaris registrar partides de jugadors que no es requereix que siguin registrats; un usuari registrat podrà acceptar com a seves partides d'un Annotator, sempre considerant la privacitat.
Altres etiquetes opcionals
- EventDate Data de l'event. Quan es tracta d'un Casual Game (CG) es refereix a la data de l'encontre; és a dir, es pot fer servir en comptes de MatchDate quan [Event "CG"].
- MatchDate Data d'inici de l'encontre. El valor no té sentit si no s'indica un valor per a l'etiqueta Round, i és innecessària quan el valor és el mateix de l'etiqueta Date, per exemple, quan l'etiqueta Round té el valor
1
(o una seqüència de números acabats en el número 1
). - Termination Detall de la finalització; admet els valors:
abandoned
, rules infraction
, time forfeit
i per a jocs indefinidament ajornats: death
o emergency
- Lang Idioma que es fa servir en els comentaris; el valor ha de ser un codi d'idioma ISO 639, de dues lletres (ISO 639-1 alpha-2), o, si es requereix, el codi ISO 639-3 de tres lletres. Ha de coincidir amb el sufix de l'identificador de l'editor, si hi fos.
- Title De manera molt excepcional, una partida pot tenir un nom, i també es podria donar el cas per a situacions d'obertura o de final. S'ha de tenir present que el nom canviarà amb l'idioma dels comentaris, i no és un identificador. S'ha d'evitar assignar gratuïtament un nom, i reservar aquesta etiqueta per a casos realment excepcionals. En tot cas apareixerà després de l'etiqueta Lang.
- Revisited Només en partides model, sense jugadors. El valor indicat serà el identificador d'una partida, també una partida model, sense jugadors. Les possibles funcions d'aquesta etiqueta són:
- Quan l'identificador és del mateix editor: Deixar com a
obsoleta
la línia principal referenciada. - Quan l'identificador és de diferent editor: Publicar una partida d'un altre editor amb modificacions o variacions pròpies del nou editor; comporta reconeixement d'autoria.
- Model Només en partides reals, amb jugadors. El valor indicat serà l'identificador d'una partida model d'obertura.
- Mode Només en partides reals, amb jugadors. Admet els valors:
OTB
(over the board), on line modes: ICS
(internet connection sharing, for chess server) or TC
(telecommunication, for P2P programs), and off line modes: EM
(for electronic mail and any other mail/messenger system) or BBS
(Bulletin Board System, for pasive server, no interactive). - WhiteType, BlackType Només en partides reals, amb jugadors. Admet els valors
human
o program
. - TimeControl Només en partides reals, amb jugadors. Valors:
[TimeControl "?"]
desconegut[TimeControl "-"]
no es fa servir[TimeControl "number1/number2"]
number1 moviments en number2 segons[TimeControl "number"]
number segons en total (sudden death
)[Timecontrol number1+number2]
number1 segons, més number2 segons per cada moviment- [TimeControl "*number"] number segons per moviment; control amb
rellotge d'arena
(sandclock
, hourglass
) - Exemples concrets:
[TimeControl "40/9000"]
40 moviments en 2 hores i ½ (9000 seconds)[TimeControl "4500"]
1 hora i ¼ màxim sudden death
(4500 seconds)[TimeControl "4500+60"]
1 hora i ¼, més un minut per cada moviment[TimeControl "*180"]
tres minuts cada moviment
- WhiteNA, BlackNA network access, permet recollir l'adreça d'email dels jugadors; en un joc anònim poden substituir les etiquetes White i Black, respectivament. Llavors són escrites en la posició corresponent a aquestes, asumint el valor ? per a l'etiqueta substituida; l'exportació del joc generalment no informarà d'aquests valors, per confidencialitat de dades digitals.
- WhiteAlias, BlackAlias Sobrenom, usat com a nom alternatiu del jugador de blanques i de negres, respectivament. Serà obligatori si s'usa l'etiqueta WhiteNA en lloc de l'etiqueta
White
, o BlackNA en lloc de l'etiqueta Black
, per a evitar fer públics els valors WhiteNA / BlackNA. Si es fa servir, s'escriurà a continuació de l'etiqueta White / Black
, i en el seu defecte, a continuació de l'etiqueta WhiteNA / BlackNA
. - Annotator Nom de qui ha registrat i comentat la partida, en el mateix format que el nom dels jugadors; pot haver-hi més d'una etiqueta, una per persona, però totes les etiquetes amb l'identificador
Annotator
han de ser consecutives; el primer ha de ser el responsable del registre de la partida, sent col·laboradors i comentadors afegits a continuació. És una excepció, doncs juntament amb l'etiqueta Example són les úniques etiquetes que es poden repetir.- En les partides amb
[Mode "ICS"]
o [Mode "BBS"]
es farà constar el servidor com a primera etiqueta Annotator
, de la mateixa manera que en el [Mode "TC"]
constarà el programa P2P; Igualment, si la partida s'introdueix amb qualsevol altre programa informàtic capaç d'assistir la introducció de partides de C'escacs, constarà en la primera etiqueta Annotator
. Així, podriem dir que aquesta primera etiqueta Annotator
és obligatòria en tota partida informatitzada. - L'usuari que publica la partida, si es troba reflectit, constarà en una segona etiqueta
Annotator
; només serà la primera quan l'anotació s'ha fet manualment, i quedarà en segon lloc una vegada introduida la partida en un sistema amb capacitat de verificació dels moviments.- Però si un altre programa afegeix posteriorment comentaris automàtics, l'usuari quedaria relegat a la tercera etiqueta
Annotator
; per aquest motiu, en els modes amb servidor ([Mode "ICS"]
o [Mode "BBS"]
) és aconsellable fer servir l'etiqueta AnnotatorId.
- Si un programa diferent del que s'ha fet servir per a la introducció de la partida, afegeix posteriorment comentaris automàtics, apareixerà en la segona etiqueta
Annotator
; és important incloura-la.- Es considera un programa diferent únicament si n'hi ha un canvi en la edició, el número major de la versió. Tot i això, en aquest cas afegir l'etiqueta
Annotator
serà opcional, y poc recomanable si no n'hi ha un gran salt entre versions.
- AnnotatorId Aquesta etiqueta es reserva exclusivament a l'usuari que publica la partida, quan ho fa en un sistema amb servidor (
[Mode "ICS"]
o [Mode "BBS"]
) capaç de vinccular l'usuari amb un identificador únic dins del servidor.Cal tenir present que si no apareix l'etiqueta de qui ha publicat la partida, en la segona etiqueta pot constar qualsevol anotador o col·laborador, però l'etiqueta AnnotatorId és única.
- Example Només en partides model, sense jugadors. El valor indicat serà el identificador d'una partida real, amb jugadors. Aquest identificador es pot repetir per a referenciar un conjunt de partides que segueixen un mateix model, sempre consecutives. L'habitual serà la referència amb l'etiqueta Model, en tant que referenciar amb l'etiqueta Example es reserva per als casos excepcionals, que han donat lloc al model. Només la modificació del model és motiu per afegir noves instàncies de l'etiqueta Example, generalment amb noves variacions.
Etiqueta per a l'ús d'identificadors de peça alternatius
Redefine Permet fer servir lletres d'identificació alternatives per a alguna peça, sempre entre les predefinides. Si n'hi ha una etiqueta PDTL, Redefine ha de ser just l'anterior, doncs s'aplica també al valor de l'etiqueta PDTL; en cas contrari Redefine serà l'última etiqueta.
[Redefine "A@J, C@N, T@R"]
Defineix la lletra A
per a l'Alfil, en comptes de J, la lletra T
per a el Roc (Torre), en comptes de R, i la C
per al Cavall, en comptes de N (Acosta símbols a la tradició del Català, el Castellà i el Italià).[Redefine "B@J, Q@D, W@V"]
Defineix la lletra B
per a l'Alfil, en comptes de J, la lletra Q
per a la Dama (Reina), en comptes de D, i la W
per a la Vibria, en comptes de la V (Acosta símbols a la tradició de l'Anglès).[Redefine "L@J, S@N, T@R, W@V"]
(Acosta símbols a la tradició de l'Alemany).[Redefine "F@J, C@N, T@R, W@V"]
(Acosta símbols a la tradició de l'Francès).[Redefine "FAN"]
Fa servir caràcters Unicode específics per a les peces d'escac, diferents per a blanques i per a negres, en comptes de les lletres identificatives.
Etiqueta de posició inicial
PDTL Permet indicar l'estat inicial de l'hexcaquer per a reprendre una partida, fent servir com a valor una cadena PDTL. Ha de ser l'última etiqueta; l'etiqueta Redefine s'aplica també a la cadena PDTL.
Posició inicial de C'escacs
[PDTL "/28:v/27:dk/26:gjg/25:rnnr/24:pejep/23:ppeepp/22:2pjp2/21:3pp3/20:3p3/8:3P3/7:3PP3/6:2PJP2/5:PPEEPP/4:PEJEP/3:RNNR/2:GJG/1:DK/0:V/ w RKRrkr - 0 1"]
Posició inicial de C'escacs: [Redefine "A@J, T@R", C@N"]
[PDTL "/28:v/27:dk/26:gag/25:tcct/24:peaep/23:ppeepp/22:2pap2/21:3pp3/20:3p3/8:3P3/7:3PP3/6:2PAP2/5:PPEEPP/4:PEAEP/3:TCCT/2:GAG/1:DK/0:V/ w TKTtkt - 0 1"]
Posició inicial de C'escacs: [Redefine "B@J, W@V", Q@D"]
[PDTL "/28:w/27:qk/26:gbg/25:rnnr/24:pebep/23:ppeepp/22:2pbp2/21:3pp3/20:3p3/8:3P3/7:3PP3/6:2PBP2/5:PPEEPP/4:PEBEP/3:RNNR/2:GBG/1:QK/0:W/ w RKRrkr - 0 1"]
Posició inicial de C'escacs: [Redefine "FAN"]
[PDTL "/28:🩒/27:♛♚/26:🩓♝🩓/25:♜♞♞♜/24:♟☗♝☗♟/23:♟♟☗☗♟♟/22:2♟♝♟2/21:3♟♟3/20:3♟3/8:3♙3/7:3♙♙3/6:2♙♗♙2/5:♙♙☖☖♙♙/4:♙☖♗☖♙/3:♖♘♘♖/2:🩐♗🩐/1:♕♔/0:🩏/ w ♖♔♖♜♚♜ - 0 1"]
Les RAV (Recursive Annotation Variation) permeten annotar jugades alternatives; cada alternativa comença amb un parèntesi obert (
. Dins, a continuació, s'escriuen les jugades alternatives, sempre amb el seu número de jugada, i la variació acaba amb el parèntesi tancat )
.Imbrincació
Dins d'una variació es poden definir variacions de la variació, imbrincant una variació dins d'una altra variació. La sintaxi parentitzada permet aquesta imbricació, obrint un nou parèntesi; finalment s'hauran de tancar tants parèntesi com s'hagin obert.Final de variació amb moviment de blanques
Si l'últim moviment de la RAV és un moviment de les blanques, la última jugada inclourà només un moviment, amb el parèntesi tancat )
en comptes de la coma ,
.
Això es generalitza al cas en què només es vol indicar un moviment alternatiu de les blanques, doncs només s'ha d'escriure la mitja jugada, i tancar el parèntesi.
Primer moviment de negres
Quan el primer moviment de la variació és un moviment de les negres, en comptes de copiar el moviment, es pot indicar amb punts suspensius, preferentment amb el caràcter U+2026 …
, però també amb tres punts ...
, abans de la coma ,
.
Això es generalitza al cas en què només es vol indicar un moviment alternatiu de les negres, doncs la mitja jugada es precedirà amb els punts suspensius i la coma … ,
, generalment separats amb un espai.
Moviments
El primer caràcter de la primera jugada d'una variació és un parèntesi, i el número de jugada repeteix l'anterior, però les següents jugades avancen el número, i això les podria confondre amb les jugades de la línia principal.
Precedint el número de jugada, o precedint el parèntesi quan s'inicia una nova variació, es poden incloure qualsevol nombre de punts, que seran ignorats, de la mateixa manera que els espais; els punts permeten assenyalar el nivell d'imbricació, sent els punts més explícits que una senzilla indentació amb espais; en qualsevol cas, ambdues tècniques fan molt més senzilla la lectura de les jugades anotades.
Etiqueta de la variació
Afegir una etiqueta a una variació permet referenciar-la des d'un comentari extern a la variació. L'etiqueta s'escriu tot seguit després del parèntesi, formada per un número entre corxets precedit del símbol dolar ($[1]
. Per a una mateixa jugada poden existir diferents variacions, i les etiquetes assignen un número a cadascuna de les variacions de la jugada.
Els comentaris s'escriuen entre claus { … }
, fent servir línies específicament per aquesta funcionalitat. El caràcter d'obrir clau {
només ha d'aparèixer al començament d'una línia, tot i ser acceptable que sigui precedit per espais en blanc; en aquesta línia comença un comentari, que no poden ser imbrincats, de manera que qualsevol aparició del caràcter de tancar clau }
acabarà el comentari. El caràcter de final de comentari }
ha de ser l'últim de la línia, tot i ser acceptable que vagi seguit per espais en blanc.
Un comentari pot obrir-se i tancar-se en una mateixa línia, però sovint els comentaris s'estendran per múltiples línies; només els comentaris (i les variacions) es poden estendre per múltiples línies, perquè les jugades i les etiquetes queden limitades a una per línia.
Comentaris inici de partida
Els comentaris que s'escriuen abans del primer moviment permeten descriure el context en què es disputa la partida.
Comentaris final de partida
Els comentaris finals s'afegeixen després de la línia de l'indicador final del resultat, una vegada acabades les jugades de la partida.
Aquest és el lloc adequat per fer descripcions de la partida; també es poden fer servir per a explicar circumstàncies de l'acabament, o situacions que s'han donat durant el joc, lliberant els comentaris de les jugades de qualsevol tipus d'anècdota referent al desenvolupament del joc.
Comentaris de les jugades
El comentari d'una jugada s'escriu sempre en una nova línia, a continuació de la línia de la jugada. Com a màxim pot haver-hi un comentari per moviment de cada jugador, excepte que a més existeixi un comentari generat automàticament per un programa.
El comentari del moviment d'un jugador sempre comença amb la referència al jugador, bé sigui @W
o @B
, seguit de dos punts.
El comentari per al moviment de @W
, si hi és, sempre precedeix al comentari per al moviment de @B
.
- Els comentaris generats automàticament començaran amb el símbol de dos punts, escrit a continuació de la clau d'inici de comentari.
Referències dins dels comentaris
@W
referència al jugador de blanques.@B
referència al jugador de negres.- Un hexcac es referència fent servir la seva coordenada CTL, prefixada amb una titlla (
~
). - Les peces es referèncien fent servir les lletres identificatives, prefixades amb tilde (
~
). Es fan servir majúscules per a les blanques i minúscules per a les negres.Algunes peces són úniques en C'escacs, donada la política de promoció; per a les blanques: ~K, ~D, ~V. Ens podem referir també de manera única als alfils indicant el seu color entre corxets: d
(dark), l
(light) i c
(colour); per a les blanques: ~J[d], ~J[l], ~J[c].
Si ens volem referir a una peça en una posició, a continuació de la lletra de la peça, i sense separació, s'escriurà la coordenada CTL de la posició.
- Referència a jugadas Mai es pot referenciar una jugada posterior; s'ha de postergar el comentari. Tampoc es poden referenciar altres variants diferents de la línia actual, excepte per a variants etiquetades.
- Referència a una jugada Es fa servir el símbol
#
i el número de jugada; exemple: #14
es refereix a la jugada 14. El número de jugada sempre es refereix a la línia o variant en què apareix el comentari. - Referència a un moviment del jugador Exemple:
#14@B
es refereix al moviment de les negres en la jugada 14. - Referència a una variant etiquetada Les etiquetes de les variants permeten referir-les des de fora de la mateixa variant, sempre posteriorment. Exemple: #14[#12.2] es refereix a la jugada #14 de la variant definida des del moviment #12 etiquetada $[2], en tant que #14[#12.2]@W es refereix explícitament al moviment de les blanques, #12.2 es refereix de manera genèrica a tots els moviments de la variant, i #12[#12.2] es refereix al moviment alternatiu #12 de la variant [2] que es defineix en el moviment #12.
També, quan existeixen imbricacions, podem resseguir les variacions, sempre que existeixin etiquetes per a tot el camí. Exemple: #16[#14.1#12.2] indica el moviment #16 dins de la variant definida des del moviment #14 etiquetada $[1], que es troba dins de la variant definida des del moviment #12 etiquetada $[2] (observar l'ordre invers).
- Un codi NAG (Numeric Annotation Glyphs), numèric prefixat amb $ particularment en comentaris generats automàticament. Exemple: $24 — White has a slight space advantage.
[Variant "C'escacs"] [Event "CG"] [Site "Barcelona, Catalunya ESP"] [Date "2021-06-04"] [Round "‐"] [White "Mestre, Rut"] [Black "Sasal, Cesc"] [Result "*"] [Annotator "Cescacs"] [Annotator "Sasal, Cesc"] [Lang "ca"]
{ Introducció a C'escacs }
1. E7‐E13, E21‐E15 2. EE5-E11, G21‐G15
{ @W: ~E defensa ~PE13 }
{ @B: obre columna G }
3. G7-E13: *
{ inacabada }
[Variant "C'escacs"] [Id "Cescacs-X01-ca"] [Annotator "Cescacs"] [Lang "ca"] [Title "Mat del boig"] 1. H6-H12 ?!, I23-I19 ?!
{ @W: curiós peó per obrir }
{ @B: li segueix el joc }
2. JF6-C15 ?!, GH26-Z11 ?!
{ @W: ~J per a cobrir línia 15 però descuida defensa del ~K. }
{ @B: el moviment prematur de ~g a ~Z11 és molt poc ortodox }
3. L5-L7, NG25-L17 ?!
{ @B: Moviment inicial de ~n també al flanc }
4. EH4-H8 ??, GZ11-L5
{ @W: Retirar ~EH4 deixa ~K desatès }
5. I5-I9 ??, NL17-G9
{ @W: Ha ignorat les amenaces }
{ @B: Posiciona ~n }
6. K4-K10 ??, GL5-H6#
{ @W: Última oportunitat de reacció desperdiciada }
0-3
{ @W Ha de descuidar ~JF6 i ~EH4 }
{ @B Ataca ~K a salt de cavall amb ~g i ~n }
[Variant "C'escacs"] [Id "Cescacs-X01-V-ca"] [Annotator "Cescacs"] [Lang "ca"] [Title "Mat del boig"] 1. H6-H12 ?!, I23-I19 ?!
{ @W: curiós peó per obrir }
{ @B: li segueix el joc }
2. JF6-C15 ?!, GH26-Z11 ?!
{ @W: ~J per a cobrir línia 15 però descuida defensa del ~K }
{ @B: el moviment prematur de ~g a ~Z11 és molt poc ortodox }
3. L5-L7, NG25-L17 ?!
{ @B: Moviment inicial de ~n també al flanc }
4. EH4-H8 ??, GZ11-L5
{ @W: Retirar ~EH4 deixa ~K desatès }
(4. GD2-F6
.{ @W evitaria ~gL5-H6+^ }
) 5. I5-I9 ??, NL17-G9
{ @W: Ha ignorat les amenaces }
{ @B: Posiciona ~n }
(5. GD2-F6
.{ @W encara està a temps d'evitar ~gL5-H6+^ }
) (5. K4-K10 ??, GL5-H6+^
.{ @W: Desplaçant P amenaça ~gL5 amb ~RI3 }
.{ @B: L'escac sense reforç no prosperarà, però guanyarà ~RI3 }
.6. KG1-H4, GH6×RI3 .(6. …, GH6-K12) .7. KH4×GI3) 6. K4-K10 ??, GL5-H6#
{ @W: Última oportunitat de reacció desperdiciada }
(6. GD2-F6
.{ @W encara estava a temps d'evitar ~gL5-H6+^ }
) (6. RI3-I7
.{ @W una altra alternativa per a evitar ~gL5-H6+^ }
) 0-3
{ @W Ha de descuidar ~JF6 i ~EH4 }
{ @B Ataca ~K a salt de cavall amb ~g i ~n }
[Variant "C'escacs"] [Event "CG"] [Site "Barcelona, Catalunya ESP"] [Date "2023-09-08"] [Round "‐"] [White "Sasal, Cesc"] [Black "Sasal, Cesc"] [Result "0-3"] [Id "Cescacs-A0001-91"] [Annotator "Cescacs"] [Annotator "Sasal, Cesc"] [AnnotatorId "0001"] [Lang "en"]
{ H6-H12 }
1. H6-H12, H22-H16 2. H12-H14, EH24-H20 3. I5-I11, I23-I17 4. I11-I15, L23-L21 5. G7-G11, K24-K18 6. EG5-H8, G21-G15 7. EH8-I11, G15-G13 8. JF4-L19, RI25-I21 9. JL19-K16, NE25-G21 10. GH2-L11, GH26-K20 11. VF0-G5, RI21-I25 12. GL11-X16, RI25-H26 13. GX16×L21, JF24-H24 14. VG5-K8, C23-C17 15. C5-C11, GD26-B22 16. B4-B10, GB22-T16 17. ED4-C7, ED24-C21 18. NG3-L11, D22-D16 19. D6-D10, C17-C13 20. NL11-X16, GK20-G19 21. VK8-Z11, C13×D10 22. E7×D10, D16-D12 23. C11@D14, EC21-D18 24. B10-C11, VF28-D24 25. JF6-B18, RC25×C11 26. JB18×VD24, DE27×JD24 27. EE5-D8, RC11-C9 28. NE3-B4, RC9-A11 29. NB4-T8, DD24-B18 30. F8-E9, ED18×D14 31. GD2-F8, E21-E15 32. RI3-I9, E15-E13 33. RI9-Z13, E13-D12 34. RZ13-Z21, D12×E9 35. GF8-G3, DB18-C21 36. RZ21×RH26+^, JF26×RH26 37. RC3-B4, DC21-F12 38. DE1-E3, ED14-D12 39. EC7-C9, ED12×EC9 40. DE3×EC9, RA11-F16 41. DC9-C23+∞, EG23-F26 42. RB4-E7, EE23-D26 43. DC23-D24, DF12×JF2#
[Variant "C'escacs"] [Id "Cescacs-A0001-24"] [Annotator "Cescacs"] [AnnotatorId "0001"] [Date "2020-07-20"] [Result "0-3"] 1. E7-E13, E21-E15 2. F8-F12, F20-F16 3. E13×F16, E15×F12 4. EG5-F8, EG23-F20 5. G7-G13, F12@@G9 6. JF6×G9, EF20×F16 7. JF4-D10, NE25-C15 8. EE5-E7, NC15-F14 9. EF8-F12, EE23-E19 10. EF12×NF14, EF16×EF14 11. JF2-D8, EE19-E17 12. EE7-E11, EF14×EE11 13. JD8×EE11, EE17-E13 14. JD10×EE13, DE27×JE13 15. GH2-F8, DE13-B10 16. NE3-C7, DB10-D10+∞ 17. NG3-E7, GD26×L5 18. GD2-E5, DD10-K10 19. I5-I7, DK10-K6 20. RI3-H2, GL5×GE5+^ 21. DE1×GE5, KRD-DE 22. JE11×A23, GH26-G23 23. DE5-A17, JF26-E23 24. NE7-C17, D22-D20 25. NC17-T18, JF22-C13+∞ 26. KG1-E1, DK6-E21+∞ 27. VF0-E5, DE21-K16+∞ 28. KE1-D2, JE23-K8 29. NT18-B22+^, KD26-C25 30. JA23×C23, GG23×JC23 31. GF8-B20+^, GC23×GB20 32. DA17×GB20, RE27×VE5 33. DB20-C19+∞, ED24-C21 34. RH2×RE5, DK16-F20 35. DC19-E25#
{ these were the previous moves }
1. E7-E13, E21-E15 2. F8-F12, F20-F16 3. E13×F16, E15×F12 4. EG5-F8, EG23-F20 5. G7-G13, F12@@G9 6. JF6×G9, EF20×F16 7. JF4-D10, NE25-C15 8. EE5-E7, NC15-F14 9. EF8-F12, EE23-E19 10. EF12×NF14, EF16×EF14 11. JF2-D8, EE19-E17 12. EE7-E11, EF14×EE11 13. JD8×EE11, EE17-E13 14. JD10×EE13, DE27×JE13 15. GH2-F8, DE13-B10 16. NE3-C7, DB10-D10+∞ 17. NG3-E7, GD26×L5 18. GD2-E5, DD10-K10 19. I5-I7, DK10-K6 20. RI3-H2: *
[Variant "C'escacs"] [Id "Cescacs-A0001-24"] [Annotator "Cescacs"] [AnnotatorId "0001"] [Date "2020-07-20"] [Result "0-3"]
[DPTL "/28:v/27:1k/26:1jg/25:r1nr/24:pejep/23:pp2pp/22:2pjp2/21:4p3/11:3J4/9:4J3/8:3G3/7:2NN1P2/6:2P1Pd1/5:PPG2g/4:PE1EP/3:R3/2:2R/1:DK/0:V/ b KRrkr - 2"]
{ Don't remember move was the 20th; DPTL without move number }
1? …, GL5×GE5+^ 2. DE1×GE5, KRD-DE 3. JE11×A23, GH26-G23 4. DE5-A17, JF26-E23 5. NE7-C17, D22-D20 6. NC17-T18, JF22-C13+∞ 7. KG1-E1, DK6-E21+∞ 8. VF0-E5, DE21-K16+∞ 9. KE1-D2, JE23-K8 10. NT18-B22+^, KD26-C25 11. JA23×C23, GG23×JC23 12. GF8-B20+^, GC23×GB20 13. DA17×GB20, RE27×VE5 14. DB20-C19+∞, ED24-C21 15. RH2×RE5, DK16-F20 16. DC19-E25#
[Variant "C'escacs"] [Event "CG"] [Site "Barcelona, Catalunya ESP"] [Date "2022-08-14"] [White "Ros, Xus"] [Black "Sasal, Cesc"] [Id "Cescacs-A0001-43"] [Annotator "Cescacs"] [Annotator "Sasal, Cesc"] [AnnotatorId "0001"] [Result "0-3"] [Annotator "Cescacs"] 1. E7-E13, E21-E15 2. EE5-E9, EE23-E19 3. D6-D12, E15×D12 4. EE9×D12, EE19-E17 5. E13-E15, C23-C17 6. C5-C11, C17-C15 7. ED12-D14, EE17×ED14 8. C11×ED14, D22-D16 9. E15@D18, JF24×D18 10. A5-A9, B24-B18 11. B4-B10, B18-B14 12. A9-A11, B14×A11 13. GD2×A11, JF26×GA11 14. B10-C11, ED24-D20 15. JF4-A19, JF22-B22 16. JA19-B16, DE27-B18 17. JB16-D10, JB22-D16 18. NE3-C7, JA11-P17 19. GH2-I7, RC25-E23 20. ED4-E7, GD26-T14 21. NG3-A5, GT14-B8 22. RC3-B4, GB8-C5 23. DE1-C3, GC5×JD10 24. NA5-C9, GD10-F14 25. RB4×DB18, JD18×RB18 26. NC9-B14, GH26-K22 27. EE7-E11, GK22-E7+∞ 28. KG1-E1, GE7×DC3 29. JF6-E3, GC3-E7 30. VF0-E5, JD16-C13 31. EE11×GF14, GE7-G1+^ 32. RI3×GG1, JC13×RG1+^ 33. VE5×JG1, ED20-D16 34. NC7-G15, C15-C13 35. GI7-F16, NE25-A17 36. GF16-D20, RE23-E21 37. GD20-C17, RE21-C23 38. GC17-D20, RC23-D22 39. GD20-E15, VF28-E23 40. GE15-H16, I23-I19 41. GH16-X16, KRK-II 42. NG15-I25, RI21-X18 43. GX16-Z13, RX18-X6 44. VG1-E5, RX6-E13 45. VE5-C3, RE13×JE3+^ 46. KE1-G1, VE23-E9 47. GZ13-L9, VE9-B6 48. GL9-C9, RE3×JF2+^ 49. VC3×RF2, VB6-D10 50. GC9-D6, VD10-E5#
[Variant "C'escacs"] [Event "CG"] [Site "Barcelona, Catalunya ESP"] [Date "2022-08-14"] [White "Sasal, Cesc"] [Black "Ros, Xus"] [Id "Cescacs-A0001-44"] [Annotator "Cescacs"] [Annotator "Sasal, Cesc"] [AnnotatorId "0001"] [Result "3-0"] [Annotator "Cescacs"] 1. E7-E13, E21-E15 2. F8-F12, F20-F16 3. E13×F16, E15×F12 4. EG5-F8, EG23-F20 5. G7-G13, F12@@G9 6. JF6×G9, EF20×F16 7. JF4-D10, NE25-C15 8. EE5-E7, NC15-F14 9. EF8-F12, EE23-E19 10. EF12×NF14, EF16×EF14 11. JF2-D8, EE19-E17 12. EE7-E11, EF14×EE11 13. JD8×EE11, EE17-E13 14. JD10×EE13, DE27×JE13 15. GH2-F8, DE13-B10 16. NE3-C7, DB10-D10+∞ 17. NG3-E7, GD26×L5 18. GD2-E5, DD10-K10 19. I5-I7, DK10-K6 20. RI3-H2, GL5×GE5+^ 21. DE1×GE5, KRD-DE 22. JE11×A23, GH26-G23 23. DE5-A17, JF26-E23 24. NE7-C17, D22-D20 25. NC17-T18, JF22-C13+∞ 26. KG1-E1, DK6-E21+∞ 27. VF0-E5, DE21-K16+∞ 28. KE1-D2, JE23-K8 29. NT18-B22+^, KD26-C25 30. JA23×C23, GG23×JC23 31. GF8-B20+^, GC23×GB20 32. DA17×GB20, RE27×VE5 33. DB20-C19+∞, ED24-C21 34. RH2×RE5, DK16-F20 35. DC19-E25#
Un lector mínim es limita a llegir els moviments de l'apartat de CTL-AN, que han de ser algebraicament correctes; és a dir, les coordenades CTL han de ser correctes, cada moviment ha de representar una peça existent en l'origen i el destí ha de ser un hexcac lliure, o en cas de captura la peça capturada també ha d'existir, de la mateixa manera que ha d'existir el peó capturat en la captura al pas o del peó esquiu. La promoció requereix un peó en posició de promoció, i els enrocs els llocs finals de les peces disponibles. En canvi, no es verificaran les regles del joc, acceptant l'indicat algebraicament: ni els moviments de les peces, ni els escacs, ni cap altra regla, únicament coherència algebraica, però el lector ha de generar error si no es detecta aquesta coherència algebraica.
Les etiquetes incorporen metainformació útil per a l'emmagatzematge i classificació de les partides, els comentaris i les variacions afegeixen informació addicional. Únicament afecten al contingut l'etiqueta Redefine i l'etiqueta PDTL.
Un lector mínim verificarà l'etiqueta inicial i pot ignorar la resta d'etiquetes; serà convenient, però, llegir l'etiqueta PDTL, generant un error si no és capaç de processar-la, i anàlogament per a les etiquetes Redefine. Un lector mínim ha de ser capaç de llegir un fitxer CTL-PGN sense variacions, ni comentaris, ni lletres alternatives d'identificació de les peces, és a dir, sense etiquetes Redefine, i pot ignorar les etiquetes que pugui haver-hi, excepte l'etiqueta inicial necessària.
Les etiquetes Redefine modifiquen el contingut, i eliminar-les requereix una conversió prèvia. Un filtre previ pot eliminar-les transformant el fitxer, eliminant també comentaris, variacions i fins i tot valoracions, deixant una entrada neta, només amb la resta d'etiquetes, que el lector mínim ha de ser capaç d'ignorar.
L'etiqueta PDTL incorpora un context necessari per a representar una partida ja iniciada, i, si el lector no és capaç d'interpretar-la, verificar la seva presència permet detectar aviat la incoherència algebraica. L'etiqueta inicial [Variant "C'escacs"] garanteix el tipus de contingut i serà sempre un requisit.