Smart Game Format
Smart Game Format(SGF)はボードゲームの棋譜保存に使われるコンピュータファイルフォーマットであり、オープン・コンテント・ライセンスで提供されている[1]。1987年に第1版(FF[1])が提案され、1999年の第4版(FF[4])が最新版である。SGFフォーマットが最も一般に普及しているゲームは囲碁であるが、複数のボードゲームに対応している。
沿革
[編集]SGFは、Smart Go Boardの作者としても知られるAnders Kierulfにより1987年に提案された[2]。このときはコンピュータ囲碁における標準としての提案だったが、広く受け入れられなかったため、1990年に発表された自身の博士論文でSmart Go Board用のファイルフォーマットとして仕様書を付録に入れた[2][3]。この1987年/1990年版が第1版(FF[1])であり、FF[1]では対応するボードゲームが囲碁、リバーシ、チェス、ナイン・メンズ・モリスの4種類だった[4]。
1993年にマルティン・ミュラー(Martin Müller)がSGFの仕様を整理して第3版(FF[3])を発表し[1]、対応するゲームがFF[1]で対応していた4種類に五目並べ、連珠、シャンチー、将棋を加えた7種類(仕様では五目並べと連珠が同一として扱われている)[5]。その後、1997年にアルノ・ホロシ(Arno Hollosi)が第3版から新機能を追加した第4版(FF[4])を発表した[1]。
1999年に第5版(FF[5])制定に向けた議論が開始されたが、正式発表には至っていない[6]。また、2002年にXMLを採用するXGFフォーマット(XML Game Format)が提案されたが[7]、やはり広く採用されていない。
対応ボードゲーム
[編集]SGFファイルのGMプロパティはゲーム種類を示しており、FF[4]では1から40までの40種が定義されている[8]。
SGFが対応している主要なボードゲームには以下のものがある。
GMプロパティ | ボードゲーム | 注釈 |
---|---|---|
1 | 囲碁 | |
2 | リバーシ | |
3 | チェス | Portable Game Notation形式が一般的。 |
4 | 五目並べ、連珠 | 五目並べと連珠は同一扱い |
5 | ナイン・メンズ・モリス | |
6 | バックギャモン | |
7 | シャンチー | |
8 | 将棋 | |
11 | ヘックス | |
12 | 闘獣棋 | |
17 | タントリックス | |
21 | ツイクスト |
仕様
[編集]データ形式
[編集]SGFはテキストベースのデータ形式を採用し、ゲーム情報の保存に木構造表現を使用するが、この木構造では単純な変化を追加することができる[9]。この木構造ではセミコロン(;
)で親ノードと子ノードを区切り、半角丸括弧((
と)
)で兄弟ノードのグループを表記する[9]。また、ノードにはプロパティ名[プロパティ値]
という形でプロパティが指定される[9]。
プロパティ
[編集]プロパティ名は大文字アルファベットでのみ定義されており、ノードにおける指定では順不同で指定できる[9]。プロパティは根(SGFバージョン(FF)、ゲーム種類(GM)など根ノードでのみ指定できる)、ゲーム情報(黒番と白番のプレイヤー名(PB, PW)、コミ(KM)など一局ごとの情報)、セットアップ(最初から置かれている黒石と白石(AB, AW)など、最初の局面を示す情報)、着手(黒番の着手(B)、白番の着手(W)など)、その他(コメント(C)、悪手(BM)など)に大別される[8][9]。
プロパティ名 | 種類 | プロパティ値の例 | 説明 |
---|---|---|---|
FF | 根プロパティ | 4 | SGFのバージョン |
GM | 根プロパティ | 1 | ゲームの種類(#対応ボードゲームを参照) |
CA | 根プロパティ | UTF-8 | 文字セット |
AP | 根プロパティ | CGoban:1.6.2 | アプリケーション名とバージョン |
SZ | 根プロパティ | 19、9:10 | ゲームボードのサイズ |
DT | ゲーム情報 | 2020-09-21 | 対局日付 |
EV | ゲーム情報 | ABCトーナメント | 大会名 |
HA | ゲーム情報 | 2 | 置き石の数(囲碁専用プロパティ) |
KM | ゲーム情報 | 5.5 | コミ(囲碁専用プロパティ) |
PB | ゲーム情報 | 田中 | 黒番のプレイヤー名 |
PW | ゲーム情報 | 佐藤 | 白番のプレイヤー名 |
RE | ゲーム情報 | W+0.5 | 対局結果 |
RU | ゲーム情報 | Japanese | 適用ルール |
TM | ゲーム情報 | 3600 | 持ち時間 |
AB | セットアップ | cc | 最初から置かれている黒石 |
AW | セットアップ | dd | 最初から置かれている白石 |
PL | セットアップ | W | 手番 |
B | 着手プロパティ | cc | 黒番の着手 |
W | 着手プロパティ | dd | 白番の着手 |
BM | 着手プロパティ | 悪手 | |
IT | 着手プロパティ | 妙手 | |
TE | 着手プロパティ | 手筋 | |
C | その他 | これはコメントです。 | コメント |
脚注
[編集]- ^ a b c Hollosi, Arno (12 September 1999). "SGF User Guide Version 1.2" (英語). 2020年9月21日閲覧。
- ^ a b Ormerod, David (1 May 2011). "An interview with Anders Kierulf of SmartGo" (英語). Go Game Guru. 2016年12月24日時点のオリジナルよりアーカイブ。2020年9月21日閲覧。
- ^ Keirulf, Anders (1990). Smart Game Board: a Workbench for Game-Playing Programs, with Go and Othello as Case Studies (Thesis) (英語). Zürich: ETH Zürich. doi:10.3929/ethz-a-000578364。
- ^ Kierulf, Anders (30 January 1995) [1990]. Müller, Martin (ed.). "File Format FF[1]" (英語). 2020年9月21日閲覧。
- ^ Müller, Martin (1 March 1995). "Smart Game File Format FF[3]" (英語). 2020年9月21日閲覧。
- ^ "SGF FF[5] - Discussion" (英語). 19 March 1999. 2020年9月21日閲覧。
- ^ Hollosi, Arno (7 April 2002). "XGF - An XML Game Format" (英語). 2020年9月21日閲覧。
- ^ a b c d "SGF Properties (FF[4])" (英語). 25 June 2006. 2020年9月21日閲覧。
- ^ a b c d e "SGF file format FF[4]" (英語). 6 August 2006. 2020年9月21日閲覧。