Smart Game FormatSGF)はボードゲーム棋譜保存に使われるコンピュータファイルフォーマットであり、オープン・コンテント・ライセンス英語版で提供されている[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が対応している主要なボードゲームには以下のものがある。

SGFが対応している主要なボードゲーム[8]
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]

主要なプロパティ[8]
プロパティ名 種類 プロパティ値の例 説明
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 その他 これはコメントです。 コメント

脚注編集

  1. ^ a b c Hollosi, Arno (12 September 1999). "SGF User Guide Version 1.2" (英語). 2020年9月21日閲覧
  2. ^ a b Ormerod, David (1 May 2011). "An interview with Anders Kierulf of SmartGo" (英語). Go Game Guru. 2016年12月24日時点のオリジナルよりアーカイブ。2020年9月21日閲覧
  3. ^ 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
  4. ^ Kierulf, Anders (30 January 1995) [1990]. Müller, Martin (ed.). "File Format FF[1]" (英語). 2020年9月21日閲覧
  5. ^ Müller, Martin (1 March 1995). "Smart Game File Format FF[3]" (英語). 2020年9月21日閲覧
  6. ^ "SGF FF[5] - Discussion" (英語). 19 March 1999. 2020年9月21日閲覧
  7. ^ Hollosi, Arno (7 April 2002). "XGF - An XML Game Format" (英語). 2020年9月21日閲覧
  8. ^ a b c d "SGF Properties (FF[4])" (英語). 25 June 2006. 2020年9月21日閲覧
  9. ^ a b c d e "SGF file format FF[4]" (英語). 6 August 2006. 2020年9月21日閲覧

関連項目編集

外部リンク編集