Babascript:人とコンピュータの協調による処理実行環境

-----------------------------
review comment 1
-----------------------------
■ 総合点
2
■ 確信度
2
■ 査読コメント
人間にしかできないタスクを実現するために、プログラミング中で人を計算資源にする考え方は新規性があり、かつ興味深いと感じます。特に、定義されていないメソッドを人への命令構文と解釈する実装はとても面白いと思いました。また、これで効果が得られるのであれば、シンプルな実装であるところも良い点だと思います(これだけシンプルなのに、これだけ効果が得られる)。

しかし、シンプルであるがゆえに効果が気になります。特に、現実や人間をプログラミングに組み入れるインタラクションを目指しているにもかかわらず、人間の特性が考慮された実装になっていないと感じます。ゆえに、有用性に疑問があります。

すなわち、6章の「考察」のうち6.3節~6.6節が、何らかの観点から実装されている必要があるのではないかと思います。
現時点の実装では、人間を組み入れようという枠組みまでは実装できていても、では人間を組み入れるためには何をすべきかという観点からの実装がなされていません。

例えば、6.3節に関しては、プログラミングにおいては「命令」でも、相手が人間になるために「命令」というだけでない何らかの実装が必要そうです。
また、6.5節
「抽象度が高すぎる命令は、あいまいな表記となり、タスク実行者にとって理解しづらい文面となり得る。」
に関しては、定義されていないメソッドを人への命令と解釈させることが本研究のメインの機能の一つだと査読者は理解しているのですが、それが考慮された実装ではないという印象を受けました。

以上の理由から今回の評点としました。

また、論文の質を改善するためのコメントを以下に列挙します。可能な範囲で修正など対応いただけますでしょうか。

・論文中に文字化け(7章の「crowdforge-?」)や不完全な文(5.1節の第一段落)があります。推敲の上、適切に修正してください。

・文章の語尾が論文としてあまり一般的ではないと感じます。具体的には、「人力処理を実現するための仕組みだ。」の「だ。」は、「である。」とするのが良いのではと思います。

・DSLという用語が定義なしに利用されていますが、Domain Specific Language のことでしょうか。これがどういう意味で、本インタフェースでの必要性などについて説明いただくと良いと思います。

・コード例の記述でおかしな点がいくつかあります。
「// こういった情報はセンサーで取るのが」は、文がおかしい
「sho部屋の温度を上げてください.();」と「show部屋の温度を下げてください.();」の違い

・どういうタスクは可能で、どういうタスクは不可能なのか、研究のスコープを明確にしていただきたいと思います。

最後に、採択された場合の発表内容、議論内容に関しては、応用例だけでなく、実際にどういう時にどう使えるのかの実例を示していただければと感じました。
■ レビューサマリー
問題設定やアプローチ、将来の可能性などに関して、興味深い論文・WISSとして議論したい論文と査読されました。
しかし、各査読者が指摘しているように、論文中の記述について改善すべき点がありますので、見直し・推敲の上、修正いただけますでしょうか。

また、Ahmadらによる
「The Dog Programming Language」
http://www.salmanahmad.com/research.html
http://www.media.mit.edu/research/groups/social-computing
とそれに関する論文
The Jabberwocky Programming Environment for Structured Social Computing
http://dl.acm.org/citation.cfm?id=2047203
The Dog Programming Language
http://dl.acm.org/citation.cfm?id=2502026
は、"By switching between machine and human computation" という観点から、本研究と関連があるのではと思います。必要に応じて引用した上で、本研究の新規性を主張していただければと思います。



-----------------------------
review comment 2
-----------------------------
■ 総合点
4
■ 確信度
2
■ 査読コメント
タスクや計算の処理系に人の知覚や思考など結果の判断を取り込むことを前提としたプログラミング環境の提案をしている。

非常に面白い提案に思いましたし、ぜひWISSで議論するべきテーマだと思いました。ヒューマンコンピュテーションの流れもありますが、インターネット前提で個人がつながる時代のプログラムのあり方としても興味深いと感じました。

もう少し具体的な利用事例を発表時に紹介していただくと、議論も深まるのではないかと思いました。

また、
いくつか記述がおかしいところが見受けられました。たとえば以下2点

2.2のソースコードの中
>sho部屋の温度を上げてください.(); 
これはshowでしょうか?

5.1の1段落目
「みでもできてしまい、部分部分で人の意思や感性、 知識を加えるだけで良い –¿」
という記述がよくわかりません。



-----------------------------
review comment 3
-----------------------------
■ 総合点
4
■ 確信度
3
■ 査読コメント
興味深く拝読いたしました.簡易な仕組みで便利そうなサービスを仕立てられそうな可能性を評価します.しかし,技術的な点について不明な点がありますので,修正をお願いいたします.ビデオでシステムが動作する様子はわかったのですが,5-6節の議論は一般的かつ抽象的なものであり,議論の中心が実装技術に留まり,実際の事例に即して協働作業などでの効果の分析がなされていなかったのは残念です.採択された場合には,その点についてさらに踏み込んだ評価を期待いたします.

以下のコメントは主に技術的な面についてです.

Listing 1, L 16 の直前に isDrying = false は不要なのでしょうか?

2.1 基本仕様に format: { Boolean/String/Number/List } の説明を加えて下さい.Listing 1 とその説明から推察するに format が省略された場合には Boolean となるように思われます.そのことの説明を加えて下さい.

スクリプトの基本的な仕様は「人.タスク(format, callback)」のようなのですが,callback が省略された場合(Listing 2, L12, L14)の仕様について説明して下さい.想像するに,クライアントには命令と「やりました」ボタンのようなものが提示されるものと思われます.(人間相手のシステムとしては,「嫌だ」,「あとでやる」とか,「また通知してね」とかもあるのではないかと思うのですが...)

Broadcast の仕様の説明で,ブロードキャスト発生時にすぐにクライアントにタスクが配信されるとの説明がありますが,これは元々の Gelernter の Linda 計算のモデル(Gelernter, David; Carriero, Nicholas (1992). "Coordination Languages and their Significance". Communications of the ACM. doi:10.1145/129630.129635 を引用して下さい)と異なります.これは Node-Linda の仕様なのでしょうか.また,配信相手を知っているのであれば { broadcast: 3 } のように配信を待っているクライアント数を明記する必要はないように思います.{ broadcast: 3 } の表記を見たときは,クライアント数だけ Linda オブジェクトの複製を用意し,いずれ Linda に接続するクライアントにその数だけ消費してもらうのであろうと思っていたので,混乱しています.

BabaScript で用意されている,タスクへの応答パターンは,Boolean/List/Number/String があるようですが,それぞれについて BabaScript DSL,クライアントライブラリ,ウェブアプリケーション層にてサポートがなされているように思いますが,クライアントライブラリ(Listing 3)も3.2 Webアプリケーションの説明も Boolean のみしかないことを前提に書かれております.実際には format を確認の上分岐し,各 format に沿って適切な動作をするのではないかと推察されます.誤解を与えないように正確な説明をお願いします.

以下は論文の改善を要すべき箇所の指摘です.

原稿がところどころ尻切れ蜻蛉になっています.Listing 1, L8, section 5.1 paragraph 1, section 7 crowdforge-> ほかにもあると思います.十分な推敲作業をして下さい.

2 BabaScript の直後: 図1 → Listing 1

Listing 2の直前: プログラム例2 → Listing 2

Listing 2の表題に (Boolean) が付せられていますが,(List) の誤りではありませんか

Listing 2: L12 おそらくピリオドの位置が間違っています.

Listing 2: L14 show → sho では?また,この行でもおそらくピリオドの位置が間違っています

section 3: システム名が間違っています