wdoorにあったらいいなと思うWebAPI(案)

http://wdoor.c.u-tokyo.ac.jp/shogi/

金子さんのブログのコメント欄に書くには長いので、
自分の所に書きます。
手間が発生しますので、あくまでアイデアとしてです。

  • 簡易対局情報提供API

floodgateで、リアルタイムの対局情報を利用して何かエンタメ的に見せるサービスを作りたいのですが、
基本的に、ユーザーが自分でログインして情報を取得する仕組みなので、状態がからむのでちょっとCGIから呼ぶには呼びにくい感じがします。


最近のWEBの主流であるマッシュアップ的な簡単に呼べるWEBAPIがあると便利かなあと思います
(今でも拡張ログインしてモニター機能を使えばできるかもしれませんが、状態とかあって使うのがたいへんだったりますので)


たとえば

http://wdoor.c.u-tokyo.ac.jp/shogi/api?cmd=now

とかやると、
現在対局中の局面が、SFEN形式で帰ってくる


5局対局中なら、5行のテキストラインで表現できます。


対局数は行数で判別できます。SFENは将棋所の作者が定義中のUSI仕様に含まれる1行で、局面と持ち駒を表現する形式
(CSAやKIF形式では、1局面を複数行で表現していて、解釈が面倒)


↑これがあればオープン戦のようにブラウザ1画面で複数対局を把握できます



APIで局面情報を取得できれば、それをパースしてPerlPHPなどのCGIで、棋譜を表示できます。
もちろんwdoor自身がJavaScriptプレイヤーを持っていますし、CSA拡張子から、柿木さんの棋譜プレイヤーを起動することもできるでしょうが、


マッシュアップできる仕組みがあれば、そこからどんなサービスをやるかは、サービス開発者自身が工夫できますので、
思いもしなかった利用法が生まれるかもしれないです。


ただ、1秒リロードするわけにもいかないので、ソケット通信でコネクションをはって、
局面が更新されたら、クライアントに送信してくるって仕様がいちばんかもしれません
それだと、現行の拡張ログインと大して変わらないかもしれませんが……


あと、もう一点アイデアが、どこかの将棋関係のブログで読んだ意見なのですが、


WEBで棋譜を見せている将棋愛好家は多いと思いますが、
そこから、駒を動かしてみて、どういう手があるか検討しようと思ったときに、将棋探索力を提供するサービスが、
現在、世の中にありません。


もちろんアプリケーションとして激指なりAI将棋なりを持っていれば、ローカルで検討はできるでしょう。
しかし、棋譜や戦法、局面図をブログに掲載、もしくわWEBで公開している愛好者にとって、
ブラウザ上で、ユーザーに、検討手段を提供するAPIを提供するというのは、
意義があるんじゃないかと思います。

http://wdoor.c.u-tokyo.ac.jp/shogi/api?cmd=next&sfen=局面情報

具体的には、wdoorに常駐している思考エンジンに局面を与えて、次の一手を返して貰うインタフェース。
エンジンをランダム選択、もしくは特定エンジンを指名できると面白いです。
対戦中は返答できないですが、対局していないときは、可能だと思います
(ただ、プロトコルを変更する必要があるので、エンジン側のプロトコルも変えないといけませんが……)
CGIをやるのにレンタルサーバーは借りられますが、CPU負荷100%になるC言語アプリを動かせるサーバーを用意するには
自宅サーバーしか無く、なかなか個人には難しいんですよねえ(^^;

思考エンジンを指定して次の1手を受け取れるAPIがあれば、次の一手問題を複数のエンジンに解かせて違いを検討して見せる面白さも提供できると思います


次の一手返信APIがあれば、ネット上で、詰め将棋道場を運用したいと思っている人も使えると思います
重要なのは、思考エンジンを作ることが目的じゃなくて、将棋が好きで、詰め将棋道場を、ウェブで運営したいと思っている
サービス主体者に、パワーを提供すること。
将棋の普及活動にも広く活用できることじゃないかと思います。
こういうのは、日本将棋連盟がやってもいいとは思いますが……


↑次の1手返送APIがあれば、CGIPHPから呼び出して、携帯向けの対局サービスを創ることも可能


↑技術的には、MYCOMがiModeで提供している激指サービスと同じ手法。