よくある質問(FAQ)
blunderDB の用途は何ですか?
blunderDB を使うと、パーソナライズされたポジションのデータベースを構築できます。その強みは、事前に a priori な分類を一切前提としないことです。ユーザーは、レース、ストラクチャー、キューブ、スコア、遅れたチェッカー、ゾーン内のチェッカー、勝利/ギャモン/バックギャモンの確率など、好みの条件を自由に組み合わせて、非常に柔軟にポジションを検索できます。
blunderDB のもう一つの便利な使い方は、参照ポジションのカタログを作成することです。ポジションにタグを付ける機能により、ユーザーは単一のファイルを使用してすべての参照ポジションを構造化された方法でまとめることができます。blunderDB がプレイヤー間でのポジション共有を促進することを願っています。
blunderDB 作成の動機は何ですか?
以前は、興味深いポジションやブランダーをさまざまなフォルダに保存していました。しかし、当初のテーマ別カテゴリー選択では想定していなかった条件でポジションを見つけるのに苦労していました。例えば、ポジションがゲームの種類(レース、ホールディングゲーム、ブリッツ、バックゲームなど)で分類されていた場合、ある特定のスコアでのすべてのポジション、あるいはある特定のキューブレベルでのポジションをどうやって取り出せばよいのでしょうか。さらに、古いポジションの一部は忘れ去られがちでした。私は、自分のすべてのポジションを一つに集約し、事前にテーマ別カテゴリーを前提とせず、その後データベースに質問を投げかけられるツールが欲しかったのです。この柔軟なアプローチにより、ポジションの整理を壊すことなく新しいフィルターを追加できます。この種のソフトウェアは、ChessBase のようにチェスの世界ではごく一般的です。
ポジションのカテゴリごとに異なるデータベースを作成する必要がありますか?
よく特定された理由がない限り、将来の検索で関連付けられなくなるリスクを冒してまで、ポジションを別々のデータベースに分散させないことが重要です。blunderDB の哲学は、事前にポジションのカテゴリーを前提とせず、ユーザーが柔軟に検索できるようにすることです。特別な状況や特定の理由でポジションに出会った場合には、それらを別のデータベースに保存するのが賢明なこともあります。例えば、次のような別々のポジションデータベースを構築できます。
参照ポジション、
リアルトーナメントでのブランダー、
オンラインプレイでのブランダー。
複数のデータベースを統合するにはどうすればよいですか?
まとめたい blunderDB のデータベースが複数ある場合は、データベースを統合ボタン(CTRL-SHIFT-I)を使う:
主となるデータベース(局面を受け取る側)を開く
ツールバーのデータベースを統合をクリックする
統合するデータベースを選ぶ
blunderDB が局面を統合する
統合の際、blunderDB は重複を避けます。すでにあるポジションが二重になることはなく、異なるエンジンの分析は互いを上書きせずに共存します(インポート:何が書き込まれ、何が決して書き込まれないかを参照)。
注釈
別のデータベースをインポートする前に、メインデータベースのバックアップコピーを作成することをお勧めします。
どのマッチファイル形式がサポートされていますか?
blunderDB は以下のマッチ形式をサポートしています:
eXtreme Gammon (XG):.xg ファイル。完全な手の解析、キューブ決定、プレイした手、マルチエンジンサポートを含みます。解析付きの個別ポジションのインポートには .xgp ファイル。
GNUbg:解析付きの .sgf ファイル(Smart Game Format)。
Jellyfish:.mat および .txt ファイル。
BGBlitz:.bgf ファイルおよびテキストポジション。
HedgeHog(OpenGammon):解析付きの .ogxm ファイル。
インポートは、単一ファイル、複数選択、再帰的なフォルダー、クリップボードからの貼り付け、またはドラッグアンドドロップで行えます。
blunderDB は自動的に重複を検出し、データベースにすでに存在するマッチのインポートを防ぎます。
オンラインで指したマッチはインポートできますか。
できる、ただし迂回して:Backgammon Studio (Heroes)、Backgammon Galaxy、GammonSpace の三つはいずれも eXtreme Gammon が読めるファイルを出力する——Studio は XG のフォルダに置く統合パッケージまで配布している。これらのマッチは既存の .xg の経路で blunderDB に入るので、専用の読み取り機は要らない。
注釈
この迂回が正確に何を運ぶか——解析、出目の運、マーク、コメント——は測定されていない。三つのプラットフォームそれぞれから書き出したマッチが必要になる。手元にあり、インポートで何かが失われるなら、そのファイルを添えて issue を開いてほしい:専用の読み取り機が要るかどうかを決めるのは推測ではなく測定である。
GNU Backgammon がすでに読める古いテキスト形式——.sgg(GridGammon)、.tmg、.gam、Snowie の .txt——も同じ立場にある:GNU Backgammon を経由すれば今日でもインポートできる。
データベースを複数のマシン間で同期できますか。
blunderDB のデータベースは一つのファイルである。そのおかげでバックアップも複製も簡単であり、それが答えを決める:
Dropbox、Syncthing、iCloud、OneDrive:使える。ただし一つ条件がある——データベースを両側で同時に開かないこと。これらはファイルを同期するのであって同時書き込みを同期するのではない:並行して書く二つのインスタンスは競合を生み、サービスは一方を残して他方の名前を変えることで解決する。blunderDB は開いたファイルに書き込みロックをかけるので同一マシンは守られるが、どのロックも同期サービスを越えない。
複数のマシンで同時に:これに答えるのが
serveモードである(ヘッドレスモード(サーバー) を参照)。デーモンがデータベースを保持し、各マシンがそこに接続する。書き手は常に一つだけになる。分岐した二つのデータベース:同期ではなく統合される——上の「複数のデータベースを統合するには」を参照。Zobrist 指紋による重複排除が仕事をする:共通の局面は重複せず、その解析とコメントは結合される。これは統合であって調停ではない:一方が削除したからといって他方から何かが消えることはない。
blunderDB を使うのに eXtreme Gammon は必要ですか?
いいえ。blunderDB は GNUbg、BGBlitz、Jellyfish のファイルも読み込めますし、内蔵の評価エンジン(gammonNet)はサードパーティのソフトウェアに依存せずどんなポジションでも分析します — 詳しくは下記の「内蔵の評価エンジンはどれほどのものですか?」を参照してください。ただし、XG のインポートは最も完全な分析(手、キューブの決断、フラグ、ロールの運)をもたらします。これは統計が最も豊富に活用する形式です。
すでに eXtreme Gammon を使っています。blunderDB は何の役に立ちますか?
blunderDB はマッチを打ち直すのではなく、集めます。具体的な違いは三つです:
集約する:XG、GNUbg、BGBlitz、Jellyfish から来たマッチを、ポジション単位で重複を除きながら一つのファイルにまとめます。
検索する:チェッカーの構造とエラーで探せます。「このスコアで 50 ミリポイント以上を失ったテイク」は、コマンドライン1行で書けます(コマンド一覧を参照)。
復習する:選び出したポジションを、Anki のデッキで間隔反復により復習します(Anki パネルを参照)。
あなたの XG の分析は XG のものであり続けます。blunderDB はそれをそのまま取り込み、再計算することは決してありません(インポート:何が書き込まれ、何が決して書き込まれないかを参照)。
XG のロールアウトはインポートされますか? blunderDB はロールアウトを行いますか?
どちらもいいえ、です。XG の分析からインポートが保持するのは、水準のラベル(「3-ply」、「XG Roller++」、「Book」)、エクイティ、エラー、確率です。.xg ファイルのロールアウトのデータは開かないので、試行回数も標準偏差も取り込みません。これに対し、テキストとして貼り付けられた XG の分析は、「Rollout」を含めてラベルを文字どおりそのまま保ちます。内蔵の評価エンジンのほうはロールアウトを行いません。0 手先または 2 手先までの探索で答えます。
内蔵の評価エンジンについて、何が測定され、何が測定されていないのですか?
測定は一つ公開されています。Eval パネルの 評価 方式についてのもので、マネーのレースの決定 4000 件を正確なベアオフの表と比較しました——判定の一致は 93.4 %(3735/4000)ですが、テイクポイントから 1 % 未満のところでは 61.1 % にとどまり、20 % を超えるところでは 94.4 % です。勝率の差は平均 0.85 %、最大 8.30 %。測定されていないのは、マッチスコアでのキューブの判定と接触のあるポジションで、これらについては数値は公開されていません。前提の詳細は Eval パネルの方法論と仮定 にあります。
コレクションとは何ですか?
コレクションはポジションのカスタムグループです。動的なフィルター検索とは異なり、コレクションはユーザーが手動で選択した固定のポジションセットです。コレクションは、例えば特定のテーマの参照ポジションをまとめるために使用できます。
EPC とは何ですか?
EPC(Effective Pip Count)は、ベアオフポジションを評価するための単純なピップカウントよりも正確な測定値です。blunderDB の Eval パネルは、初回起動時にマシン上で計算される、GNUbg のものと同一の 6 ポイントベアオフテーブルを使用し、EPC、平均ロール数、標準偏差、ピップカウント、ウェイステージをリアルタイムで計算します。
純粋なベアオフのポジションでは、パネルには手番のプレイヤーの勝率も表示され、そのポジションが two-sided データベース(初回起動時に計算される TS-06-06 テーブル、または設定の Bearoff タブから計算する拡張テーブル TS-06-11)でカバーされている場合は、正確なマネーゲームのキューブの判定も表示されます。この範囲外では、勝率は誤差の範囲付きで推定され、判定は意図的に表示されません。各仮定の詳細は、マニュアルの「Eval パネルの方法論と仮定」の節を参照してください。
内蔵の評価エンジン(gammonNet)はどれほどのものですか?
gammonNet は第三者によって学習されたニューラルネットワークで(謝辞を参照)、Go 言語に移植されて blunderDB にコンパイルされています。外部ソフトウェアもネットワーク接続も一切不要です。インポートされていないポジションに対して XG や GNUbg の役割を果たします — 0 手先または 2 手先までの探索、Janowski に基づくキューブの決断と blunderDB のマッチエクイティテーブルを使い、スコアを考慮します。市場で唯一の、あるいは必ずしも最良のエンジンというわけではありません。アカウントも購読も不要にオフラインで、あなたが見ているそのポジションについて動作するものです。もちろん、XG や GNUbg の分析が存在する場合にそれをインポートすることも妨げません — 両方のソースは共存し、各分析の由来を示す列があります。マニュアルの「Eval パネル」と「Eval パネルの方法論と前提」の節を参照してください。
それが数字で何を意味するか。組み込みの正確な表が覆うベアオフ局面——オラクルが存在する唯一の場所——では、2 プライの gammonNet は93,4 % の場合に同じキューブ判定を出し、食い違いはちょうどテイクポイントに集まる(テイクポイントから 1 % 以内で一致 61 %、10 % を超えると 94 %):そこは二つの正当な手法が僅差の判断で最も分かれる場所であって、広く薄い誤りではない。詳細と方法は「Eval パネルの方法論と仮定」にある。
同じ問いを参照コーパスではなくあなたのライブラリについて問うなら、blunderdb analyze --compare が組み込みエンジンを XG や GNUbg のファイルから来た解析と比較する——最善手の一致、食い違いの代償、ゲームの段階ごとの内訳——何も書かずに。
PR と Snowie Error Rate の違いは何ですか?
PR(Performance Rating)は、カウントされた決定あたりの平均エクイティエラーに、eXtreme Gammon や GNUbg と同じく 500 を掛けたものであり、低いほどよいプレイをしていることになります。Snowie Error Rate は、同じ平均を 決定 の数ではなく 手 の数に対して表します — したがって、マッチが長くなっても SER が機械的に悪化することはありません。blunderDB は両方を Stats パネルに表示し、eXtreme Gammon と GNUbg の慣習に合わせています(計算規則の詳細については 付録:統計モデル — XG / gnuBG / blunderDB の整合 を参照してください)。
blunderDB にはコマンドラインインターフェースがありますか?
はい、blunderDB にはコマンドラインインターフェース(CLI)があり、グラフィカルインターフェースなしでデータベースの作成、マッチのインポート、エクスポート、ポジションの検索、統計の表示などの操作を実行できます。詳細については CLI ドキュメントを参照してください。
blunderDB はサーバーモードを提供していますか?
はい、オプションの「headless」モードがあります。同じバイナリを serve で起動すると、blunderDB のエンジンを認証を行うリバースプロキシの背後で HTTP + JSON として公開します(blunderDB 自体は一切認証を行いません)。SQLite でも、マルチテナントの PostgreSQL でも動作させることができ、自分のスクリプトや自作アプリケーションから HTTP + JSON で blunderDB を操作したり——ウェブインターフェースはありません——複数のプレイヤー間でデータベースを共有したりするのに役立ちます。通常の使い方はデスクトップアプリケーションのままです。詳細(すぐに使える Docker イメージを含む)については ヘッドレスモード(サーバー) を、ユーザーガイドの「サーバーモードをプロキシの背後に展開する」のチュートリアルも参照してください。
blunderDB を変更、コピー、共有できますか?
はい、もちろんです(むしろ推奨されています)。blunderDB は MIT ライセンスの下にあります。
データはどこに保存されますか?
データベースを作成したときに選んだ .db ファイルとして、あなたのディスク上に保存されます。アカウントも、サーバーも、デフォルトでの同期もありません。デスクトップアプリケーションはこのファイルを直接開きます。オプションのサーバーモード(上記参照)だけが blunderDB を遠隔で動作させ、その場合はあなた自身がそのサーバーをホストすることになります。
データベースを他のプレイヤーと共有できますか?
はい。blunderDB のデータベースは単なるファイルなので、コピーするか送信するだけで十分です。データベースを第三者に配布するには、エクスポート時に選択できる二つのオプション機能があり、単なるコピーではなく 管理された 配布にすることができます。出所の透かしは、あなたの発行者アイデンティティでファイルに署名します(改ざん不可能で、Metadata パネルまたは blunderdb info で読み取れ、受信側には一切何も記録されません)。また、パスワード保護は暗号化された .dbx ファイルを生成します。マニュアルの データベースの配布:出所とパスワード を参照してください。
blunderDB はどのデータ形式を使用していますか?
データベースは単純な SQLite ファイルです。blunderDB がない場合でも、任意の SQLite ファイルエディターで開くことができます。
blunderDB の設計原則は何でしたか?
私はとっつきやすいインターフェースを望んでいましたが、それ以上に、ポジションや検索を次々とこなす高度で継続的な利用を想定して設計しました。スペース キーを押すと開くコマンドラインとキーボードショートカットは、その利用を支えるものであり、必須ではありません。
また、私は blunderDB を軽量で自己完結型、インストール不要で、さまざまなプラットフォームで利用できるものにしたいと考えていました。そのため、Go 言語と Svelte ライブラリを選びました。データベースのシリアライズについては、ファイル形式がマルチプラットフォームであり、データベースを格納するのに適している必要がありました。SQLite のファイル形式はまさに最適だと思われました。
また、データベースは単一のファイルのままであってほしいと考えていました。コピーしたり、バックアップしたり、別のプレイヤーに送ったりできるようにです。
最後に、blunderDB はデスクトップアプリケーションにとどまりません。同じバイナリがコマンドラインインターフェースと、任意のサーバーモードを提供し、サーバーモードはマルチユーザー環境では PostgreSQL を利用できます。とはいえ、通常の使い方はデスクトップアプリケーションのままです。コマンドラインインターフェース(CLI) および ヘッドレスモード(サーバー) を参照してください。
blunderDB のソフトウェアアーキテクチャは何ですか?
バックエンドは Go でコーディングされています。ポジションを保存する SQLite データベースのすべての操作を担当します。
フロントエンドは Svelte でコーディングされています。グラフィカルインターフェースとバックギャモンボードのレンダリングを担当します。
アプリケーションは Wails でパッケージ化されており、Windows、Linux、macOS 向けのネイティブなデスクトップアプリケーションを生成できます。
データベースは SQLite で管理されています。
任意のサーバーモードでは、マルチユーザー環境向けに SQLite の代わりに PostgreSQL を利用できます。
内蔵の評価エンジン(gammonNet、MIT ライセンス)は、Go 言語に移植されて blunderDB にコンパイルされたニューラルネットワークです。XG も GNUbg も使わずに、どんなポジションでもオフラインで評価します。詳しくは下記の「内蔵の評価エンジンはどれほどのものですか?」を参照してください。
詳細については、blunderDB GitHub リポジトリ を参照してください。
blunderDB はどのプラットフォームで動作しますか?
blunderDB は Windows、Linux、Mac で動作します。
blunderDB のアイコンはどこから来ていますか?
blunderDB のアイコンは SMirC シリーズ の "goggling" 絵文字です。
現在のデータベースを保存するにはどうすればよいですか?
データベースはリクエスト実行直後に更新されます。明示的な保存操作は不要です。