Category Archives: Diary

大学における情報分野の専門家?

大学では、年度末の今、学生の卒業に関わるさまざまな行事があります。今日は、われわれのところで卒業論文の審査でした。学生は卒業論文とともに、自らの取得単位に関心があるでしょうが、今や、個々の学生が学務情報システムで取得単位・成績を確認できるようになっています。

ちょうど40年前の今頃、工学部4年生で卒業を迎えようとしていたときのことを思い出しました。大学のデータ処理センターで工学部卒業予定者の成績判定のための「情報処理」を徹夜でやりました。当時は貴重な計算資源であったコンピュータを教育・研究に支障のない時間帯に事務処理のために使って、UM(University Management)委員会のもとで事務改善を進めようとしていたのです。もっとも、私は学生でしたので、そのお手伝いということでしたが、自らの卒業判定データを扱うとは思ってもいませんでした。プログラミングの楽しみをおぼえて、センターのコンピュータOKITAC5090を使わせてもらったのが尾を引いたのです。プログラムは1年前から先輩の学生と同期の友人と一緒に書いたものでした。さすがに、実際のデータ処理中にプログラムを書き換えるようなことはありませんでしたが、オペレーションを含めて緊急対応のために教員、職員の方々と夜を過ごしました。なにしろ、磁気テープ上のデータを何度かソーティングして最終的なリストを印刷するという処理でしたので、何時間か3つのデッキで回るリールを見ながら順調に進むよう祈っていました。磁気テープデッキの調子が悪くて巻き戻しができなかったときに、ウラに回ってプリント基板を引っこ抜いて差し戻すという大胆なこともやりました。

40年前には、「情報処理」は民間でもそれほど一般的ではありませんでした。大学では、研究のための科学計算だけでなく、大学の運営に関わる事務処理にもコンピュータを使おうという将来の情報社会を見越した活動が始まっていたわけです。教員と職員の連携によって挑戦的ともいえる活動が行われていたことを思うにつけ、リーダーシップを発揮されたわが恩師の慧眼にあらためて感服するところです。当時の工学部の学生数は今とほとんど変わりません。900人を越えていたと思います。各人が40科目程度をとっても4万件のデータ処理ですから、今ではたいしたことはありませんが、当時は「翌日まで」という制約下で処理するにはそれなりに大変だったのです。

その後、計算機科学(Computer Science)の研究分野に身を置いて、大学で仕事をしてきました。研究や教育はもちろんですが、それとは別に、20数年前の全学ネットワークUTnetの整備など、職員の方々と一緒に仕事をした情報システムの設計や導入もよい経験です。情報ネットワークは私の研究分野ではありませんが、この機会に実践的なことを学びました。少し、距離があったので、実務的にはかえってよかったのかも知れません。

ひるがえって、こんにちの大学の運営に関わる情報システムの現状はどうでしょうか。40年前とは違います。大学が情報処理の先鞭をつけるといった状況ではありません。産業界ではあたりまえになっているような事務処理も大学ではうまく行われていないでしょう。「大学には情報分野の専門家がいるのになぜ?」といったことも聞こえてきます。ところが、情報分野の研究者が情報システムに通じているというわけではありません。もはや、目的に合った情報システムを設計・開発する技術は情報分野の研究を越えた領域にあるといってもよいでしょう。うっかりして、設計を偏狭な考えの教員に委ねてしまうととんでもないことになりかねません。それならば、大学内のだれがどこまで担当するのでしょう?今はこれが難しいのです。しかし、これが現状でしょう。私はまだ解を見つけていません。

情報分野の教員、研究者は自らの研究だけでなく、情報システムや関連する産業界の現状にも関心をもつべきでしょう。なにより、研究成果が社会に貢献する姿を見ることですから。その一方で、まわりの方々は、情報分野の研究者だからといって、情報システムに通じていると思いこんではいけません。分かっている人もいれば、関心のない人もいます。大学に健全な情報システムが整備されて、真に運営基盤として活用される日がくることを願っています。

情報システムの合理性

「情報システムの合理性」、最近までこのことばには馴染みがありませんでした。しかし、なかなか簡潔で要を得たことばだと思います。

パスポートの電子申請システムが実施されたことがあるということです。しかし、その制度・システムの2005年度利用はなんと103件で、1件あたりの経費が1,600万円程度かかっていたということです。さすがに2006年にはそれが廃止されました。これは極端な例でしょうが、このように、行政において制度を作っても利用度が極端に低いものがあるといわれています。

一昨日から所得税の確定申告が始まりました。私は毎年、この時期に確定申告をしていますが、平成16年分の申告からは国税庁のe-Taxのサイトで様式に入力し、手元のプリンタで印刷したものを提出しています。それ以前は、税務署から送られてきたカーボン複写式の所定の用紙に手書きで記入していました。そのときには電卓が必要でしたが、e-Taxのサイトでは自動的に計算されますので記入は楽になりました。表計算のようなもので、よくできていると思います。私は入力して印刷するためにe-Taxサイトを使っています。しかし、e-Taxの目標は「電子申請」、つまり、申告内容を印刷しないで、内容をネットワークを通じて提出するということだということです。

今年は、税務署からカーボン式の用紙は送られてこなかったのですが、代わりに、電子申請の勧めが届きました。電子申請のためには、区役所で住基カードに個人認証のIDを入れてもらい、さらにそのカードの読み取り器を購入する手間と費用がかかります。電子申請をすれば、その代償として1回に限り、所得税から5,000円減額するという案内でした。しかし、このように手間暇かけて申請書を電子的に送っても、源泉徴収票や領収書などの添付書類は相変わらず現物を届けなくてはいけないのです。どうしてこのような制度を推進しようとするのか理解できません。源泉徴収票などにすでにIDが振られていて、申請書に記入すればよいという状況ならば分かります。今のような中途半端なことで普及させようというのはいったいどういうことでしょう。

「電子申請」というのはいかにも先端的で見栄えのする制度のように聞こえます。しかし、現状では、環境条件が整っていません。私のように、e-Taxサイトのシステムで様式に記入して、それを印刷したものが提出されると、税務署ではその内容を(OCRを使うなどして)入力しなくてはなりません。その技術は成熟していますので手はかからないでしょうが、それでも数字以外の情報には今なお簡単ではないでしょう。現実的な対応はつぎのようなものではないでしょうか。様式はあくまでも人が見るためのものとして印刷できる形をとっているわけですが、ついでに、必要な情報を(たとえば、バーコードのように)符号化して、正確を期するためにサムチェックをつけたものを印刷して、申請書の本体に添えて提出するようにすれば、必要な情報の入力の精度を高めることができるでしょう。つねに「最先端」の技術が定着するわけではないことは、われわれはすでに学習したではありませんか。

このように、行政における情報システムが、利用者のために、また行政の効率化等のために効果を上げているかどうか、また、情報システムの導入と運用にあたって、費用対効果が見合ったものであるかどうか、さらに、制度やシステムに対する信頼を確保できるかどうかということを「情報システムの合理性」ということばで示すというのはどうでしょうか。「情報技術」が行政の目玉となったのは大昔のことです。社会のニーズを十分に把握して情報技術による合理的な情報システムの設計を行うための仕組みを検討すべきでしょう。

昨年の3月まで2年ほど、大学で産学連携の「サービスイノベーション研究会」のお世話をしながら、いろいろなことを勉強しました。委員長としてまとめた提言書は

http://www.ducr.u-tokyo.ac.jp/service-innovation/index.html

にあります。そこでは、経済活動だけではなく、公共サービスへの科学的視点が重要であると考え、その提言も行っています。情報社会における自らの経験が大事だと実感しました。

情報システムが合理的であることは企業活動ではあたりまえでしょうが、行政システムではそうではないというのが残念です。「競争がないからだ」ということも知れませんが、それだからこそ、社会が指摘できなくてはいけないといえましょう。

双方向変換のための双方向関数

近年、構造をもつデータの双方向変換はいろいろな場で注目されています。われわれの研究室では、2003年度〜2007年度の5年間にわたって文部科学省リーディングプロジェクトe-Societyの「高信頼構造化文書変換技術」の中でXML文書の双方向変換の言語を設計し、それを用いて実用的な「WEBサイト編集支援システムVu-X」を構築しました。

http://www.psdlab.org/vux/index.html

もとのデータベース(構造をもつデータ)から注目する部分を抽出加工して、興味のあるビューを得るといった変換プログラムは多くの場面に見られるでしょう。双方向変換のうちの順方向の変換をこの変換だとすると、逆方向の変換はその逆変換ということになります。このような場面では、この逆変換は、ビューが更新されたときに、その変更をもとのデータベースに反映させるということになるでしょう。関数の逆関数という考え方がありますが、それに似ているといえます。ただし、膨大なデータベースからコンパクトなビューを作ることを考えると、ビューはもとのデータの一部の情報しか含んでいないので、ビュー上の変更だけでもとのデータベースをうまく更新することはできません。したがって、われわれが扱う双方向変換は、逆方向の変換でビューだけでなく、もとのデータベースも使うという形のものです。

Webページを構成するためのXHTMLやXMLによる文書は木構造のデータベースだと見ることができますので、双方向変換の対象は木構造ということになります。もちろん、対象とするデータ構造を枠を広げることも可能で、木構造からグラフ構造に広げる試みも行っているところですが、もう一度、XML文書処理のためのより一般的な仕組みも考え直しています。Vu-Xを開発したときの双方向言語Bi-Xはいわばアセンブリ言語のようなもので、プログラムの構造化の仕組みは存在しないので、変換プログラムの開発や保守にはかなりの熟練を要するものでした。そのために、プロジェクトでは、XML文書の標準的な(一方向)変換言語であるXSLTやXQueryで書かれたコードをBi-Xに変換するツールも開発しました。また、関数プログラミング言語HaskellでXML文書を扱うためのライブラリHaXmlに対する変換ツールも用意しましたが、これらのBi-Xへの変換にはさまざまな制限があって、実用的には課題が残っているというのが実態です。

XML文書の木構造を扱うには関数型言語が適しているでしょう。1999年に公開されたHaXmlは

http://www.cs.york.ac.uk/fp/HaXml/

にありますが、Haskellで書かれた関数群からなるライブラリです。よく整理されていて、単一方向の変換には便利なライブラリだといえます。そこで、それらを双方向変換向けに書き換えれば、単一方向の変換として書いたプログラムがそのままで双方向変換を実現することになって、いわば、タダで双方向変換のメリットを得ることができることになります。

このようにして、HaXmlライブラリを双方向化することを考えているときに、「双方向関数」(bidirectional function) を思いつきました。双方向関数はHaXmlだけではなく、より一般的な対象にも有効な「関数」です。これを用いて、HaXmlライブラリを双方向化したXHaXmlを作りました。このように、双方向関数を使えば、普通に書いたプログラムを簡単に双方化することができるようになるといえます。

並列性忘却プログラミング

最近、「並列性忘却プログラミング」に関心をもっています。「並列性忘却」は”Parallelism-Oblivious”の和訳で、「並列性を意識しないでよい」ということを表しています。「脱並列性」というのもいいかも知れません。

「最近」といっても、実は、2007年7月26日〜27日に Parallelism-Oblivious Programming (POP) のワークショップを開催したので、その頃から考えていたことです。ワークショップについては

http://www.ipl.t.u-tokyo.ac.jp/~kmatsu/pop07/index-j.html

にプログラムがあります。そのときの発表スライドは

http://www.ipl.t.u-tokyo.ac.jp/~takeichi/attachments/POP.pdf

です。

「並列」(parallel) は1カ所にしか現れていませんが、もちろん(?)、「並列性忘却並列プログラミング」(Parallelism-Oblivious Parallel Programming)、すなわち、「並列性を意識しないで並列プログラムを開発する」方法を追究しようというものです。POPよりもPOPP とするほうがよいのかも知れません。

1970年代には構造化プログラミング (structured programming) の議論がありました。いろいろな側面がありましたが、その中で、「同じ処理を記述するにしても、行儀のよい書き方をしよう」という教えも説かれました。プログラムの書き手によってその作風がまちまちだと、分かりにくいプログラムはそれが正しいかどうかも確認できないし、他人には理解できないのは問題だ、ということでした。プログラミングのよい「スタイル」を考えようということでした。

最近の並列プログラミングの世界はどうでしょうか?最新の並列計算機のアーキテクチャが頻繁に変わるということもあり、また、性能を最大限に活かすようにプログラムをチューニングしようということもあってか、細部にわたって並列制御のコードを書き込むということが多いようです。並列プログラミングに望ましい「スタイル」というものを見つけ出すことはできないのでしょうか。そのような疑問の中から出てきたものが並列性忘却のアイデアです。

私の所属している研究科では、教員の研究をわかりやすく伝えるために、科学記者の方によるインタビュー記事をホームページに掲載しています。最近、掲載されたものが

http://www.i.u-tokyo.ac.jp/news/focus/100215_1.shtml

にあります。こちらもお読み下さい。

学術会議に関する朝日新聞社説について

学術会議会員として、朝日新聞の社説(2010/02/15)「今こそ社会の知恵袋に」に考えさせられるところがありました。

http://www.asahi.com/paper/editorial20100215.html

http://blog.goo.ne.jp/freddie19/e/d5fd634c65e0089cdb4591d8ff136c65

学術界から社会が直面する問題に積極的に発信することが大事であるという社説の主張はもっともなことですが、そこで取り上げられている事例はいずれも短期的に解決が求められている「社会問題」といえるでしょう。

学術会議では、現在、「日本の展望」として学術界からの提言をまとめています。私も、テーマ別に検討を行う「情報社会分科会」の委員長として、「安全で安心できる持続的な情報社会に向けて」をとりまとめたところです。そこでは、わが国の社会の現状を分析して課題を明確にし、それに向けた方策を提言しています。このような提言を行うにあたって、1年半の審議を行いました。さらに、現在、査読意見をもとに改訂した提言(の最終版)を公表するための審議を行うところで、提言書は4月に公表される見込みです。

学術会議が短期的に解決が求められる課題に対して即効性のある解決策を提言するには難しい面があるといえます。会員210名は全員が非常勤公務員として任命されています。そこで、特定の課題のための会議が開催されるときに集まって審議するということになります。本務の職務との関係で出席できないこともありますので、審議が遅れがちになってしまいます。もっとも、議論の内容が決まっている場合には、各委員が検討してメール等で意見の交換を行うこともありますが、それでもこのような手段では「同時に議論する」ことによる密度の高い議論には及びません。

学術会議の会員210名と連携会員約2000名は国内各地に在住しています。それぞれの本務で多忙な日常の中で、社会が直面する問題に迅速に対応するために、頻繁にまる一日をかけて東京に出張してくることは難しいでしょう。学術会議には「IT環境整備推進委員会」が設置され、私が委員長を務めています。そこでは、ビデオ会議等の活用の可能性も検討しています。その検討自体が標準的な審議スケジュールになっているという感が拭えませんが、会員の中からも要望が強いことですので、できるだけ早い時期に実施できるようにしたいと考えています。

学術会議の会員の「社会が直面する問題に対する積極的な取り組み」への意識は高いと思います。それを組織的な活動に移すことができるように、ITの活用を含めた議論、審議の体制、あるいは基盤整備を進めることも大事だといえるでしょう。