Smart Game Format (SGF)
Smart Game Format(SGF)は、
ボードゲームの
棋譜を保存するために使用されるコンピュータ
ファイルフォーマットです。オープン・コンテント・ライセンスの下で提供されています。
概要
1987年に最初のバージョンが提案され、1999年の第4版が最新版です。SGFフォーマットは特に
囲碁で広く普及していますが、他の
ボードゲームにも対応しています。
歴史
SGFは、Smart Go Boardの作者であるAnders Kierulfによって1987年に提案されました。当初は
コンピュータ[[囲碁]]の標準として提案されましたが、広く受け入れられませんでした。その後、1990年に発表された彼の博士論文で、Smart Go Board用の
ファイルフォーマットとして仕様書が付録として追加されました。この1987年/1990年版が最初のバージョン(FF[1])であり、
囲碁、リバーシ、
チェス、
ナイン・メンズ・モリスの4種類の
ボードゲームに対応していました。
1993年には、Martin MüllerがSGFの仕様を整理し、第3版(FF[3])を発表しました。このバージョンでは、対応するゲームに
五目並べ、
連珠、
シャンチー、
将棋が追加されました(仕様では
五目並べと
連珠は同一として扱われています)。
1997年には、Arno Hollosiが第3版に新機能を追加した第4版(FF[4])を発表しました。
1999年には第5版(FF[5])の制定に向けた議論が開始されましたが、正式な発表には至っていません。また、2002年にはXMLを採用したXGFフォーマット(XML Game Format)が提案されましたが、広く採用されていません。
SGFファイルのGMプロパティはゲームの種類を示しています。FF[4]では、1から40までの40種類が定義されています。
SGFが対応している主な
ボードゲームは以下の通りです。
囲碁
リバーシ
チェス
ナイン・メンズ・モリス
五目並べ
連珠
シャンチー
将棋
仕様
データ形式
SGFはテキストベースのデータ形式を採用しており、ゲーム情報の保存に木構造を使用しています。この木構造では、単純な変化を容易に追加できます。木構造は
セミコロン(;)で親ノードと子ノードを区切り、半角丸括弧((と))で兄弟ノードのグループを表記します。ノードには、プロパティ名[プロパティ値]という形式でプロパティが指定されます。
プロパティ
プロパティ名は、大文字アルファベットのみで定義されています。ノードにおける指定は順不同で行うことができます。プロパティは大別して、根(SGFバージョン(FF)、ゲーム種類(GM)など根ノードでのみ指定可能)、ゲーム情報(黒番と白番のプレイヤー名(PB, PW)、コミ(KM)など一局ごとの情報)、セットアップ(最初から置かれている黒石と白石(AB, AW)など、最初の局面を示す情報)、着手(黒番の着手(B)、白番の着手(W)など)、その他(コメント(C)、悪手(BM)など)に分類されます。
関連項目
棋譜
外部リンク
公式サイト(英語)
棋譜再生・編集ソフト Kiin Editor - 日本棋院
Smart Game Format(英語) - Sensei's Library