Explicação
PGN, sigla de Portable Game Notation, é um formato de texto para armazenar e intercambiar partidas de xadrez. Uma pessoa pode abri-lo como texto comum, enquanto programas, sites e bancos de dados de xadrez podem usar sua estrutura para reconstruir a partida.
As duas seções de uma partida PGN
- A seção de pares de tags armazena informações entre colchetes, como Event, Site, Date, Round, White, Black e Result. Essas sete tags formam o conjunto básico para arquivamento.
- A seção de lances contém números dos lances, lances em , comentários opcionais, variantes e um marcador final de resultado.
Os comentários normalmente aparecem entre chaves. Linhas alternativas aparecem entre parênteses e podem conter variantes aninhadas. Avaliações compactas podem ser armazenadas como NAGs, códigos formados por $ e um número. Um único arquivo .pgn pode conter uma ou várias partidas separadas.
PGN registra uma partida ou árvore de variantes, não apenas uma fotografia do tabuleiro. Se a partida começar em uma posição não padrão, os cabeçalhos SetUp e podem fornecer essa posição inicial. FEN, por si só, descreve uma posição, não o histórico de lances que levou até ela.
O que PGN não é
PGN não é um protocolo para um motor pensar ou se comunicar com uma interface gráfica. Protocolos como trocam comandos entre programas; PGN troca registros de partidas. Os programas também diferem nas extensões que aceitam, por isso os arquivos mais portáteis seguem a estrutura padrão e contêm lances legais.
O marcador final deve ser 1-0, 0-1, 1/2-1/2 ou *. Ele também deve coincidir com o cabeçalho Result. O asterisco é usado quando a partida está em andamento ou não possui um resultado final disponível.
Confusões frequentes
PGN em comparação com FEN
PGN armazena uma partida e seus metadados; FEN descreve uma única posição inicial ou intermediária.
PGN em comparação com UCI
PGN é um formato de registro de partidas; UCI é um protocolo de comunicação com motores.
Fontes
- 1.Portable Game Notation Specification and Implementation Guide, Steven J. Edwards
- 2.PGN parsing and writing, python-chess
