Portable Game Notation

**Portable Game Notation** (PGN) adalah standar format teks biasa untuk mencatat permainan catur (baik gerakan-gerakan catur dan data-data berkaitan), yang dapat dibaca oleh manusia dan didukung oleh banyak peranti lunak catur. PGN diciptakan sekitar tahun 1993 oleh Steven J. Edwards; dispesifikasikan dan dipopulerkan lewat grup berita `rec.games.chess` di Usenet.

## Penggunaan
PGN disusun agar mudah dibaca dan ditulis oleh manusia, dan mudah di-*[[parsing]]* dan dibuat oleh program komputer. Gerakan-gerakan catur dalam PGN dituliskan menggunakan notasi aljabar dengan inisial bahasa Inggris untuk setiap buah catur. Ekstensi berkas yang digunakan adalah`.pgn`.

Terdapat dua format dalam spesifikasi PGN, yaitu format "impor" dan format "ekspor". Format impor merupakan data yang mungkin disiapkan dengan tangan, dan sengaja dibuat longgar (tidak mendetail); sebuah program yang dapat membaca data PGN harus dapat menangani format impor yang agak longgar. Format ekspor bersifat agak baku dan menggambarkan data yang dibuat oleh program, mirip dengan program sumber yang diformat ulang (*pretty printed*) oleh kompiler. Representasi format ekspor yang dihasilkan oleh program yang berbeda pada komputer yang sama harus sama persis. Teks PGN diawali oleh serangkaian "pasangan label" (berupa nama label dan nilainya), dan diikuti oleh "*movetext*" (gerakan-gerakan catur, dan komentar yang sifatnya opsional).

### Pasangan label
Pasangan label (*tag*) diawali oleh kurung siku kiri , lalu diikuti oleh nama label dalam format teks ASCII. Nilai dari label dibungkus oleh tanda petik ganda, dan akhirnya label ditutup oleh kurung siku kanan . Tanda kutip di dalam nilai label dinyatakan lewat kombinasi garis miring terbalik yang diikuti tanda kutip (`\"`). Sedangkan, tanda garis miring terbalik di dalam nilai label dinyatakan oleh garis miring terbalik ganda (`\\`)  Tidak ada kode kontrol spesial untuk *escape characters*, *carriage returns*, dan *linefeeds*; spasi yang berlebih umumnya diabaikan dalam proses *parsing*.

#### ''Seven Tag Roster''
Data PGN yang ditujukan untuk penyimpan perlu mencatat tujuh pasangan label, yang dikenal sebagai "*Seven Tag Roster*". Pada format ekspor, pasangan label-label berikut harus ada, dan dalam urutan sebagai berikut:

#### Pasangan label opsional
Standar PGN memungkinkan pasangan-pasangan label lainnya untuk disertakan. Beberapa pasangan label yang umum antara lain:

### ''Movetext''

Movetext menyatakan langkah yang terjadi dari permainan. Movetext berisi indikator nomor langkah (angka yang diikuti dengan satu atau tiga titik; satu jika langkah berikutnya adalah langkah Putih, tiga jika langkah berikutnya adalah langkah Hitam) dan movetext dalam Notasi Aljabar Standar (SAN).

Untuk sebagian besar langkah, SAN terdiri dari singkatan huruf untuk bidak catur, tanda `x` jika ada penangkapan, dan nama aljabar dua karakter dari petak terakhir tempat bidak tersebut dipindahkan. Singkatan hurufnya adalah `K` (raja), `Q` (menteri), `R` (benteng), B (gajah), dan N (kuda). Bidak diberi singkatan kosong dalam movetext SAN, tetapi dalam konteks lain singkatan `P` digunakan. Nama aljabar dari setiap bidak adalah seperti notasi catur aljabar pada umumnya; dari sudut pandang putih, bidak paling kiri yang paling dekat dengan putih adalah `a1`, bidak paling kanan yang paling dekat dengan putih adalah `h1`, dan bidak paling kanan (dari sudut pandang putih) yang paling dekat dengan hitam adalah `h8`.

Dalam beberapa kasus, representasi yang lebih rinci diperlukan untuk mengatasi ambiguitas; pada kasus seperti itu, huruf kolom bidak, atau nomor numerik, atau bidak yang tepat disisipkan setelah nama bidak yang bergerak (dalam urutan preferensi tersebut). Dengan demikian, `Nge2` menyatakan bahwa kuda yang semula berada di kolom `g` berpindah ke `e2`.

Rokade sisi raja ditunjukkan dengan simbol `O-O`; Rokade sisi ratu ditunjukkan dengan simbol `O-O-O` (perhatikan bahwa ini adalah huruf besar, bukan angka nol, berbeda dengan standar FIDE untuk notasi). Promosi bidak dinotasikan dengan menyertakan = pada petak tujuan, diikuti dengan bidak yang dipromosikan. Sebagai contoh: `e8=Q.` Jika suatu langkah adalah langkah skak, simbol `+` juga ditambahkan; jika suatu langkah adalah langkah skakmat, `#` ditambahkan sebagai gantinya. Sebagai contoh: `e8=Q#`.

Seorang anotator yang ingin menyarankan langkah alternatif selain yang sebenarnya dimainkan dalam permainan, dapat memasukkan variasi dalam tanda kurung. Mereka juga dapat mengomentari permainan dengan menyisipkan Numeric Annotation Glyphs (NAG) ke dalam movetext. Setiap NAG mencerminkan kesan subjektif dari gerakan yang mendahului NAG atau posisi yang dihasilkan.

Jika hasil permainan adalah selain `*`, hasilnya akan diulang di akhir movetext.

### Komentar
Komentar disisipkan dengan tanda `;` (komentar yang ditulis hingga akhir baris) atau `{` (yang ditulis hingga tanda `}`). Komentar yang ditulis tidak bersarang (*nested*).

## Contoh
Berikut ini adalah format PGN dari game ke-29 dari pertandingan tahun 1992 yang dimainkan di Yugoslavia antara Bobby Fischer dan Boris Spassky:

## PGN untuk varian catur
Banyak varian catur dapat direkam menggunakan PGN, asalkan nama-nama bidak dapat dibatasi pada satu karakter, biasanya berupa huruf dan bukan angka. Varian catur biasanya dicatat dengan label bernama "Variant" dan berisi nama varian yang dipakai. Istilah "Variation" harus dihindari, karena merujuk pada nama variasi pembukaan. Perlu diingat bahwa program catur tradisional hanya dapat menangani paling banyak beberapa variasi saja. Notasi Forsyth-Edwards digunakan untuk mencatat posisi awal untuk varian (seperti Chess960) yang memiliki posisi awal selain posisi awal catur umumnya.

## Lihat pula

* X-FEN
* Smart Game Format – Format untuk mencatat permainan Go.
* Portable Draughts Notation

## Referensi