2.システムについて



2.1 システムの概要


2.1.1 考え方


 本プロジェクトでは,「参加型オンラインデータベース」という考えに基づいて「子ども知恵図鑑」を新たに構築した。
 子どもたちがインターネット環境から子ども知恵図鑑に記事を書き込んでいくことで,地理的に離れた仲間たちと情報や知識を交換することが出来るようにすると同時に,そこに子どもたちの知恵が自然と集積していき,再利用できるシステムを目指した。


◇キーワード1〜データベース〜

 子ども知恵図鑑の基本は2つのデータベースだ。書き込まれた記事を体系だって格納するRDB(MySQL)と,書き込まれた記事の中身を高速に検索するための全文検索エンジン(Sufary)である。これらによって,いくつかの便利な方法で記事一覧を表示し,一つひとつの記事をスムーズに読み出していくことを可能とした。


◇キーワード2〜オンライン〜

 子ども知恵図鑑のソフトウェアと書き込まれた記事はサーバー側に置かれ,使う人はインターネットにつながったパソコンからアクセスする。パソコン側に必要なものは,インターネットエクスプローラーなどのブラウザだけ。サーバー側で動くPHPスクリプト(つまり子ども知恵図鑑プラグラムの実体)が必要に応じて動的にHTML画面を生成し,パソコンに記事を表示したり,テキスト入力エリアを表示したりする。子ども知恵図鑑は利用者とHTML画面−HTTPプロトコルで情報のやり取りを行うため,Web環境としてApacheを使用する。


◇キーワード3〜参加型〜

 子ども知恵図鑑の最も重要なコンセプトは,参加型という点である。誰もが記事を書き込んで,誰もが読み出せる。しかし,子ども知恵図鑑はWebベースのシステムなので,ID・パスワードによって,ある程度の認証機能を持たせた。現時点で設定してあるアカウントの権限は,管理者用,一般生徒用,guest用の3段階である。guestは限られた範囲の記事を読み出す権限しかない。一般生徒用アカウントは,記事の書き込み・読み出しが可能である。管理者は記事の書き込み・読み出しのほかに,一般生徒用アカウントの発行,子ども知恵図鑑カスタマイズ・設定変更などが可能だ。


2.1.2 基本的な概念

子ども知恵図鑑の構築に当たっては,以下の概念を設定した。


【ジャンル】

 全ての記事には「ジャンル」とよばれる分類用の属性が,必ずひとつだけ与えられる。ジャンルは,さまざまな活動テーマごとにひとつ作られる。初期設定したジャンルは,「メンバー図鑑」,「メンバーひろば」,「世界の知恵」,「ふるさと食堂」,「地元たんけん広場」,「グレッグのにっぽん旅図鑑」,「My知恵」,「たべものと農業」,「ミクロネシア報告」,「地域のじまん」,「水と大地」,の11個。管理者は,活動テーマに応じて新しくジャンルを追加していくことが出来る。
 子ども知恵図鑑の画面は,ジャンルが記事の格納場所であるかのように見せるデザインになっている。利用者は,ジャンルごとの記事一覧画面を軸にして記事の書き込みや読み出しの操作をする。つまり,ジャンルに対して記事を書き込み,ジャンルから記事を読み出す,といった感覚で子ども知恵図鑑を使うことになる。
 新規登録される記事に対しては,登録の直前に見ていたジャンルの属性が自動的に付与されることになる。いったんあるジャンルに書き込まれた記事に対して,明示的にジャンルの変更を行うこともできる。どのジャンルにも入らないように記事を書き込むことは出来ない。システムの内部では,どのジャンルの記事でも,次々と同じデータベース・テーブルに格納されていく。記事の格納場所といったイメージのジャンルも,あくまで架空の入れ物を,ソフト的に実現しているにすぎない。
 ひとつの記事には,多くの書き込みフィールドが設定されている。書き込みフィールドとは,具体的には,「タイトル」,「要約」,「報告者」,「本文」といったものだ。記事にどのような書き込みフィールドがあるかは,ジャンルごとに決まっている。管理者は,ジャンルを設定する際に,そこに書き込まれる記事にどのような書き込みフィールドを用意するか,設定することが出来る。
 書き込みフィールドのタイプ属性は"text","textarea",と"select","photo"の4種類がある。


【カテゴリー】

 利用者が記事を書き込むときに,「カテゴリー」という検索用の属性を付与することが出来る。カテゴリーはあってもなくても構わないし,複数付与することもできる。子ども知恵図鑑全体でどのようなカテゴリーがあるかは,あらかじめ決まっている。初期設定では,「海」,「山」,「川」,「生き物」,「ゴミ」など,36個のカテゴリー属性がある(別表参照)。管理者は,このカテゴリーに新しい属性を追加することができる。また,記事を書き込む際にどのようなカテゴリーを与えるかはプルダウンメニューから選べるが,そこに出てくるカテゴリー属性を,管理者がジャンルごとに決めることが可能だ。
 ジャンルごとに選べるカテゴリーを決めるようにした理由は,ジャンルが,ある範囲の事柄についての記事が書き込まれる場所,という設定だからだ。そして,その事柄を端的に表す属性がカテゴリーというわけだ。

 カテゴリーは,「カテゴリー検索」という方法で記事を検索する際に使われる。
 例えば,「水と大地」というジャンルにある生徒が川に棲む生き物について調べた結果を記事にして,カテゴリーとして「川」と「生き物」を付けて書き込んだとする。別の生徒が,海に棲む生き物についての記事を,カテゴリーとして「海」と「生き物」を付けて書き込んだとする。「生き物」について書き込まれた記事を全部見たいと思う人は,カテゴリー検索で「生き物」を指定すれば,どちらの記事も読むことができる。
 記事はジャンルという架空の入れ物に格納されるが,別々のジャンルに書き込まれた記事が,実は,同じような事柄について書かれていることもある。カテゴリー検索では,そのような記事を,ジャンルを横断して串刺しに検索することが可能となっている。


【全文検索】

 子ども知恵図鑑には,任意のキーワードを指定して,その文字列が含まれる記事を,すべてのジャンルにわたって検索する機能がある。これを全文検索機能という。カテゴリー検索の場合は,あらかじめ決まったカテゴリー属性の選択肢から選んで検索するので,特定の地名や人名で検索することは出来ない。全文検索の場合は,誰かが書いた記事にその文字列が含まれていると,検索に引っかかってくるので,よりきめ細かい検索が可能となる。
 ただし,生き物について書かれた記事でも,「生き物」という単語を文字列の形で記事の中に含んでいないと,検索に引っかからない。目的にあわせて,カテゴリー検索との使い分けが重要だ。


【スレッド】

 ある記事に対しての意見や感想を書き込みたい場合がある。時間が経ってから普通に記事を書き込んでしまうと,記事一覧で離れた位置に出てきてしまい,二つの記事が関係あるということがわからなくなってしまう。そのような場合,意見・感想をスレッド記事として書き込むと,元になった記事の下に自分の記事のタイトルが出るようになり,ある記事に対する意見・感想だということをはっきりさせることが出来る。
 このような関係を親子になぞらえ,元の記事を親記事,意見・感想を子記事とか子スレッドと呼ぶ。
 同じ親に対して子スレッドはいくつでも書き込んでいくことができる。また,子スレッドとして書き込まれた記事に対して意見・感想をスレッド記事で書き込むこともできる。このような形で孫スレッド,ひ孫スレッドと,いくつでもスレッドを深くしていくこともまた可能だ。


2.1.3 子ども知恵図鑑での操作の流れ

(1) トップ画面の表示とログイン・ログアウト
 子ども知恵図鑑にアクセスすると,まずトップ画面が表示される。利用者は,最初は必ずguestアカウントにセットされる。トップ画面には,ログイン用のID・パスワード入力フィールドがあって,自分のアカウント用IDでログインすることが出来る。ログインすると,トップ画面は,そのアカウント専用のトップ画面に変る。guest用のトップ画面との違いは2カ所。ログイン画面の部分からは,ID・パスワード入力フィールドが消えます。これはログアウトするまで,消えたままとなる。トップ画面にあるログアウトボタンを押すことでログアウトが可能だ。ログアウトするとアカウントはguestに戻る。
(2) ジャンルを選択して記事一覧表示
 トップ画面には,そのアカウントで書き込み・読み出しが許される「ジャンル一覧」が,あらかじめ設定した順序で表示される。表示されるジャンルと並び順は,「ユーザーアドミン画面」によってそれぞれのアカウントごとに設定することが出来る。
 利用者は,トップ画面に表示されたジャンルボタンのリンクをクリックすることで,そのジャンルに書き込まれた記事一覧画面を表示させる。記事の一覧は,報告された日付順にソートされて,10件ずつ表示される。「次の10件」「前の10件」というリンクを使って,すべての記事を一覧表示させることが出来る。
 記事一覧にリスト表示された記事のリンクを押すことで,その記事の内容が表示される。
 記事一覧画面には,新たに記事を書き込むための新規登録ボタンがある。このボタンを押すことで,そのとき一覧表示されているジャンルに記事を書き込むことができる。記事一覧で表示されるのは,タイトル,報告日時,報告者,要約,カテゴリー,そしてその記事に対する編集ボタンと削除ボタン。
 編集ボタンと削除ボタンはその記事に対する権限によって,表示されたりされなかったりする。guestアカウントには限定されたジャンルを読み出す権限しかない。guestアカウントで画面を表示させている場合は,編集や削除ボタンはもちろん,新規登録ボタンも表示されない。
(3) 記事の新規登録
 記事一覧で新規登録ボタンを押すと,新しいブラウザ画面が開いて,記事を書き込める画面表示される。画面の上部に,これから記事を登録するジャンル名が表示される。その下に,登録者の名前が表示され,さらにその下にタイトル,報告者,報告日時,要約,本文など,多くの記事入力フィールドが表示される。これらの入力フィールドは,ジャンルごとに変る。どのジャンルにはどのような入力フィールドがあるのかは,データベースで定義(テーブル名:genre_elements)されていて,ユーザーアドミンで変更することが出来る。
 入力エリアに書き込みが終わったら,クエリ送信ボタンをクリックする。すると,書き込んだデータが再びきれいな形で画面表示される。データは子ども知恵図鑑に送られ,データベースにも登録される。登録した記事は,すぐ記事一覧画面で見ることが出来る。
(4) 記事編集
 すでに書き込まれた記事を修正したい場合は,記事一覧から,その記事のタイトル横にある編集ボタンをクリックする。すると,記事新規登録のときとそっくりな画面が表示されるが,各入力フィールドには,その記事の内容が書き込まれた形ででてくる。修正したい箇所を書き換えて,送信ボタンをクリックすると,修正した結果の記事がきれいな形で画面表示され,子ども知恵図鑑のデータベースにも編集結果が反映する。
(5) 記事削除
 記事を削除したい場合は,記事編集画面に移る。すると,画面の下に削除ボタンが表示される。それをクリックすれば,記事削除が完了し,子ども知恵図鑑のデータベースからもその記事は削除される。
(6) カテゴリー検索
 記事一覧画面や記事表示画面には,その記事に付与されたカテゴリーが表示されている。各カテゴリーにはそれぞれリンクが張ってあり,それをクリックすることで,同じカテゴリーを持つ記事一覧を表示させることができる。これをカテゴリー検索という。
(7) 全文検索
ほとんど全ての画面に全文検索機能がある。画面左側に,「次のことば〜〜に関係する報告を検索」という表示がある。この空白部分に適当なことばを入れて,検索ボタンを押すと,タイトル,要約,本文,写真説明など,どこかにそのことばを含んでいる記事の一覧が表示される。

2.1.4 アカウントと権限

 最も権限の低いアカウントのIDはguestだ。パスワードはない。子ども知恵図鑑にアクセスした人は,最初はすべてこのアカウントとしてアクセスすることになる。guestは限られた範囲の記事を読み出すことしか出来ない。しかし,全文検索など,読み出しに必要な機能は利用できる。次に,記事の書き込みができる一般生徒用のアカウントがある。必要に応じてIDとパスワードが発行される。最も権限の大きいのが管理者用アカウントだ。一般生徒用のアカウントの機能に加えて,画面のカスタマイズ,ジャンルやカテゴリーの設定,一般生徒用IDの発行などができる。


2.1.5 ユーザーアドミン

 利用者は必要に応じて知恵図鑑をカスタマイズすることができる。この機能を、ユーザーアドミンという。ユーザーアドミンは、guestアカウントでの利用はできない。また、ログインしたアカウントの権限によって、使える機能が異なる。


(1) 表示するジャンルの選択
 全てのユーザーアカウントで使える機能として、利用するジャンルとその表示順の変更機能がある。利用者は、自分が記事を読み書きするジャンルを選択することが出来る。アカウントが作られた直後は、ディフォルトの11のジャンルが設定されている。必要に応じて、自分が読み書きするジャンルを付け加えることができる。付け加えたジャンルは、トップ画面に表示され、画面左のナビゲーションボタンにも追加される。その際、どのような順番でジャンルを表示させるかの指定も出来る。また、不要なジャンルは表示を外すこともできる。
(2) 新規ジャンル作成
 管理者権限のアカウントであれば、新規にジャンルを作ることができる。新規にジャンルを作った場合、そのジャンルに書き込む記事にはどのような入力フィールドを設けるのかを指定する。また、記事を書き込む際にはいくつかのカテゴリーを付与することができるが、その選択肢を設定する作業も、新規にジャンルを作る作業の一環として行う。
(3) ログ解析ツールの利用
 管理者権限のアカウントでは、知恵図鑑のWebサーバーのアクセスログ解析ツール(analog)を、ユーザーアドミンの一機能として利用することが可能だ。ユーザーアドミンからの指示でアクセスログ解析ツールを起動し、その時点までのアクセスログを解析することができる。時間レポートや月次レポート、さらに個々のphpスクリプトへのアクセス結果に至るまでの詳細な解析結果はHTML化され、ブラウザで確認することが出来る。
(4) CPU負荷調査
 その時点でのシステムの負荷状況を調査し,画面に表示する機能が利用できる。内部的にはUNIXシステムのVMSTATコマンドを発行し,その結果をブラウザから確認できるようにしている。


前のページへ 次のページへ