Hvad er PGN-filformatet?
.pgn (Portable Game Notation) er den mest populære standard for skakdata. .pgn-filer gemmer træk fra skakpartier sammen med dato, sted, begivenhedsnavn, runde, resultatet af partiet og spillernes navne.
Datastruktur for en .pgn-fil
Header-data i en .pgn-fil er formateret ved hjælp af mærker i firkantede parenteser. Det obligatoriske sæt - Seven Tag Roster - dækker over [Event], [Site], [Date], [Round], [White], [Black] og [Result]. Spillernes træk følger i en *movetext*-sektion ved hjælp af Standard Algebraisk Notation (SAN), med kommentarer i { } parenteser og annotationer som f.eks. ! eller ?. Der er ingen binær signatur; .pgn-filer identificeres ved det indledende [Event "-mærke.
Data gemt i tekstformat
.pgn-filer gemmer information i almindeligt tekstformat (ASCII) og kan derfor let læses af både mennesker og programmer. Flere partier kan samles i en enkelt .pgn-fil, hvilket er almindeligt for åbningsbøger og turneringsdatabaser. Relaterede positionsformater inkluderer .FEN for individuelle brætstillinger og .EPD for udvidede positionsbeskrivelser.
Almindeligt anvendt standard
.pgn-formatet bruges almindeligvis til at gemme og dele (herunder online) skakdata via platforme som Lichess og Chess.com. .pgn-filer kan bruges til analyse af partier og spillerfremskridt, træning af skakmotorer og arkivering af turneringsresultater.
Sikkerhed og tryghed
RISIKO: LOWPGN er almindelig tekst uden eksekverbart indhold, så filerne er i sig selv sikre at åbne. De eneste forbehold: en misdannet eller enorm PGN-fil kan belaste en dårligt skrevet parser, og som altid bør man downloade skaksoftware fra officielle sider frem for reklamefyldte «PGN viewer»-portaler. Der er ingen makro- eller script-muligheder i formatet.
Formatdetaljer
kort fortaltProgrammer der åbner PGN-filer
Tekniske detaljer
dyb specifikation| MIME-type | application/x-chess-pgn |
| Filkodning | 7-bit ASCII almindelig tekst |
| Filsignatur | Ingen binære magic bytes; identificeres i praksis ved det indledende [Event «...»] mærke |
| Filstruktur | Layout i to sektioner: mærker i parentes (header) efterfulgt af movetext (partiets træk) |
| Obligatoriske header-mærker | Seven Tag Roster - [Event], [Site], [Date], [Round], [White], [Black], [Result] |
| Træknotation | Standard Algebraisk Notation (SAN) |
| Annotationssymboler | Numeric Annotation Glyphs (NAGs) $1-$255; almindelige forkortelser: !, ?, !!, ??, !?, ?! |
| Kommentarsyntaks | Blokkommentarer i { } parenteser; linjekommentarer efter ; (til slutningen af linjen) |
| Understøttelse af varianter | Recursive Analysis Variations (RAVs) kodet i indlejrede parenteser |
| Understøttelse af flere partier | Flere komplette partier kan samles i en enkelt .pgn-fil |
| Resultatværdier | Fast ordforråd: 1-0 (Hvid vinder), 0-1 (Sort vinder), 1/2-1/2 (remis), * (ukendt/igangværende) |
| Linjelængde | Specifikationen anbefaler ≤ 80 tegn pr. linje; LF eller CRLF linjeskift accepteres |
| Udvikler | Steven J. Edwards (fællesskabsudviklet specifikation) |
| Udgivet | 1994 (PGN specification) |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.thechessdrum.net |