数式記述言語MathMLによる数学問題データベースの活用
楫取和明
*†, 青木邦匡
*Making use of a math problem database with the
Mathematical Markup Language MathML
Kazuaki Kajitori
*†, Kunimasa Aoki
*Abstract : We investigate benefits and catches of math problem databases with MathML functionalities based on our case studies in our math classes. We conducted online quizes in the classes of Calculus in 2006-2008 using our system of math problem database (we call this QDB). The result was exactly what we expected, namely, we could develop the system in a short period of time and the students could get the evaluation of the quiz immediately after they finished and submitted the quiz. Also, we made a mid-term exam of Calculus and showed the answer on the web using our system. From these experiences, we found that QDB is ideal for some purposes, but also noticed that the environments for MathML are not sufficient yet, and that improvements of QDB can be done but only in a limited form. We think that we can make QDB more useful by adding functionalities even if they are for a rather narrow range of purposes and that the simplicity of the system should be maintained in order for the system to be user-maintainable.
ASFA keywords : Education, Data, Mathematics
2010年8月6日受付.Received August 6, 2010.
* 水産大学校水産流通経営学科(Department of Fisheries Distribution and Management) † 別刷り請求先(corresponding author) : [email protected]
はじめに
World Wide Web Consortium (W3C) のMathML2仕 様書1)によれば,“MathMLはXML2)のアプリケーション で,数式を記述し,その構造と内容を取り出すためのもの である。MathMLの目標は,HTMLがテキストに対して するように,ウェブ上で数学を供給し,受理し,処理する ことである”。一般にMathMLのコードは機械で読み書き することを想定したもので見た目には非常に冗長である が,一つ例を上げれば, を表すMathMLコードは, <mrow>は横に並べるタグ,<mo>はoperator(演算子), <mn>はnumber(数)を表すタグである。 MathMLによって数式を表示できるブラウザ環境は現在 でもまだ限定的ではあるが,MathMLによってウェブ上で の数式使用の幅が広がりつつあることは事実である。実際 にMathMLを活用しているウェブページはまだ少ないが, 金沢工業大のサイト3)では基礎的な内容の数学コンテン ツをMathMLで表示している。また,日本数学会の論文誌 Journal of the Mathematical Society of Japanはabstractを MathMLで提供している4)。 さて,数学教育においては演習問題,小テスト,定期試 験などのための問題作成が欠かせないが,数学の問題を データベース化して問題演習,各種テストに利用できれば 便利であろう。中学数学の問題データベースは商用では東 京書籍の製品5)がある。これは5年契約の学校専売品で あって,インターネット経由でデータベースから引き出し た問題とその解答をPDFで出力できる。 <msqrt> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msqrt> -1 である。<msqrt>はsquare root(平方根)を表すタグ,
は後述)。 2. 全体としてはウェブアプリケーション(サーバは Linuxベース,スクリプトはPerlで記述)であり, 学生はブラウザでこのアプリケーションにアクセス する。各学生は,初期画面で自分に指定されたクラ スを選び問題画面(すべてのクラスで同一)に入 る。 3. データベースから取り出された小テスト用の穴埋 め問題はMathML含むXHTMLコードに変換されブ ラウザ上に表示される(詳しくは後述)。受験学生 は穴埋めを行い(解答をして)提出ボタンを押して 提出する。下は,問題ページの一部である(ウィン ドウは小さくしてある)。 数学問題データベースのインターフェイスをウェブベー スで作るとすれば自然とMathMLとのコラボレーションが 考えられる。数学問題データベースにMathMLを応用した 例は,数学教材製品のWebALT6)がある。Moodleベース のお試しサイトでは数学問題の表記は英語とフィンランド 語である。データベースの管理に関しては不明である。 著者等は水産大学校において,4年前からMathMLと数 学問題データベースのコラボレーションを使って,独自に 数学科目におけるオンライン小テストや問題演習,試験の 作成,試験解答の公開などを行ってきた。このシステムは 我々自身の必要性から作成したものであり,身近な要請に 沿って発展してきたものである。 本論の目的は,数学教育におけるMathMLと数学問題 データベースの活用の可能性と現状での問題点を本校での 使用事例を通して論ずることにある。
数学問題データベースQDBとその使用事例
使用事例1:オンライン小テスト 水産大学校においては2006年度から2,3年間,学校の 方針の一環として,いくつかの基礎科目の授業に対する補 習授業を学生が受けるかどうかを判別するための小テスト を科目ごとに行うこととなった。 著者らが担当する科目である基礎解析学Ⅰ(微分積分の 基礎的内容)もその対象になっていたので,その方法 を検討した。まず,1年次科目なので4月のオリエンテー ションかその直後に小テストを行い,その結果次第で補修 授業を受けるかどうか決めるため,早く採点結果を出す必 要があった。そこで,記述式はあきらめ,穴埋め式のテス トにすることにしたのであるが,それでも200余名分の採 点には時間がかかると思われた。そこで,テストはコン ピュータ上でオンラインで行い,提出された解答データを リアルタイムで採点し,すぐ結果を表示する仕組みを作成 しようと考え,作成にとりかかった。 作成にとりかかったのは3月であるが,ウェブの仕組み を基本に,MathMLとLATEX及びRDB(リレーショナル データベース)を用いて比較的短時間で作成できると見込 んだ。オンライン小テストシステムの基本的要点は以下の とおりである。 1. 問題とその解答は後利用など利用性を考慮して RDB(MYSQL)に格納し管理する。問題はLATEX コードで書かれデータベースに格納される(詳しくFig. 1. The window of the online quiz
4. 提出された解答はウェブサーバに送られ,データ ベースの正しい答えと照合され採点結果(各問ごと の正誤と総合得点)がブラウザに戻される。 MathMLコードは直接手入力するには冗長すぎるので, 入力には専用のエディタを使うか,他のコードで入力して おいてMathMLコードに変換するかという方法を採る。こ こでは,数式の記述に関しては定評のあるLATEXを使用し ている。大学の数学教員にはLATEXはかなり普及している ので,問題と解答の入力にLATEXを用いることは大学の数 学教育の場ではある程度の一般的妥当性を有すると思われ る。LATEXからMathMLへの変換プログラムは,matex.pl7) という公開されたPerlコード(オリジナルは現在ウェブ上 で在り処が不明)に少し手を入れたもの8)を用いた。 数式内の穴埋め解答欄は,{ i 1 }というコードをLATEX の数式コードに埋め込んで,MathMLに変換するときこれ を〈html : input name = ” i 1”/〉というタグに置き換えるこ とによって実現される。単なる〈input〉タグではMathML内 では入力欄にならない。穴埋め部分が複数なら,{ i 1 }, { i 2 },{ i 3 }, ...というコードを埋め込めばよい(Fig.1, Fig.2を参照)。穴埋め問題を登録するとき解答として i 1 = = 3 などPerlで評価(eval)される式を登録しておい
て,解答者の送信する値を解答のパラメータ( i 1など) に代入して評価することで正解・不正解を判断する。 上記の数学の問題と解答を格納したデータベースが本題 の数学問題データベースのプロトタイプである。本事例の 時点では最小限度の機能と少量の問題しかなかったが,そ の後機能,問題数とも増やしていったものである。この本 論で対象とする数学問題データベースをQDBと呼ぶこと にする。QDBの基本的構成は以下のとおりである。
1. QDBはRDBのテーブル群problem, category, quiz, quiz_submitと,それらを管理するウェブアプリ ケーションからなっている。
2. categoryは問題が属するカテゴリを格納している。 3. problemのレコードは問題と答えとヒントを含む。
問題はLATEXで記述されて格納される(ただし,
preambleと\begin{document }\end{ document }
はなし)。 4.ウェブ上で表示するためにQDBから問題を引き出 して使うときには,LATEXからMathMLに変換する プログラムを使う。 5.quizテーブルは,いくつかの問題からなる試験(本 システムではクイズと呼ぶ)を格納しているテーブ ルである。quiz_submitは試験解答の提出記録であ る。 6.管理用のウェブアプリケーションは,問題の作成・ 更新・削除,試験の作成・更新・削除,問題・試験 の表示,解答・採点の表示,試験の集計などをブラ ウザのインターフェイスを使って行うものである。 Fig. 2は,このアプリケーションの問題作成画面 の一部である(図では見えない部分に解答とヒント を記入する欄がある)。 対応からFirefoxをあらかじめMathML用のフォントをイ ンストールした上で指定した。初めて教室を使う一年生に 教室の使い方を説明した上で,オンラインの小テストにと りかかった。問題数は20問,時間は90分の枠内で40分以上 とれた。各学生には提出は1回かぎりであることを告げて あったので,提出した学生はその採点結果を確認して退出 した。コンピュータのモニターとキーボードがある机の上 で,計算を紙上でしながらではあったがさほど解答しにく そうには見えなかった。 集 計 結 果 は, 受 験 者 数212人, 平 均 点74.03(100点 満 点)であった。個人の解答データもデータベースに残って いるので確認できる。無効な解答データはなく,オンライ ン小テストが無事に終えたことを示している。 前もって3週間ほどの準備を要したものの,本番はトラ ブル無く進み,学生が解答提出直後に採点結果を知るとい う目的も完全に果たされた。また,平均を出すなどの集計 もデータベースの機能を使って簡単にできた(後掲のFig. 3に見える[クイズ結果]ボタンを押して集計したい小テ スト番号を指定するだけ)。 2006年に引き続き,2007,2008年にも同じ問題で年度初 めに小テストが1年生に対して行われた。同じ問題で行っ たのは,入学者の学力の年度による違いがあるかを見ると いう学校の方針の一環でもあった。ちなみに,2007年度の 平均は68.47,2008年度の平均は67.84であった。 本事例においては,LATEXコード内に i 1 などの独自 コードを埋め込みこれをMathML内の<html : input/>タグ に変換することで,ウェブページの数式の中に穴埋めの解 答欄を埋め込むことが可能になった。筆者らが現在におい ても重宝しているLaTeX2HTML9)を用いてLA TEXコード をHTMLページに変換しても数式は画像になるので,数 式の中に穴埋めの解答欄は埋め込めない。その場合数式の 中には変数で書いて,数式の外にその変数の値を問う解答 欄を設けることになる。これでは,多くの場合問題がかな り見づらくなる。また,動的に数式を含むHTMLページ を生成する場合,付帯する数式画像ファイルのファイル名 を重複なく決めるにはアクセスするユーザごとに画像ファ イル名を区別するなどせねばならない。これはサーバー側 の処理も複雑化し,本事例のシステムの開発期間に大きく 影響する。システムのシンプルさは我々のような教師レベ ルでの開発では重要である。 PDFで問題ページを表示することもできるが,この場 合も数式内穴埋め解答欄ができないので,問題と解答欄と
Fig. 2. The window for the problem authoring which
produces the problem of Fig. 1
2006年度の小テストは,4月の12,14日の二日に分けて 水産大学校の二つのコンピュータ教育用の教室(計約110 台のコンピュータからなる)で行われた。
問題と解答の発表は,データベースに登録したクイズの ページを各問解答表示ボタン付きで表示する機能を作成し て,基礎解析学のウェブページ中のリンクから表示される ようにした(Fig.4)。 の関連がよりいっそう見づらくなろう。 また,本事例において,問題,小テスト及び解答データ はデータベースに格納されているので,小テストの問題の 組み換え,小テストの結果の集計には大変便利であった。 本事例において数学問題データベースとMathMLは効果的 に使用されたといえるだろう。 QDBシステムの後利用としては,2006年度は当面,基 礎解析学Ⅰの自習用に,オンラインで問題を提示し,穴埋 め問題に対しては採点をし,それ以外の問題に対しては解 答を示すという機能を作り,基礎解析学Ⅰの問題も登録し た。しかしこの自習用問題演習システムは2006年度の基礎 解析学Ⅰの授業と平行して開発されたもので学生にはあま り使われなかった。 2007年度には次年度(2008年度)からカリキュラムが大 幅に変わることになり,データベースの問題は新カリキュ ラムの科目にはそぐわないようになり,開発は中断され た。 使用事例2:試験問題作成と解答公表 数学問題データベースQDBにおいて旧カリキュラム用 の問題から新カリキュラムに即した問題を増やすうち, 2010年度には,中間・期末試験をこのデータベースを使っ て作成すること,およびその解答の発表もデータベースか ら行うことを考えた。 小テスト用にすでに,複数の問題を指定して一つの小テ スト(クイズ)として登録でき,登録されたクイズを LATEXソースに落としてそのままコンパイルして印刷でき るような仕組みはできていた(Fig.3参照)。これを中 間・期末に使うのは問題さえ揃えば大変便利であることが 分かった。使いたい問題の問題番号をコンマ区切りで書 き,クイズとして登録したらtexsourceボタンを押して TeXファイルとして保存する。このままでもコンパイル は通るが手を入れてからplatexにかけてもよい。問題作成 の手間もLATEXコーディングの手間も省けて非常に短時間 で小テストや定期試験のマスターが刷り上がる。
Fig. 3. The windou for quiz manipulations
この中間試験の解答発表の見方については,MathML表 示環境に依存するのでコンピュータ教室で説明(出席は自 由)を行った。 中間試験の解答を発表してから中間試験の再試までの期 間(6月22日から7月9日)において試験のページへのア クセスは,学内から198ヒット,学外から161ヒットであっ た(無論ここには著者らによるアクセスは含まれていな い)。学生一人当たり何回かは同じ試験ページへアクセス すると考えれば,人数的にはヒット数の数分の一であろ う。 学生は解答を見ようと思えばコンピュータ教室(夕方ま で授業以外は開放)で見ることができるのであるが,理想 としては自宅でもオンラインで参照できることであろう。 学外からアクセスしたIPアドレスの数は46であったが, DHCPを経ているとすれば同一学生が別のIPで何度かアク セスすることもありうる。実際アクセスしてきたIPにはほ とんど同じものが見られる。本校学生の約半数が自宅でパ ソコンからインターネットを使える環境にあるといわれてい る。中間試験受験者は299人,再試験対象者は127人である から,学外からのアクセス率は高くなかったと思われる。 QDBでは試験のLATEXソースを保存できるようには なっているが,答まで含めてLATEXに落とせるようには
なっていなかった。LATEXソースに答をエディタを使って 加えてDVIを作りPDFファイルに変換することは時間の関 係でしなかった。
考 察
事例1では,MathMLコードにhtml : inputタグを埋め 込んだ数式を使用することで,短い開発期間,並びにオン ライン小テストのスムースな実施及びその場での採点とい う当初の目的を果たすことができた。しかも,MathML使 用のおかげでシステムが単純化したことは当初の開発期間 の短縮化に役立っただけでなく,以後のシステムの発展・ 活用の上でも役に立つであろう。 本論のQDBシステムは,第一著者が4月に間に合わせ るために急いで作ったものが元になっているが,第二著者 もシステムの数々の制限にもかかわらずわずかな説明を聴 いただけですぐに使えるようになった。第二著者もLATEX ユーザであることと,システムがシンプルなこと,さらに サンプルがすでにあったからであろう。学生側はもちろ ん,教師の側でもLATEXユーザであれば簡単に使いこなせ るシステムであるといえる。 事例2では,解答の公開ではMathMLをめぐる環境がま だ十分ではないことが分かったが,登録された問題から試 験を構成できるQDBの機能と,問題データをLATEXコー ドで持っていることが試験問題の作成・印刷にとって大変 便利であることが分かった。 QDBシステムの当面の問題点とその解決方法について 考えてみる。 1. 本システムはMathML関連でブラウザを選ぶ。 MathMLによる数式が表示可能なブラウザでもブラ ウザごとに異なった環境整備(フォント追加,プラ グイン追加など)が必要である。ウェブブラウザの MathMLサポートがまだ十分でないことは,教室に おける環境整備にとって負担になるし,学生が自分 のパソコンで自主的に取り組むときの障害になる。 また,MathML3のドラフト11)の6.4を参照する と,“...その困難故に,デフォルトではMathMLの 仕様は他言語の要素がMathMLの表現の中に入るこ とを許していないが,特定の複数言語混在文書用 に,混在タグ使用がwell-denedでそのためのツール の開発が正当化されるような場合に,緩いスキーム も用意されている” とある。とすると,<html : input/>タグをMathMLコード内に埋め込んで解答 入力欄を表示する本システムの方法は,特殊な (Firefox独自の)方法ということになるのかもし れない。 教室において教師による簡単なガイダンスのもと でなら理想的にMathMLベースの小テストを行える ことから,現状のMathMLのブラウザ依存がなくな れば簡単なガイダンスさえ不要になり,学生の自主 的な取り組みも期待でき申し分ない。 MathMLフォントが標準で装備され,また多くの ブラウザでMathMLがサポートされ,なるべく共通 のinputタグ埋め込み方法が確立されることを望み たい。 2. LATEXコ ー ド をMathMLコ ー ド を 含 むXHTML (xml)コードに変換するプログラムは2006年当時 も複数あったし,今(2010年)はもっとある。しか し,今でも任意のLATEXコードを変換できるものは ない。結局,LATEXのサブセットを対象にすること になるが,このサブセットもプログラムによりまち まちである。現状QDBで使用しているmatex.plは使 えるタグはあまり多くはないが十分実用的である。 高校数学,微積分,線形代数の範囲で表すことので きなかった問題や解答は今のところない。ともあ れ,どのプログラムを使うのであれどのタグなら使 えるのかを知る必要がある。 itex2MML12)というLA TEXからMathMLへの変換 プログラムは,itexというLATEXのサブセットを提 示してそれをサポートしている。コマンドラインの ほかRubyからも使えるようになっている。math_ ml.rb13)は類似の機能を持った純Rubyのプログラム である。LaTeXMathML15)は,JavaScript版(オリ ジナル)とPerl版がある。 MathMLのFAQ16)によれば,“MathML入力のた めのシンタックスに対する要求は非常に広汎にわた る”,“さまざまなワーキンググループのメンバーが特 定のツール用に入力シンタックスを開発している”, “入力シンタックスはcore MathML recommendationには含まれない”とある。よって,LATEX類似の言
語がMathML入力手段の標準になることはないだろ
う。しかし,LATEXは数式入力システムとして妥当
性があるだけでなく,QDBに登録した試験問題の
という問題と, という問題があって,これらを小問とする大問を登 録して, と表示できるようにする。小問のレイアウトをどう するかは一般には難しいだろう。また, という問題と, という問題はどうまとめるのか。いろいろ制限は残 ろうが,それを知りつつ使えばそれなりに便利では あるだろう。 W3Cの仕様書やドラフトで認めているように,仕様の 解釈や実装があまりにも複雑になるような機能は標準化不 可能である。そして,特定の個々の応用において必要とさ れる機能をその応用のために個別に開発せざるをえない。 また,QDBの機能もあまりに汎用性を求めるのは却って 開発を難しくしシステムを複雑にする。しかし,上記の QDBの問題点はいずれも実用上重要であるので制限が あってもなんらかの解決策は必要である。
QDBの開発は,RDB, LATEX, Perl, Linux, Web, MathML
などの1970年代以降開発され公開されてきたテクノロジー に負っている。これらのテクノロジーがあってこそ,ユー ザレベルでユーザニーズに応じたデータベースシステムの 開発が可能になっているのである。 これらの中では新しいテクノロジーであるMathMLは数 式表示(Presentation Markup)だけではなく数式の内容 を記述する仕組み(Content Markup)も持っているな ど,そのポテンシャルは現時点のQDBのMathML活用を はるかに越えている。たとえば,数式の検索17)や,(上述 したような)数式処理との組み合わせによる動的な解答の 作成などが考えられる。こうしたMathMLの活用を考える なら,QDBがMathMLでデータを持つようにすることも 印刷するという場合に大変便利である。数式の表示 品質はMathMLよりLATEXの方が(少なくとも今の ところ)高い。LATEXソースを編集もできるから, QDBが 完 璧 な マ ス タ ー を 作 り 出 す 必 要 は な い (PDFなどで出力するのとの違い)。QDBシステム にとってLATEXからMathMLへの変換プログラムと してどのようなものが最適なのかを引き続き探って いきたい。 3. データベースに格納される問題数が増えてくる と,ほとんど同じ問題同士をどうするかということ を考えざるをえない。これら似た問題が増えてくる と非常に冗長である。 例えば,つぎの不定積分を計算せよ,という問題が あったとする。
∫
xexdx この問題のバリエーションとして,∫
xe-xdx という問題を使いたいとき,これを別の問題として 登録するのは冗長であるということである。 これには,次のような処理が考えられる。問題を∫
xep1dx とし,p1に依存する解答とともに登録する。実際 に出題するときは,p1の値を決めて出題する。 RDB的には問題テーブルのほかに問題番号とパラ メータ値からなる出題テーブルを設ければよいだろ う。しかし,解答における p1を含む式は簡単な式 ( p1+2とか)ならPerlで評価できるが,複雑な 式ならせいぜい p1を単にその値に置き換えるか, 数式処理系を使うことになる(それでも評価できな い式は残るだろう)。システムが複雑化する上に完 璧な処理は無理そうではあるが,複雑化の度合いを 抑えつつ実用的な解決方法を探っていきたい。 4. 同種の問題をいくつか集めて大問とすることがあ る。大問中の小問と同じ問題が別に重複されて登録 されていてはこれも冗長である。これには,大問と いうカテゴリを設けることが考えられる。例えば, 次の計算をせよ。 2346 次の計算をせよ。 2346 次の計算をせよ。 次の計算をせよ。 ⑴ 2346 ⑵ 3 12 3 12 次の計算をせよ。 を簡単にせよ。 3 12検討せねばなるまい。 数学教育を主なターゲットとして,教師としての視点か ら,システムをなるべくシンプルに保ちながらQDBを改 良していきたい。
参考文献
1)MathML2.0仕 様 書, http://www. w3. org/TR/Math ML2/, (2003).2)XML1.0仕様書(Fifth Edition), http://www. w3. org/ TR/2008/REC-xml-20081126/, (2008).
3)KIT数学ナビゲーション, http://w3e. kanazawa-it. ac. jp/math/.
4)Journal of the Mathematical Society of Japan, http:// projecteuclid. org/DPubS?service=UIversion=1.0verb =Displayha
5)問題データベース 中学校 数学,東京書籍.
6)WebALT - Web Advanced Learning Technologies, http://www. webalt. com/.
7)田中研太郎(matex. pl の作成者), http://www. me. titech. ac. jp/ miyalab/tanaken/index. html.
8)matex. pl(modied), http : //c040. sh-u. ac. jp/kk/ matex. pl
9)LaTeX2HTML, http://www. ctan. org/tex-archive/ support/LaTeX2HTML/.
10)HTML5(Working Draft), http://www. w3. org/TR/ HTML5/, (2010).
11)MathML3(Working Draft), http://www. w3. org/ TR/MathML3/, (2010).
12)itex2MML, http://golem. ph. utexas. edu/˜distler/ blog/itex2MML. html.
13)math ml. rb, http://www. hinet. mydns. jp/?mathml. rb.
14)黒田拓,MathMLライブラリの開発と今後の展開 について,京大数理解析研講究録,1572, 142-155, (2007).
15)A Brief Description of LaTeXMathML, http://math. etsu. edu/LaTeXMathML/.
16)MathML FAQ, http://www. w3. org/Math/mathml-faq. html, (2002).
17)岸本et al. MathML を用いた類似数式検索方式の実 現,DEWS2003 論文集, 6-P-07, (2003).