Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section «Notes et références».
Portable Game Notation (PGN) désigne un format standard de codage des parties d'échecs.
Il est principalement utilisé pour la retransmission des parties sur internet et dans les bases de données de parties. Il utilise la notation algébrique anglaise abrégée. La plupart des programmes d’échecs la reconnaissent.
Le fichier PGN d’une partie d'échecs est composée de deux parties: la première est une liste d’en-têtes qui décrivent la date et le lieu de la rencontre, les noms des protagonistes, etc. La seconde est constituée des coups joués et d’éventuels commentaires et qui est ponctuée par le résultat.
Exemple
Exemple simple
Dans l'exemple suivant, seuls les sept en-têtes obligatoires sont présents. Ils sont séparés de la liste des coups joués par une ligne vide. Il n'y a aucun commentaire associé aux coups joués, et le résultat final termine la partie.
Dans cet exemple sont illustrés les variantes et commentaires.
[Event "Interclubs FRA"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "Calistri, Tristan"]
[Black "Bauduin, Etienne"]
[Result "1-0"]
1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nc3 a6 6.Be2 Qc7 7.O-O Nf6 8.Be3 Bb4
9.Na4 O-O 10.c4 Bd6 11.g3 Nxe4 12.Bf3 f5 13.Bxe4 fxe4 14.c5 Be7 {Les Noirs ont
un pion d'avance mais de gros problèmes pour mettre leur Fc8 et leur Ta8 en jeu}
15.Qg4 Ne5 16.Qxe4 d5 17.cxd6 Bxd6 18.Rac1 Qa5 19.Nb3 {Les blancs ont
récupéré leur pion et toutes leurs pièces sont mobilisées}
19...Qb4
(19...Qd5 20.Qxd5 exd5 21.Nb6 Bh3 22.Nxa8 Nf3+ 23.Kh1 Bxf1 24.Rxf1 Rxa8 25.Rd1)
(19...Nf3+ 20.Kg2 Qh5)
20.Qxb4 Bxb4 21.Nb6 $18 {Les noirs n'arriveront jamais à sortir leur Fc8}
21...Rb8 22.Bc5 Bxc5
(22...Nd3 23.Bxf8 Nxc1 24.Rxc1 Bxf8 25.Rxc8 Rxc8 26.Nxc8)
23.Nxc5 Rd8 24.Rfd1 Re8 25.Ne4 Nf7 26.Rc7 Kf8 27.Rdc1 1-0
Syntaxe
Format d'importation et format d'exportation
On distingue deux types de formats:
d'exportation: c'est le format rigoureusement conforme à la norme PGN et tel que deux programmes différents produiront pour les mêmes données un résultat parfaitement identique,
d'importation: c'est le format qui sera toléré en lecture, qui sera plus laxiste que le format d'exportation.
Par exemple, en format d'exportation, les lignes auront une taille maximale de 80 caractères, tandis qu'en importation, les programmes liront des lignes de taille quelconque.
Jeu de caractères
Le jeu de caractères utilisés par PGN est celui de la norme ISO/CEI 8859-1 codé sur 8 bits avec les restrictions suivantes:
0 à 31: interdits sauf retour à la ligne (10) et TAB (9)
32 à 126: autorisés
127 à 159: sont interdits
160 à 191: utilisation déconseillée
192 à 255: autorisés
Les lignes sont terminées par le caractère ASCII 0x0A (LF, \n), et leur longueur maximale est de 80 caractères.
En-têtes
Le fichier commence par 7 en-têtes obligatoires:
Event
Le nom du tournoi ou de l'événement.
Exemples:
[Event "FIDE World Championship"]
[Event "Moscow City Championship"]
[Event "ACM North American Computer Championship"]
[Event "Casual Game"]
Site
Le lieu, de préférence utilisant des abréviations standardisées pour les noms de pays, comme celles du comité olympique international.
Exemples:
[Site "New York City, NY USA"]
[Site "St. Petersburg RUS"]
[Site "Riga LAT"]
Date
La date du début de la partie en format AAAA.MM.JJ
Des commentaires peuvent apparaître dans les données PGN:
soit introduits par un point-virgule ';', et le commentaire s'étend alors jusqu'à la fin de la ligne
soit entouré d'accolades '{' et '}', les accolades ne peuvent être imbriquées.
Extensions
Si une ligne commence par le caractère «pour cent» (%) dans la première colonne, alors le reste de la ligne est destiné à une extension du format PGN et sera ignoré par les autres implémentations.
Les coups joués sont décrits par le format SAN (Standard Algebraic Notation), qui se rapproche fort de la notation algébrique abrégée en anglais, toutefois:
la promotion est indiquée par un signe "=": e8=Q et non e8Q
en cas d'ambigüité, on préfère toujours le nom de la colonne à celui de la rangée: Nce4 et non N3e4
il n'y a pas d'indication de la prise en passant
le mat est indiqué par #, l'échec par +, il n'y a pas de signe particulier pour l'échec double
Des commentaires habituels tels que "!", "?", "!!", "!?", "?!", et "??" peuvent figurer à la fin du coup en format d'importation.
En format d'exportation, ils seront remplacés par les NAG correspondants (voir plus loin)
NAG
Les NAG (Numeric Annotation Glyph) sont des commentaires standardisés introduits par le caractère $ suivi d'un nombre, en voici la liste:
NAG de 0 à 9
Les NAG de 0 à 9 sont un commentaire du coup qui précède immédiatement:
0 null annotation: pas d'annotation
1 good move (traditional "!"): bon coup
2 poor move (traditional "?"): mauvais coup
3 very good move (traditional "!!"): coup excellent
4 very poor move (traditional "??"): très mauvais coup