読者です 読者をやめる 読者になる 読者になる

生物多様性情報学の出張所

生物多様性情報学関係のあれこれを中心に扱います。「生物多様性情報学の情報交換の場」の投稿の抜粋中心。

日本版ナショナル・モス・ウィークの登録システムに関するメモ

日本版ナショナル・モス・ウィーク 登録システム:http://submit.nationalmothweek-jp.net/

7月19日から27日まで、蛾のイベントをやったり写真を撮ったり共有して楽しもうという世界的なイベント「ナショナル・モス・ウィーク (http://nationalmothweek.org/)」がありました。日本でも何かやりたいねと言うことで、私が中心となって「日本版ナショナル・モス・ウィーク (http://www.nationalmothweek-jp.net/)」を立ち上げて活動をしてきました。具体的には、ナショナル・モス・ウィーク自体の宣伝、各地のイベント情報の集約、本部との調整、そして、蛾像投稿サイトの制作と管理です。

ナショナル・モス・ウィークの大きな目的として、世界中の色々なところで蛾の写真を撮って共有し、その多様性や美しさをみんなで楽しもう、と言うことがありました。それぞれの国や地域で、それぞれ投稿するシステムが整備されていましたが、日本でも何か用意しなければ行けないと言うことで一念発起、一つシステムを組み上げてみました。

今回作成した登録システムの流れは「みんなで作る日本産蛾類図鑑(みんな蛾)」と同じようなもので、まず投稿者が画像(同定されていなくても良い)を投稿し、それをみんなで同定し、最後に管理者がチェックして登録をする、と言う仕組みです。最後の「登録」先は、図鑑では無く、Flickrに作成した日本版ナショナル・モス・ウィークの画像置き場 (http://flickr.com/photos/nationalmothweek-jp/) です。ここは同じくFlickrを利用いている本家ナショナル・モス・ウィークと連携することを意図していて、情報も英語情報のみで登録しています。

作成したシステムは、当然「みんな蛾」のシステムを叩き台とし、そのような機能を追加するような形で設計しました。「みんな蛾」で利用しているシステムは汎用の画像掲示板システム (futaba.php; http://www.2chan.net/script/) ですので、蛾の情報を扱うには足りない部分があります。そこで、採集データの入力欄、同定情報の管理機能などを追加しました。普通の方には見えない管理側には、未同定の投稿のフィルタリング機能や、クリックによる登録機能などが実装されています。さらに、ナショナル・モス・ウィークの裏方の皆さんから色々ご意見をいただきつつ、少しずつ機能を追加修正をしています。最近では、イベント毎に見られる機能や、フォームのデザイン変更などを行いました。機能としてはみんな蛾の掲示板+αですが、裏で動いているシステムはゼロから作成したものです。開発及び公開環境はいつもと同じで、フレームワークRuby on Rails (http://rubyonrails.org/)、公開サーバはHeroku (https://www.heroku.com/) です。

今回新しいチャレンジとしては、今回新しい試みとしては、クラウドを利用したファイル置き場(ストレージ)の利用があります。システムを置いてあるHerokuのサーバは、無料利用分では画像を扱うには手狭です。そのため、画像置き場としては、定評のあるAmazon S3 (http://aws.amazon.com/jp/s3/) を採用しました。また、最終的な登録先として、前述のようにFlickrのアルバムを利用することにしました。そのため、掲示板投稿時にはまずAmazon S3に画像を転送し、登録作業後にその画像を英語での情報とともにFlickrに転送する機能をつけました。実装には、S3へも画像をアップロードできるライブラリであるCarrierWave (http://ja.asciicasts.com/episodes/253-carrierwave-file-uploads)、Flickr APIRubyラッパであるFlickraw (http://morizyun.github.io/blog/flickraw-image-resize-gem-ruby/) を利用しました。Railsのようなメジャーなフレームワークですと、色々定番のライブラリがあるので便利ですね。

「みんな蛾」の話が何度も出てきますが、今回作成した画像投稿システムは、「みんなで作る日本産蛾類図鑑」など投稿型図鑑システムへの適用も意図しています。クラウド環境の利用も今後の展開を検討するための一つの試みです。最近では、Amazon Web Service (http://aws.amazon.com/jp/) のようなクラウド環境でのシステム運用が普通になってきていますが、そのような運用もできないものかと思っています。問題はコスト面で、Herokuの無料サーバーならデータベース10000件までなど当然限界があります。もし、「みんな蛾」レベルのシステムをクラウド環境で運用したとして、使用料金がどれくらいになるか、それをどうやったらまかなえるかなど、考えていきたいと思っています。