オンライン目録検索システム構築演習の4年間とこれから
阪口 哲男, 宇陀 則彦, 鈴木 伸崇
筑波大学 図書館情報メディア系
E-mail: {saka, uda, nsuzuki}@slis.tsukuba.ac.jp

概要
筑波大学 情報学群 知識情報・図書館学類で実施している必修科目でのオンライン目録検索システムの構築演習について報告する。本演習は2008年度より必修科目としてこれまで4年間実施しており、WWW経由で利用可能な書誌データ検索機能を備えたシステムを各学生が構築している。本稿ではその演習の概要とこれまでに判明した問題やこれからの展望について述べる。
キーワード
筑波大学 情報学群 知識情報・図書館学類, 知識情報演習I, 資料組織演習, 情報資源組織演習
1. はじめに筑波大学 情報学群 知識情報・図書館学類( 以下、本学類) は創設5 年目を終えつつあり、この2012年3月に第2期目の卒業生を送り出す。本学類は前身の図書館情報大学、筑波大学 図書館情報専門学群を受け継ぎ、知識と情報のスペシャリストの育成を目的としている。知識と情報のスペシャリストのあり方は様々であるが、図書館司書もそこに含まれる。本学類は単に司書資格を取得可能というレベルに留まらず、技術から制度までより広く・深く学べるようにカリキュラムを展開している。
本稿では、そのような本学類の開設科目のうち、2年生を対象とした必修科目である知識情報演習Iの特に後半で行っているオンライン目録検索システム構築演習を紹介する。そして、これまで4年間実施して来た経験で判明してきたことや諸問題について考察し、今後の展望について述べる。
2. 知識情報・図書館学類とその開設科目
知識情報・図書館学類は筑波大学の情報学群に属する。情報学群にはこの他に情報科学類と情報メディア創成学類がある。現在の学群・学類の体制は2007年度からのものであり、その前身となった旧組織は、第3 学群情報学類と図書館情報専門学群である。このうち図書館情報専門学群は 2002年に実施された筑波大学と図書館情報大学の統合時に、図書館情報大学での教育内容を1継承するために設けられた学群である。このように本学類は図書館情報大学における図書館司書と情報のスペシャリストの育成を受け継ぎ、情報のみならず知識も含めたスペシャリストの育成を目指している。なお、本学類の定員は1年次入学が100名、3年次編入学が10名となっている。
本学類のカリキュラムの大要は学類パンフレット[1]に掲載されている。本学類の科目一覧は図1のようになっている。本学類では図書館司書資格の取得が可能であるが、図1を見ればわかるように、図書館法施行規則に定める科目(以下、司書科目)と同一名称の科目はほとんどない。本
学類は図書館司書も含めた知識と情報のスペシャリストの育成を目的としているため、カリキュラムには図書館司書が学ぶべき内容も自然と様々な科目に展開されている。そのため、図2に示すように開設科目の中で司書資格のための科目と内容的な対応づけをしている。本稿で報告する演習を実施している知識情報演習Iは図2からわかるように司書科目の資料組織演習に対応するものである。
3. オンライン目録システム構築演習について
3.1. 知識情報演習Iの概要
知識情報演習Iは本学類の2年生を対象とした必修科目であり、実習室と設備の制約により、2クラスに分けて実施している。現在、筑波大学は 3学期制であり、第1学期に各クラス2時限の演習を10回実施している。なお、1時限は75分である。 2011年度のシラバスを図3に示す。図3に示しているように、前半の5回で日本目録規則やダブリンコアに基づいたメタデータの作成を行い、後半5回では、作成したメタデータを検索するシステムの構築を行っている。本稿で紹介するのはこの後半で実施しているオンライン目録検索システム構築演習(以下、本演習)である。この後半を著者らが担当している。具体的には阪口はこれまでの4年間全てを担当し、宇陀が最初の立ち上げの2年間を担当した後を引き継いで鈴木が2年間担当している。なお、2012年度も引続き阪口と鈴木が担当する予定である。
シラバスの履修要件に上げられている科目は、知識資源組織化論は目録・メタデータや分類など資料の組織化に関する講義であり、やはり2年生対象となっている。残りの科目はいずれも後半のシステム構築に必要な前提知識に関する講義と演習である。データベース概説はリレーショナルデータベースの基礎を扱っており、これも2年生対象となっている。プログラミング演習I・IIは1年生対象の必修科目であり、本学類ではプログラミング言語 Ruby を用いて基礎的なプログラミングを教えている。
3.2. 本演習の内容
本演習では、本学学術情報メディアセンターが運用している全学計算機システム 1 を用いて行っている。全学計算機システムでは各実習室の利用者端末として Windowsと Linux2 のデュアルブート構成のデスクトップPCが配置されている。その他に学内LANを通じてログインして利1

http://www.u.tsukuba.ac.jp/

2Linux のディストリビューションとしては利用者端末では CentOS を、その他のサーバ類ではRedHat Enterprise Linux を使用している。

2

図1: 知識情報・図書館学類の科目一覧(学類パンフレット[1] p.03より引用)
用可能なWindowsのリモートデスクトップサーバ、Linuxサーバ、個人ページを設置可能なWWWサーバやCGI サーバがある。これらの端末とサーバ類は全てファイルサーバを共有しており、ユーザはどの端末やサーバからでも自らのファイルを同様にアクセスすることが可能となっている。またWWWサーバでは全学生がWWW で静的な個人ページを公開することができる。それに加えてCGIサーバを用いると CGIプログラムによる動的なページを公開することも可能である。
なお、CGI サーバのOSはLinuxとなっている。
このような環境を用いて、本演習では以下のような要素技術を組み合わせたオンライン目録検索システムの構築を全学生に課している。

3

図2: 司書科目と本学類開設科目の対応 (シラバス[2]のp.155より引用)
・ プログラミング言語: Ruby3・ リレーショナルデータベース管理システム(RDBMS): SQLite34
・ プログラムライブラリ: CGI5, sqlite3-ruby6
5回の演習は以下のような流れで進めている。
(1) Linux上でのRubyプログラミング
1 年生のプログラミング演習 I ・ II では、学生諸君が比較的使用する機会が多いと思われるWindows 環境を用いている。一方、本演習では最終的にCGI プログラムの開発が必要となるの
3

http://www.ruby-lang.org/

4

http://www.sqlite.org/

5

Ruby標準添付ライブラリ6

http://rubyforge.org/projects/sqlite-ruby/4図3: 知識情報演習Iのシラバス (シラバス[2]のp.17より引用)
で、Linux環境において、まずはプログラミングの復習を行う。これによってLinux環境に慣れて5もらう。
(2) データベース管理システムSQLite3の利用
目録データの検索には必ずしも最適というわけではないが、本演習ではRDBMS を用いている。 SQLなどの標準化がされており、他の様々な用途への応用にも使用できるので、RDBMSを利用する機会としても有効であると考えたためである。 RDBMSとしてSQLite3を用いて簡単なデータベースの構築や検索などSQLの練習を行う。
(3) Rubyプログラムからのデータベースアクセス
この段階ではSQLite3を用いてデータベースの検索や、データベースへのデータの挿入を実行するスタンドアロンなプログラムを作成する。データ挿入の練習問題としてはJ-BISCで提供される書誌データのplain-text形式のデータを変換し、データベース化するプログラムを作成する。まず10件のデータを対象にテストし、最終的には18210件のデータのデータベース化を目指す。
(4) CGIプログラムの開発
この段階では、WWWを通じて広く使ってもらうためのユーザインタフェースを構築する技術
として CGI に従ったプログラムの作成方法を学ぶ。まず、入力フォームのHTML記述の基礎を学び、Rubyに標準添付されているCGIライブラリを利用してフォームの入力値を受け取り、結果表示のHTML生成を行うプログラムを作成する。
(5) オンライン目録検索システムの設計と開発(1)〜(4)で一通り検索システム構築に必要な要素について学んだので、最終的にオンライン目録検索システムを完成させるために設計と開発を進める。本演習の成績評価はその構築したシステムとそれについてのレポートに基づいている。設計にあたってはインターネット上の様々なOPACサービスを知ってもらうために日本国内図書館OPACリスト[3]を紹介し、どのようなデザインにするかなどの検討を行って開発を進めるように指導している。
なお、本来のオンライン目録検索システムでは、書誌的事項のデータに加え、図書館における所蔵冊数や請求記号、排架位置、貸し出し状況などの情報も扱うのが一般的である。しかしながら、そこまで含めると蔵書管理システムとの連携などのために演習課題としては複雑化してしまうため、本演習では書誌データの検索機能のみを実現することを目標としている。
3.3. レポート課題について学生には演習の総仕上げとして、前節の(3)で用いたJ-BISCデータ18210件を対象とするWWW経由で利用可能な検索システムを完成させ、その機能説明や作成したプログラムの解説などを記述したレポートを提出させている。担当教員はそのレポートを読むだけでなく、各自の構築した検索システムを実際に使ってみて必要な機能が説明通りに動くかどうか確認して採点を行っている。
本学類は文理融合型であり、様々な指向の学生がいる中での必修授業であるため、構築するシステムの備えるべき機能として、必須仕様、中級加点仕様、上級加点仕様の3段階を示し、各自6

が自分の習得したレベルに応じて目標を設定できるようにしている。必須仕様は最低限の合格レベルであり、少なくともタイトルや著者名などによる単純な検索とその結果一覧の表示機能を備えることを要求している。次に中級加点仕様では詳細なフィールド指定検索やそのためのデータベースのスキーマ設計と実現を要求している。上級加点仕様ではユーザインタフェースとして簡易表示機能と詳細表示機能を備えることや20件毎のページ単位表示などを要求している。
このように単に必須とそれ以上の段階を設けるだけでは、中級や上級に挑戦しようという学生がごく少数になることも考えられる。そのため、少しでも良いものを作成する意欲を持ってもら
おうと、中級と上級の機能を実装し、デザインなども良くできたものを毎年各クラスで1名ずつ選び、学類長名で知識情報演習I 優秀作品賞の表彰を行っている。なお、表彰者については学類の小冊子KLiS TODAY で紹介している[4]。その効果もあってか毎年3分の1前後の学生が中級や上級の仕様を一部分だけの場合もあるが実現している。
4. これまでの4年間と諸問題
本学類の1期生が2年生になった2008年度より4年間本演習を実施して来た。その中で特に気がついた点や傾向、諸問題について述べる。
全体の傾向
4年間このような演習を実施して来たが、演習に出席して演習問題を地道にこなしている学生のほとんどは単位取得できている。単位を取得できない学生は前半のメタデータ作成の段階、つまりプログラミングなどがまだ必要ではない段階の課題も未提出であることが多い。プログラミ
ングは1年生の必修で学んでいることもあって、プログラミングが単位取得の障壁になっているわけではないことが伺える。これは、必須仕様を満たすだけであれば、それほどプログラミングとしても難易度が高いものではないので、当然の結果と思われる。
演習中で学生が戸惑うのは書誌データを変換し、データベース化するところであることが多い。これは世の中で使われている実際のデータをほぼそのままで扱うことが初めてであるからではないかと思われる。プログラミング入門的授業などではデータは演習用に比較的単純化されたものを扱っているため、入力データの様々なパターンに十分対応できるようなプログラムの作成をするのが初めての学生がほとんどである。あまりに枝葉末節に陥っても困るが、このような実データに近いある程度の量のデータを処理するプログラムの作成の経験をさせることができたのではないかと思われる。
履修の前提条件に関する問題
履修上の問題が生じるのは主に第3年次に編入学した学生と他学類で司書資格などのために履修しようとする場合である。このような場合、本演習が想定している履修要件のうち、Rubyによるプログラミングの経験があるか否かで差が生じる。高等専門学校などの出身でプログラミングについてある程度習得済である場合は、言語の違い等での戸惑いはあるものの対応できていることが多い。一方、全くといってよい程プログラミングについて学んだことがない場合は、プロ

7

グラミングの基礎を自学自習で補うことになる。しかしながら、実際には色々とわからないことが多量に発生するので、場合によっては担当教員やティーチングアシスタント(TA)がほぼつきっきりでプログラミングの基礎的事項の説明などを補う必要が生じる。
なお、初年度のシラバスの履修要件にはプログラミング演習I・IIに関する記述はしていなかった。これは本学類ではこれらの科目は1年生向けの必修であるため、2年生向けの本演習の前に履修するのが自明なので、あえて明記する必要はないと考えていたからである。本演習の実施初年度にこのような問題が意外と大きいことに気づき、特に3年次編入学生や他学類学生のために改めて明記することにしたものである。ただ、明記しても実際には前述のようなプログラミング未経験者の履修は0になったわけではなく、そのような学生への対応方法については引続き検討が必要である。
要素技術等の原理の解説時間の不足
2時限×5回という限られた時間で実施しているため、本演習では原理的な解説などは最小限に留まっている。メタデータとデータベースについてはそれを扱う講義科目があり、それらを同時並行的に履修することを推奨している。しかしながら、WWWベースのシステム構築手法、具体的に用いているのはCGIであるが、それに関する2年生対象の授業は設けられていない。そのため、学生からの質問や相談内容からは、CGIの原理やプログラムがどこでどう実行されるのかについて、今一つ理解し切れていない面が残っていると思われる。
なお、2年生ではなく3 年生対象ではあるが、本学類ではWebプログラミングという講義を開設しているので、演習の最後には興味を持った場合にはその履修を勧めている。しかしながら、3年生になると学生は3つの主専攻に別れ、Webプログラミングはそのうちの一つの主専攻向けの授業であるため、特に他の主専攻を選択した学生はあまり履修せず、例年30名前後の履修に留まっている。
使用環境の問題
ほとんどの学生にとっては初めてのCGIプログラミング、言い替えるとサーバ・プログラミン
グである。そのため、実行時エラーなどを調べてデバッグするためにはサーバのログの内容を確認することも学ぶことになる。ところが、現在の全学計算機システムのCGIサーバは一般ユーザによるログインを許可していない。自らのホームディレクトリ下に特定のディレクトリを作成してファイルを置き、実行許可を設定するだけでCGIプログラムの実行が可能となる。そのため、CGIサーバのログは学術情報メディアセンターが提供するWWWベースのサービスを通じて、自分のプログラムに関連するもののみ閲覧することになる。
この方法は、一般的なログファイルを見るという手順と異る点にも問題があるが、むしろ現時点で問題になっているのは、CGI プログラムを記述する言語によってはユーザ毎のエラーメッセージ抽出が不十分になることである。これまでも学術情報メディアセンターの担当者と連絡をとりながら改善を検討しているが、現時点で抜本的な解決には至っていない。

8

幸い、RubyのCGIライブラリにはオフラインモードと呼ばれる、コマンドラインで対話的にプログラムを実行するための仕組みを備えている。そのため、ログの閲覧に加えて、デバッグの手順として、このオフラインモードを使用することも解説するようにしている。
5. これから
ここまでに延べたように演習を4年間行って来たが、最後に今後の展開について少し考えてみたい。なお、本稿で書いているのは一担当者として可能性について考えている段階であり、実際に本演習に取り込むかどうかはカリキュラム全体との関係もあるので、今後関係者での議論が必要である。
まず、現在用いている要素技術の組合せの再検討がある。プログラミング言語は汎用のものであれば良いので、他の要素技術との組合せが可能である限り特に変更の必要はない。現状どおり不都合が生じない限り1年生で学んだプログラミング言語を用いるのが良いと思われる。
次にWWWベースのシステム構築技法であるが、インターネットの世界は変動が激しいが、現状を見る限り HTML5など新たな技術仕様などが出て来ることはあっても、WWW経由でサービスを提供することは当面主流であると思われる。したがって、WWWベースのシステム構築という枠組自体を変更する必要はないと思われる。しかしながら、近年、WWWベースでサービスを提供する際に、Web-APIの提供がなされる例が急増している。Web-APIの提供により、他のシステムからの利用が容易となり、いくつものサービスを組み合わせてより高度なサービスを可能とすることができる。例えば、オンライン目録検索システムにおいては、Web-APIを提供すれば、複数館の目録の横断検索の構築などが効率的に行えることになる。しかしながら、現在用いているCGIはWWWベースのシステム構築技術としては基本的な部分しかないため、Web-APIを提供する場合は、なんらかのWebアプリケーションフレームワークの活用が一般的である。したがって、本演習でもそういった Webアプリケーションフレームワークの利用も検討の必要があると考えられる。
最後にデータの蓄積と検索のためにRDBMSを用いることの是非がある。目録検索の場合、前方一致や部分一致などの文字列検索機能が重要である。一方、RDBMS は本来トランザクション管理などの機能が重視され、文字列検索機能については最近ではサポートするものも増えているが、あくまでも付加的機能に留まる。文字列検索については、それに特化した索引付けと検索のエンジンがある。検索性能を重視すれば、そのようなエンジンの採用も検討すべきであるが、特定のエンジンの使い方だけを習得することにならないかについて注意が必要と考えられる。
6. おわりに
以上、本学類で実施しているオンライン目録検索システム構築演習の概要紹介とこれまでの4年間でわかったことや今後について述べて来た。現在司書資格のための科目について改訂が実施されつつあり、それに合わせて本演習も対応する司書科目が情報資源組織演習に変更されることが予定されている。この情報資源組織演習には「書誌データ管理・検索システムの構築」という内容が含まれることになっており、本演習はまさにそれに対応するものと考えられる。一方で、

9こういった検索システムの構築やサービスを展開しようという者が全員プログラミングをするというわけでもなく、実際には検索機能などを既に備えた完成したソフトウェアを使って演習するという考え方もあり得る。しかしながら、自らどのフィールドを検索対象とするか、そして、そのためにはフィールドをきちんと分けてデータベース化するというところまで実感するためにはデータベースの設計も含めたシステム構築が役に立つと考えている。
過去を振り返れば、カード目録の時代は著者目録、分類目録、件名目録などを構成するために、カードにそれらの目録にいれる際の標目指示の記入をしていたが、これらは今から振り返るとまさに検索の際にどのフィールドで検索できるようにするかを設計・実装していたことに相当すると思われる。そういった観点からは出来合いの検索フィールドも決まり切ったシステムを単に使うのではなく、どのような検索を可能にするかということを自ら考える機会を設けるという意味でも本演習の価値があると考えている。
参考文献[1] 筑 波 大 学 情 報 学 群 知 識 情 報・ 図 書 館 学 類 . 2012 School Guide. 17p. 2011 年 . (PDF 版 :http://klis.tsukuba.ac.jp/Pamphlet/Pamphlet12/klis12M.pdf, 電 子 書 籍 版 :http://klis.tsukuba.ac.jp/ebook/Pamph2012)[2] 筑波大学 情報学群 知識情報・図書館学類. 平成23年度知識情報・図書館学類開設授業科目
シラバス. 160p. 2011年3月.
(PDF: http://klis.tsukuba.ac.jp/lectures/Syllabus110331.pdf)[3] 農林水産研究情報総合センター. 日本国内図書館OPAC リスト. 2010 年01 月05 日版. URL:
http://ss.cc.affrc.go.jp/ric/opac/opaclist.html.
[3]

筑 波 大 学 情 報 学 群 知 識 情 報・ 図 書 館 学 類 . KLiS TODAY.

年 4 回 発 行 . URL:

http://klis.tsukuba.ac.jp/klis_today.html (注: 優秀作品賞掲載号は No.3, No.8,No.12, No.16)

10