Portable Game Notation
- PGNは Portable Game Notation の頭文字。
- PGNは世界中のサイトで広く使われている記録書式で、数えきれないほどのゲームがダウンロード可能。
- PGNの書類はASCIIテキスト・ファイルで、エディタ等で開けば読んで理解でき、対応ソフトで簡単にゲームを再現できる。
- PGNはJCCAの記録書式でもあり、すべてのゲームは終了後にPGNでサイト上に公開される。
- PGNはJCCAのゲーム結果報告書の書式でもある。
PGNの例
第31期郵便チェス決勝トーナメントからの1局です。
[Event "31st Postal Championship, Final"]
[Site "JCCA"]
[Date "2008.09.01"]
[Round "-"]
[White "Tamiya, Masaru"]
[Black "Ikegami, Osamu"]
[Result "1/2-1/2"]
[WhiteJCCA "1462"]
[BlackJCCA "1767"]
[EndDate "2009.07.14"]
[ECO "E91"]
1. d4 Nf6 2. c4 g6 3. Nc3 d6 4. Nf3 Bg7 5. e4 O-O 6. Be2 c5 7. O-O cxd4
8. Nxd4 Re8 9. Be3 Nc6 10. Qd2 Bd7 11. Rad1 Ng4 12. h3 Nxe3 13. fxe3 Bh6
14. Nxc6 Bxc6 15. Nd5 Bg5 16. Bf3 e6 17. Nf4 f6 18. Qxd6 e5 19. Qa3 Qb6
20. c5 Qa6 21. Qxa6 bxa6 22. Nd5 Bxd5 23. Rxd5 Rab8 24. b3 Bxe3+ 25. Kh2
Rec8 26. Be2 Rxc5 27. Rxc5 Bxc5 28. Rxf6 a5 29. Bc4+ Kg7 30. Rf7+ Kh6
31. Kg3 Rf8 32. Rxf8 Bxf8 33. Kf3 Kg5 34. g3 h6 35. h4+ Kf6 36. g4 Be7
37. Ke3 Kg7 38. h5 g5 39. a4 1/2-1/2
PGNの構造
この例を見て分かるように、PGNは前半と後半に分かれています。
前半には「どこで、誰が、..」と5W1H的なことが書かれています。
後半は見慣れた代数式のスコアのようです。
詳しくは後ほど..。
PGNはかなり古い(寄り道)
あるサイトで見つけ、今このページを書くのに参考にしている文書(規格書)には「1994年3月12日改訂」とあります。たしか「Windows 3.1」日本発売の翌年です。これは改訂の年ですから、規格はさらに以前からあったことになります。MS-DOSの時代、マウスなんか無くて画面の横サイズは640ドット。ローマ字を横8ドットで表示していたから、1行80文字、ASCIIのみ。そんな時代に考えられたPGNなのでしょう。
PGNは何のための規格(だったの)か(寄り道2)
PはportableのP。Portableは可搬性のある、という意味です。つまり、ある環境から別の環境に移しやすい、ということです。チンプンカンプン。
コンピュータ・チェス・プログラムの開発と利用が活発になると、ひとつのコンピュータから他のコンピュータにデータを移したい、あるプログラムで使ったチェスの記録を別のプログラムでも使いたいという要求が強くなりました。
コンピュータが容易に解析でき生成もしやすい形式、そしてヒトも理解(読み書き)できる、標準となる形式として考えだされたのがPGNです。
話を元に戻しましょう。
PGNの構造 2
PGNの前半、[ ]で括られている数行を「タグ・ペア・セクション」と呼びます。直訳すると「標識対部分」でしょうか。
1行だけを詳しく見ると、例えば、
[Site "JCCA"]
この1行は、いうまでもなく「場所(Site)は JCCA」を表しています。要素は5つ:
[ |
始まりの角括弧 |
Site |
タグ名 |
|
区切りの空白1つ |
“JCCA” |
タグ値。このように “(ダブルクォーテーション)で囲みます。 |
] |
終わりの角括弧 |
書き方はコンピュータが容易に解析できるように厳密に決められています。
(「場所」というのがヘンですか?次項で)
タグ・ペア・セクション
最初の例のタグ・ペア・セクションを再掲します。
[Event "31st Postal Championship, Final"]
[Site "JCCA"]
[Date "2008.09.01"]
[Round "-"]
[White "Tamiya, Masaru"]
[Black "Ikegami, Osamu"]
[Result "1/2-1/2"]
[WhiteJCCA "1462"]
[BlackJCCA "1767"]
[EndDate "2009.07.14"]
[ECO "E91"]
一つ一つ見ていきましょう。
- Event
- トーナメントやマッチの名称です。
- Site
- 場所です。通信チェスでは「場所」といわれてもピンと来ませんが、PGNはチェス一般を対象にしていますから。通常は都市の名前が入ります。続けて国を表示するなら [Site “Tokyo, JPN”] のようにIOCのコードが使われます(もちろん通信チェスではないチェスの場合)。
- 我々は、ICCFのサーバーをレンタルしたウェブチェスの場合は”ICCF”、他の場合は “JCCA”とします。
- Date
- ゲームが行われた(始まった)日。通信チェスでは対局開始基準日です。
- 年月日はピリオドで区切ります。古いですね。今だったらISOに倣ってハイフン(”-“)を使う規格になっていたでしょう。
- Round
- ハイフン(”-“)は「ラウンドなし」を表しています。我々は同時に複数のゲームをプレイして round を使わないですから。普通はラウンドを数字で表します。また “?” は「不明」の場合です。
- White と Black
- 白、黒のプレーヤーの名前です。頭文字は大文字にします。
- このように、姓・名の順で、間を “, “(カンマと空白)で区切る決まりです。我々の姓、名の順は本来のもので、カンマは倒置を表すのでしょうから納得いかないのですが、PGNは古い規格なので妥協することにしましょう。
- Result
- 結果。”1-0″か”1/2-1/2″か”0-1″です。ゲームが終わっていないときは “*”(アスタリスク)を使います。
以上は7つの必須タグ・ペア。PGNでは必ず記述する決まりとなっています。我々には不要の Round タグも省かずに、値を “-” とします。
- WhiteJCCA と BlackJCCA
- JCCA独自のタグで、JCCAレイティングを表します。ICCFレイティングは White(Black)Elo です。FIDEレイティングも White(Black)Elo ですが、もちろん別のものです。USCF (The United States Chess Federation) はWhite(Black)USCFを使っています。
- White(Black)Eloは数字だけで表し、UR(レイティングなし)は “-” を使うのがPGNの規約です。しかしJCCAのルールでは「仮レイティングは、すべて…カッコをつけて表示」することになっているので、White(Black)JCCA では仮レイティングはカッコに入れています。
このように、タグは必要に応じて作ることができます。頻繁に使われよく知られているタグもあれば、他では見ることのないタグもあります。
- EndDate
- これもJCCA独自のタグ、ゲームの終了日。結果報告書に必要です。厳密には「メイトはメイトの手を送信した日(消印日)、リザインはリザインの意思を送信した日(消印日)、ドローはドローを受諾する意思を送信した日(消印日)とする」と定められています(事務局発 ML[00237]2006-04-14)。レイティングの計算方法が変わったのでいずれ不要となるかもしれません。サイト上の記録のページでは削除されます。
- 似たタグで EventDate がありますが、これは競技会が始まった日です。数日間かけて行われるo-t-bのトーナメントの記録で見られます。
- ECO
- もちろんECOのオープニング分類コードです。よく使われているタグですが、報告書には必要ありません。サイト上のページに記録されるときに付加されます。
ムーブテクスト・セクション(仮称)
Movetext sectionです。Movetext は辞書にありません。最初の例から再掲します。
1. d4 Nf6 2. c4 g6 3. Nc3 d6 4. Nf3 Bg7 5. e4 O-O 6. Be2 c5 7. O-O cxd4
8. Nxd4 Re8 9. Be3 Nc6 10. Qd2 Bd7 11. Rad1 Ng4 12. h3 Nxe3 13. fxe3 Bh6
14. Nxc6 Bxc6 15. Nd5 Bg5 16. Bf3 e6 17. Nf4 f6 18. Qxd6 e5 19. Qa3 Qb6
20. c5 Qa6 21. Qxa6 bxa6 22. Nd5 Bxd5 23. Rxd5 Rab8 24. b3 Bxe3+ 25. Kh2
Rec8 26. Be2 Rxc5 27. Rxc5 Bxc5 28. Rxf6 a5 29. Bc4+ Kg7 30. Rf7+ Kh6
31. Kg3 Rf8 32. Rxf8 Bxf8 33. Kf3 Kg5 34. g3 h6 35. h4+ Kf6 36. g4 Be7
37. Ke3 Kg7 38. h5 g5 39. a4 1/2-1/2
見た通り、標準的な代数式で記述されています。アンパサン記号の省略などFIDEのものとは違いがありますが、読んで理解するのに何の問題もないと思います。JCCAでは英語式の駒記号 K, Q, R, B および N を使うルールです。PGN自体は駒記号を規定していませんから、他言語の駒記号を使ったPGNを目にする機会もあるかもしれません。
PGNを、もしタイプするとしたら
PGNを手でタイプするのはお勧めできません。PGNソフトを使いましょう。楽に、正確に作成できます。
もしPGNソフトを使わず手でタイプするなら、以下のような注意が必要です(この項末尾参照)。
PGNを手でタイプしたりしない賢明な方、この項は読み飛ばしてください。
- 文字はすべて、いわゆる半角文字
- これがなかなか難しいようで、全角文字が混じっている報告書をよく見ます。かな漢字変換を切らずに、無変換とか半角変換とかを使って入力することが原因と思われます。プロポーショナル・フォントだと全角と半角を見た目で区別するのが難しいのでしょう。日本製のPGNソフトなら(Pigeon Log のように)半角文字に読み替えて処理してくれるかもしれません。しかし外国製のソフトが漢字を知っているとは思えません。致命的なエラーになるでしょう。
- 7-bit ASCII印字可能文字に限られているのはPGNが古い規格で致し方ないしょう。
- タグ名は1語
- EventDateなどのタグ名に Event Date のように空白が入ってはなりません。許されるのは英数字とアンダースコアのみです。多くのPGNソフトは余分な空白があれば読み込んだときに削除します。
- [TagName “なんとか かんとか”]
- タグ名の後ろに空白をひとつ入れます。タグ値(ダブルクォーテーションで囲まれた部分)以外で空白があるのはここだけです。
- 日付
- 年は4桁使い、月日が1桁のときはゼロを補って2桁にします。読み込み時に自動的に2桁にしてくれるソフトが多いです。区切りは”.”です。
- White と Black
- 前述のように姓・名の順で、間を “, “(カンマと空白)で区切る決まりです。カンマの後ろに空白をひとつ入れるのは英文などの通常です。
タグ・ペア・セクションの途中に空行があってはいけません。
タグ・ペア・セクションとムーブテクスト・セクション(差し手の部分)の間に、空行を1行入れます。
ムーブテクスト・セクションの途中に空行があってはいけません。
ムーブテクスト・セクションは79文字以下で改行します。
ムーブテクスト・セクションの末尾に空白文字ひとつ(または改行)を介してResultタグのタグ値と同じもの(1-0, * etc)を記入します。
ムーブテクスト・セクションには以下のように、一般的な表記といくつかの違いがあります。
- キャスリングは一般の 0(数字のゼロ)ではなく、大文字の O(オゥ)を使う。
- アンパサン記号は表記しない。
- プロモーションは =(等号)を挿みクイーンなどの駒記号に続ける。途中に空白を入れない。例、29. dxc8=Q+
これらの決まりと異なるソースを読み込ませたときもPGNソフトは可能な限り補正します。
ですから、PGNソフトを使えない方は、あまり細かいことは気にせず報告書をタイプしてよいのです。でも、指し手の書き間違いは補正できませんよ!
PGNも近頃は..
前項までにあるように、PGNソフトはヒトがタイプした、規約どおりではないデータでも可能な限り補正して読み込む機能を持っています。
これを利用して、本来の規約とは少々異なるファイルも多く流布しています。例えば、1. e4、この 1. と e4 の間には空白が入るのが本来ですが、これらの空白を省いているものをよく見かけます。もちろんPGNソフトは正しく解析できますし、大量のゲームを収録するとなるとファイルの大きさをずいぶんと節約できるわけです。
有名なサイトで配布しているもので、メイトでゲームが終わっているのに # ではなく + で終わらせているPGNがあります。ヒトが読むときには困ることもありますが、PGNソフトでの閲覧には何ら問題ありません。
PGNのコメント
PGNにはコメントを記述する方法も決められています。コメント付きのPGNを見た方もたくさんいらっしゃるでしょう。しかし、世界中でフリーに配布されているPGNにほとんどコメントがないのは著作権が絡んでいると思われます。スコア自体はチェス界の共有財産で著作権なし、コメントには著作権あり、なのでしょう。
PGNとJCCA
頭記のようにJCCAではゲーム記録をPGNで公開するとともに、ゲーム結果報告書の様式もPGNとしています。必要事項を明確にできますし、また再処理にかかる手間を最小に押さえる効果もあります。
会員のみなさんのPGN利用の便に供するため、JCCAではPGNのフリーウェアを用意しています。ごく限られた機能のものですが自局の記録(対局中のポジションの再現)、PGNの閲覧、報告書の作成に使えます。”道具 (Pigeon Log)” 動作環境はWin32です。残念ながらマッキントッシュなどでは使えません。
PGNに関してのごく一部をJCCAからの視点に限って記述しました。