الشرح
PGN، وهو اختصار Portable Game Notation أو التدوين المحمول للمباريات، صيغة نصية لحفظ مباريات الشطرنج وتبادلها. يمكن فتحه كنص عادي، وتتيح بنيته لبرامج الشطرنج والمواقع وقواعد البيانات إعادة بناء المباراة.
قسما مباراة PGN
- يخزن قسم أزواج الوسوم معلومات بين أقواس مربعة، مثل Event وSite وDate وRound وWhite وBlack وResult. تشكل هذه الوسوم السبعة المجموعة الأساسية للأرشفة.
- يحتوي قسم نص النقلات على أرقام النقلات ونقلات مكتوبة بـ وتعليقات اختيارية وتفريعات وعلامة نهائية واحدة للنتيجة.
تظهر التعليقات عادة داخل أقواس معقوفة. وتظهر الخطوط البديلة داخل أقواس ويمكن أن تتضمن تفريعات متداخلة. ويمكن حفظ التقييمات المختصرة بصيغة NAG، وهي رموز تتكون من $ ورقم. قد يحتوي ملف .pgn واحد على مباراة واحدة أو مباريات متعددة منفصلة.
يسجل PGN مباراة أو شجرة تفريعات، لا مجرد لقطة للرقعة. إذا بدأت المباراة من وضعية غير قياسية، يمكن لترويستي SetUp و تحديد وضعية البداية. يصف FEN وحده وضعية، لا سجل النقلات التي أدت إليها.
ما ليس PGN
ليس PGN بروتوكولًا لكي يفكر محرك أو يتواصل مع واجهة رسومية. تتبادل بروتوكولات مثل الأوامر بين البرامج، أما PGN فيتبادل سجلات المباريات. وتختلف البرامج أيضًا في الامتدادات التي تقبلها، لذلك تتبع الملفات الأكثر قابلية للنقل البنية القياسية وتحتوي على نقلات قانونية.
يجب أن تكون العلامة النهائية 1-0 أو 0-1 أو 1/2-1/2 أو *. ويجب أيضًا أن تطابق ترويسة Result. تستخدم النجمة عندما تكون المباراة جارية أو لا تتوفر لها نتيجة نهائية.
التباسات شائعة
PGN مقابل FEN
يحفظ PGN مباراة وبياناتها الوصفية، أما FEN فيصف وضعية بداية أو وضعية وسطية واحدة.
PGN مقابل UCI
PGN صيغة لتسجيل المباريات، أما UCI فبروتوكول للتواصل مع المحركات.
المصادر
- 1.Portable Game Notation Specification and Implementation Guide, Steven J. Edwards
- 2.PGN parsing and writing, python-chess
