Wat is het PGN-bestandsformaat?
.pgn (Portable Game Notation) is de populairste standaard voor schaakpartijgegevens. .pgn-bestanden slaan zetten van schaakwedstrijden op, samen met de wedstrijddatum, locatie, evenementnaam, ronde, het resultaat van de partij en de namen van de spelers.
Datastructuur van een .pgn-bestand
Headergegevens in een .pgn-bestand worden geformatteerd met behulp van tag-paren tussen haakjes. De verplichte set - de Seven Tag Roster - omvat [Event], [Site], [Date], [Round], [White], [Black] en [Result]. De zetten van de spelers volgen in een *movetext*-sectie met behulp van Standard Algebraic Notation (SAN), met commentaar tussen { } accolades en annotaties zoals ! of ?. Er is geen binaire signatuur; .pgn-bestanden worden geïdentificeerd door de openings-tag [Event ".
Gegevens opgeslagen in tekstformaat
.pgn-bestanden slaan informatie op in platte tekst (ASCII) en kunnen daarom gemakkelijk worden gelezen door zowel mensen als programma's. Meerdere partijen kunnen worden samengevoegd in een enkel .pgn-bestand, wat gebruikelijk is voor openingsboeken en toernooidatabases. Gerelateerde positieformaten zijn .FEN voor individuele bordstellingen en .EPD voor uitgebreide positiebeschrijvingen.
Veelgebruikte standaard
Het .pgn-formaat wordt veel gebruikt voor het opslaan en delen (ook online) van schaakwedstrijdgegevens via platforms zoals Lichess en Chess.com. .pgn-bestanden kunnen worden gebruikt voor analyse van partijen en spelersprogressie, engine-training en het archiveren van toernooiresultaten.
Beveiliging & veiligheid
RISICO: LOWPGN is platte tekst zonder uitvoerbare inhoud, dus de bestanden zijn inherent veilig om te openen. De enige kanttekeningen: een misvormde of enorme PGN kan een slecht geschreven parser belasten, en download schaaksoftware zoals altijd van officiële sites in plaats van met advertenties gevulde „PGN viewer”-portals. Er is geen macro- of scriptfunctionaliteit in het formaat.
Formaatdetails
in een notendopProgramma's die PGN-bestanden openen
Technische details
diepe specificaties| MIME-type | application/x-chess-pgn |
| Bestandscodering | 7-bit ASCII platte tekst |
| Bestandssignatuur | Geen binaire magic bytes; in de praktijk geïdentificeerd door de openings-tag [Event "..."] |
| Bestandsstructuur | Indeling in twee secties: tag-paren tussen haakjes (header) gevolgd door movetext (zetten van de partij) |
| Verplichte header-tags | Seven Tag Roster - [Event], [Site], [Date], [Round], [White], [Black], [Result] |
| Zetnotatie | Standard Algebraic Notation (SAN) |
| Annotatie-symbolen | Numeric Annotation Glyphs (NAGs) $1-$255; veelgebruikte afkortingen: !, ?, !!, ??, !?, ?! |
| Commentaar-syntaxis | Blokcommentaar tussen { } accolades; regelcommentaar na ; (tot einde regel) |
| Ondersteuning voor varianten | Recursive Analysis Variations (RAVs) gecodeerd in geneste haakjes |
| Ondersteuning voor meerdere partijen | Meerdere volledige partijen kunnen worden samengevoegd in een enkel .pgn-bestand |
| Resultaatwaarden | Vaste woordenschat: 1-0 (Wit wint), 0-1 (Zwart wint), 1/2-1/2 (remise), * (onbekend/bezig) |
| Regellengte | Specificatie adviseert ≤ 80 tekens per regel; LF of CRLF regeleinden geaccepteerd |
| Ontwikkelaar | Steven J. Edwards (door de gemeenschap ontwikkelde specificatie) |
| Uitgebracht | 1994 (PGN specification) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.thechessdrum.net |