Кіріспе
Шахмат ойындарын жазуға арналған компьютерлік формат. Портативті ойын нотациясы (PGN) – шахмат ойындарын (қозғалыстар мен қосымша мәліметтерді) жазуға арналған стандартты қарапайым мәтіндік формат, оны адамдар оқи алады және көптеген шахмат бағдарламалық қамтамасы қолдайды.
Portable Game Notation (PGN) is a standard plain text format for recording chess games (both the moves and related data), which can be read by humans and is also supported by most chess software.
Тарих
PGN 1993 жылы Стивен Дж. Эдвардс жасады және алғаш рет Usenet newsgroup rec.games.chess арқылы танымал болды және сипатталды.
Қолданылуы
PGN адамдарға оңай оқу және жазу, ал компьютерлік бағдарламаларға оңай талдау және жасау үшін құрылған. Шахмат ойындары алгебралық нотациямен, фигуралардың ағылшын әріптерімен жазылады. Файлдың кеңейтімі pgn. PGN спецификациясында екі формат бар: "импорт" және "экспорт" форматтары. Импорт форматы қолмен дайындалған деректерді сипаттайды және қасақана бос; PGN деректерін оқи алатын бағдарлама осы бос импорт форматын да қабылдауы керек. Экспорт форматы өте қатаң және бағдарламалық басқарумен дайындалған деректерді сипаттайды, бұл компилятормен қайта форматталған әдемі басылған кодқа ұқсас. Бір компьютердегі әртүрлі бағдарламалар жасаған экспорт форматтары байт сайын толық сәйкес болуы керек. PGN мәтіні "тег жұптарынан" (тег атауы және оның мәні) басталады, одан кейін "қозғалыс мәтіні" (шахмат қозғалыстары, қалау бойынша түсіндірмелермен) келеді.
Тегтер жұптары
Тегтер жұптары бастапқы сол жақ жақшадан басталады, содан кейін тегтің атауы қарапайым ASCII мәтінімен жазылады. Тегтің мәні қос тырнақшамен қоршалады, содан кейін тег оң жақ жақшамен аяқталады. Тег мәнінің ішінде тырнақша болса, ол кері сызықпен тырнақшадан бірден бұрын көрсетіледі. Тег мәнінің ішіндегі кері сызық екі тікелей жалғасқан кері сызықпен белгіленеді. Escape таңбаларын немесе жолдың соңына көшуді қамтитын ешқандай арнайы басқару кодтары жоқ, және өрістерді бөлу үшін жолдардың басындағы немесе соңындағы бос орындарды алып тастау жиі кездеседі.
Жеті таңбалы тізім
PGN деректерін архивтік сақтау үшін жеті тег жұбын қоса беру қажет, олар "Жеті тег тізімі" деп белгіленеді. Экспорт форматында бұл тег жұптары кез келген басқа тег жұбынан бұрын және осы ретпен келтірілуі керек:
Таг жұптары
Стандарт басқа да қосымша тег жұптарын қолдауға рұқсат береді. Көбінесе қолданылатындары:
Мәтінді жылжыту
Қозғалыс мәтіні ойынның нақты қимылдарын сипаттайды. Бұл қозғалыс нөмірінің көрсеткіштерін (бір немесе үш нүктеден кейін келетін сандар; келесі жүргізілім ақтардың болса, бір нүкте, келесі жүргізілім қаралардың болса, үш нүкте) және стандартты алгебралық нотацияда (SAN) қозғалыс мәтінін қамтиды. Көптеген қозғалыстар үшін SAN фигураның әріптік аббревиатурасынан, егер соққы болса, «x» әрпінен және фигураның қозғалған соңғы шаршысының екі таңбалы алгебралық атауынан тұрады. Әріптік аббревиатуралар: K (патша), Q (патшайым), R (мұнара), B (пиеса), және N (ат). SAN қозғалыс мәтінінде пешка бос аббревиатурамен көрсетіледі, бірақ басқа контексттерде P аббревиатурасы қолданылады. Кез келген шаршының алгебралық атауы әдеттегі алгебралық шахмат нотациясына сәйкес; ақтардың қарауынан, сол жақтанғы ең шеткі шаршы a1, оң жақтанғы ең шеткі шаршы h1, ал қаралардың қарауынан оң жақтанғы ең шеткі шаршы h8 болып табылады. Кейбір жағдайларда, түсініксіздікті жою үшін толықрақ бейнелеу қажет; егер солай болса, қозғалған фигураның атынан кейін (осы ретпен) фигураның бағана әрпі, қатарының нөмірі немесе нақты шаршы қосылады. Мысалы, Nge2 дегені g бағанасындағы аттың e2 шаршысына қозғалатынын білдіреді. SAN бойынша королдік рокада O O деп, ферзьдік рокада O O O деп көрсетіледі (FIDE нотация стандартына қайшы болғанымен, бұл нөл емес, үлкен әріптер екенін ескеріңіз). Пешканы түрлендіруді баратын шаршыға = белгісін қосу арқылы, содан кейін пешканың түрленген фигурасын көрсету арқылы жазады. Мысалы: e8=Q. Егер қозғалыс шабуыл болса, + белгісі қосады; егер қозғалыс шахмат болса, # белгісі қосады. Мысалы: e8=Q#. Ойын кезінде жасалған қозғалыстардың орнына басқа қозғалыстарды ұсынғысы келген комментатор жақша ішіндегі вариацияларды қоса алады. Олар сондай-ақ сандық түсіндірме глифтерін (NAG) қозғалыс мәтініне енгізу арқылы ойынға түсініктеме бере алады. Әр NAG NAG алдындағы қозғалыстың немесе одан туындаған позицияның субъективті бағасын көрсетеді. Егер ойын нәтижесі * болмаса, нәтиже қозғалыс мәтінінің соңында қайталанады.
+ is also appended; if the move is a checkmating move, # is appended instead. For example: e8=Q#. An annotator who wishes to suggest alternative moves to those actually played in the game may insert variations enclosed in parentheses. They may also comment on the game by inserting Numeric Annotation Glyphs (NAGs) into the movetext. Each NAG reflects a subjective impression of the move preceding the NAG or of the resultant position. If the game result is anything other than *, the result is repeated at the end of the movetext.
Ескертпелер
Түсініктемелер ; (жолдың соңына дейін жалғасатын түсініктеме) немесе { (құршаулы } дейін жалғасатын) арқылы қосылады. Түсініктемелер біріне бірі ішкі қондырылмайды.
Шахмат нұсқаларын басқару
Шахматтың көптеген нұсқаларын PGN форматында жазуға болады, егер фигуралардың атаулары бір таңбамен – әдетте әріппен, санмен емес – шектелсе. Олар көбінесе ережелердің атын көрсететін "Variant" тағымен белгіленеді. "Variation" терминін қолданбау керек, себебі ол дебюттің вариациясының атын білдіреді. Қайта айта кетейік, дәстүрлі шахмат бағдарламалары көбінесе бірнеше ғана нұсқаны қолдай алады. Форсайт-Эдвардс нотациясы (Forsyth Edwards Notation) дәстүрлі шахматтың бастапқы позициясынан өзгеше бастапқы позициялары бар нұсқалардың (мысалы, Chess960) бастапқы орналасуын жазу үшін пайдаланылады.