jnobuyukiのブログ

研究していて困ったことやその解決に関するメモ。同じように困ったあなたのために。twitter ID: @j_nobuyuki

すべてWebで‐研究のためのWebアプリケーション技術‐

今回は、このブログで取り上げているwebアプリケーション技術(Javascript, D3.js, Google Chartsなど)が私のような研究者にとってどのような可能性を持つのかを考えてみたいと思います。

webブラウザは、ご存知の通り、インターネットを閲覧するためのインターフェイスです。ブラウザを通して、世界中の情報にアクセスできます。しかし、近年のwebアプリケーション技術の進歩によって、ブラウザは文字と画像以外のものを提供できるようになりつつあります。

このような感想は私だけのものではありません。例えばGoogleChromeの開発をされている及川卓也氏は日経電子版の記事で、Googleの流儀としてのイノベーションについて発言されています。それによれば、「webブラウザはインターネットを閲覧するためのビューアである」という固定観念を捨て、「インターネットの入り口であり、情報の閲覧以上の価値をユーザーに提供する」プラットフォームとして、Chromeが開発されているようです。
(他にもとても興味深い発言をされています。とても良い記事なので、記事の詳細をぜひ検索してご覧ください。)

及川氏の記事を読んだ後、なぜ自分がWeb技術を学んでいるのかを改めて考えてみました。漠然と面白そうとしか考えていなかったweb技術の学習にきちんと意味と目的を持たせてみようと思ったわけです。そして答えの一つがこれです。

「研究ツールとしてのwebアプリケーション技術」

どうしてwebアプリケーション技術を使いこなすことが研究に役立つのかを以下で説明します。
ここでは話題の抽象性を高め過ぎないように(実験を伴う)心理学に話を限定します。ですが、他の研究領域でも当てはまる内容があると思います。

心理学の中でも実験アプローチをとる研究のプロジェクトはだいたい次のように進行します。


各過程では以下のような作業があります。

研究計画

この段階では、自分のアイデアを検証できるような設定を考えます。どのような人を対象に、どのような課題をやってもらったり、どのような質問に答えてもらうのかを決めます。また、最初に考えたアイデアに従うと、どんな結果が予測されるかを明らかにしておきます。

実験/調査の実施

イデアをもとに実際の実験状況を設定し、参加者の反応を記録します。問題を出した時の正答率や答えまでの反応時間、質問の回答として選ばれた選択肢などがデータとして収集されます。

データ解析

集めたデータが、最初のアイデアでうまく説明できるかを検証します。単に数字の大小を見るのではなく、統計学で認められた手続きに基づいた検定を行います。

結果の発表

グラフや表としてみやすい形に結果をまとめます。学会発表ではプレゼンテーションを行ったり、ポスター発表をしたりします。または、論文を執筆します。

次に、各過程で必要な道具は以下のようになります。

研究計画

この段階は、もちろん紙とペンだけでもできます。デジタルの画像や音声を用いるなら専用のソフトウエアをつかいます。例えば、画像ならイラストレーターやフォトショップで色や大きさを調整します。音声ならマイクとレコーダーで録音をした後で、Praatのような音声の解析・合成ソフトで音の大きさ、高さ、長さを調整します。

実験/調査の実施

この段階は、質問形式の調査を行うか、実験を行うかでやり方が違います。質問形式ならば、紙に質問を印刷すればいいので、ワードやエクセルがあれば十分対応できます。実験をする場合、自分でC言語などで画像提示や反応の取得のためのプログラムを作成します。複雑なプログラムがかけなくても、E-primeやSuperLabなどの心理学実験パッケージソフトを利用できます。

データ解析

最近の研究では、ほとんどの場合で何らかの統計パッケージソフトを使用します。代表的なものとして、SPSSSAS、Statistica、MATLABの統計パッケージ、R言語などがあります。

結果の発表

結果を示すグラフや表はエクセルや統計パッケージソフトを使います。学会発表では、パワーポイントやPreziなどのプレゼンテーションソフトを使います。論文の執筆はワードのようなソフトを使うのが主流です。

すべてwebで

以上のように、研究には実に様々なソフトウエアを使いこなす必要があります。これらのソフトを操作するプログラム言語は全て異なるので、単純な操作を覚えるだけでもかなりの年月が必要になります。ここで提案したいのは、これら作業を全てJavascriptでやってしまうというものです。

そんなことできるのか?

このブログが現時点で取り上げているd3.jsとGoogleChartsはどちらもデータ解析に利用できます。そして、解析結果のグラフを結果の公表でも利用できます。また、d3.jsにはアニメーション機能があるので、これを利用して実験を実施できるかもしれません。ブログではまだ紹介していませんが、Reveal.jsなどのライブラリは、結果の公表(学会でのプレゼンテーション)に利用できます。統計学的な検証を行うパッケージもありそうです(どのライブラリが何をできるのかは、まだよくわかっていません)。このようにそれぞれの過程のに必要なJavascriptライブラリはかなり整備されつつあるように思えます。唯一、現時点で(私にとって)不明なのは、参加者の反応をどうやって記録するかです。でも、Javascriptのライブラリは数え切れないほどあるので、ちょうどいいものが見つかるかもしれません。

どんなメリットがあるのか?

1.オープンソース
Javascriptのライブラリはおそらくほとんどのものがオープンソースです。そしてChromeFirefoxなどのwebブラウザも無料です。もし研究に必要な全ての作業をwebアプリケーションでできるなら、全て無料でやっているということになるでしょう。上記で名前を挙げたソフトのうち、オープンソースなのは、R言語、Prezi、Praatくらいで、あとは有償です。これらをオープンソース(つまり無料)のJavascriptライブラリに置き換えられれば研究費の節約になります。

2.学習時間の節約
上記で示したように、研究の各過程で色々なソフトやプログラム言語を学ぶ必要があります。これをJavascriptに統一することで、学習時間をかなり節約できるかもしれません。

3.過程間でのデータ共有
上記の図は、各過程をつなぐ矢印が単に順序を示すだけではなく、情報のやり取りも示しています。各作業で別々のソフトを使う場合、あるソフトでいったんエクスポートしたものを別のソフトでインポートしなければなりません。しかし、Javascriptをベースにすべての作業を行えば、ある過程の出力を次の過程の入力としてすぐに利用できます。

実現するにあたっての課題

1.常に新しい技術を学ぶ必要がある(?)
現在のwebアプリケーション技術は日進月歩の勢いで進んでいきます。したがって、研究の作業を全てwebでやろうと思ったら、ある程度は技術の進歩についていく必要があります。ある意味、学習に終わりがないともいえます。それを苦痛に感じる人がいるかもしれません(研究者には少ないと思いますが)。

2.たいていのことを独学で学ぶ必要がある(?)
今、心理学者の中で「全てwebで」と考えている人は相当少ないと思います。なので、疑問が出てきたときにある程度、独学で解決する必要があります。ただし、この考え方に共感してくれる研究者でコミュニティなどを作れれば、この問題は解消するかもしれません。

まとめ

私の限られた知識では、現時点で「研究に必要な作業の全てをwebアプリケーションで」というわけにはいかないのですが、これを目標とすることには意味があるように思えます。よってこれをこのブログの最終目標の一つとして、今後、いろいろなwebアプリケーション技術を勉強していこうと思います。


追記 2014年2月6日:読みにくいと思われる箇所を修正しました。内容に追加や変更はありません。
追記 2014年2月7日:及川卓也氏にこの投稿をお知らせしたところ、及川氏のブログで取り上げていただきました。http://takoratta.hatenablog.com/entry/2014/02/07/073937 及川氏は本ブログの投稿内容を見事に拡張されています。ぜひご覧ください。
追記 2014年2月10日:海外の記事ですが、似たような考えを持つ人を見つけました。
http://www.infoworld.com/d/application-development/12-predictions-the-future-of-programming-235292?page=0,1
Future of programming prediction No. 3: JavaScript for everythingをご覧ください。