Memoirs of the Faculty of Science
Kochi University (Information Science)Vol. 27 (2006), No. 2

Plone/ArcheTypes を用いたシラバス作成システム
木谷由実†

菊地要時夫††

旨

現在、インターネットの普及により、情報空間を支える基本的な技術のひとつとしてデータベースの重要性が認識されている。インターネットにおいて提供されている情報ページにおいてはその外観デザインとコンテンツを切り離し、コンテンツをデータベースによって管理する、コンテンツ管理システム(CMS: Content Management System)の導入などが例に挙げられる。高知学園短期大学においては、平成 15 年度に学内ネットワークが再整備され、学内のどこからでも Web が利用可能な状況となってきている。
そこで、オープンソースの CMS である、Zope/Plone/ArcheTypes を用い、シラバスの作成から公開までを一貫して行えるようなシステムの構築を目指した。さらに、過去に Word 文書で作成されたシラバスを一括投稿することができれば、このシステムがより便利になると考え、Python スクリプ
トを用いて自動投稿プログラムの作成も試みた。以上の研究を通じて、オープンソース CMS の利用によって、従来よりも安価に十分な機能を備えたデータベース応用ソフトウェアを構築することが可能であることが明らかとなった。

1.

ArcheTypes を用いてコンテンツのタイプをはじめに定義し、各種のウェブ情報サービスに応用をインターネットの普及に伴い、情報空間を広げることができる。

支える基本的な技術のひとつとしてデータベースの重要性が認識されている。ここで取り本研究で取り上げる高知学園短期大学にお上げる、Zope[1] は Web・FTP サーバの機能

いては、平成 15 年度に学内ネットワークが再を備えたオブジェクトデータベースであって、整備されて[3]学内の至る所から Web アクセ

その上に Plone[2]を組み合わせることによりスが可能となったことから、シラバス公開シポータルサイトを構築することができ、さらステムの導入が課題となっていた。本研究でには、オープンソースの CMS ソフトウェアが利用可能となってきている状況を考慮し、単†高知大学大学院理学研究科数理情報科学専攻
Department of Mathematics and Information
Science, Kochi University††
高知大学理学部
Faculty of Science, Kochi University

なる公開システムではなくシラバスの作成から公開までを一貫して行えるようなシステム構築を目指した。

1

シラバス作成システムでは、担当教員によースを利用するためのサーバを必要とせず、るシラバス原稿の作成から教務係への提出、標準的な WWW サーバのみで簡易に実現でき教務係での点検と公開といった作業が必要でる。またブラウザから入力可能であることかあるが CMF が提供するワークフローにより、ら、大多数のユーザにとって、特別の訓練を全てをウェブ上で管理することが可能となる。

経ていなくてもブラウザの基本操作にのみ熟

また、シラバスには教員が作成する教科の授練していれば容易に操作が可能である。

業計画だけでなく対象学科・学年・開講時間・2.2.

教科書参考書の指定など、各種の付加情報が高知大学・立正大学におけるシラバ
ス作成システム必要であるが、ArcheTypes を利用することでデータ型の定義を統一的かつ容易な形で実実際の例としてデモとして公開されている

現することができる。

立正大学シラバスと[6]、高知大学シラバスのまた、ウェブインタフェースからのシラバ作成画面について検討してみる。

ス投稿は一般の教員にとって扱いやすいもの

立正大学シラバスは記入項目が 6 項目しかであるが、教務係において雛形を作成するななく全てテキスト形式での記入は容易であり、どの、繰り返し同じ作業が発生する場合には年度による検索は可能である。だが、シラバ

GUI の利用は大変な作業となる。このため、

ス内容での検索システムは設置されていない。

過去に Word 文書で作成されたシラバスを高知大学シラバスの項目にはあらかじめ設定一括投稿することができれば、このシステムされている基本項目とは別に、教官は 22 項目がより便利になると考え、Python[4]スクリプを記入しなければならない。項目はラジオボトを用いて自動投稿プログラムを作成した。

タンによる選択形式のものからテキスト形式のものがあり、Perl で作成した場合、プログ

2.

既存のシラバス作成システム

2.1.

関連研究

ラムは煩雑なものとなることが予想できる。
本研究では Perl の代わりに Python を使用

各地の大学で取り組まれているシラバス公し、Zope/Plone/ArcheTypes を利用すること開システムであるが、短期大学で取り入れてで同様にブラウザからのシラバス入力、正規いるところは少ない。また、業者発注により表現による項目内容の抽出を行うだけでなく、作成したものは費用がかかり、短期大学にお項目設定を容易にし、記入方法に自由度をもけるシラバス導入の遅れの要因となっている

たせ、画像などの利用を可能とすることを目のではないだろうか。

標とした。また、ユーザ管理やセキュリティ

一方、新潟大学教育人間科学部において、面の設定などもブラウザから容易に行えるよ1998 年から 1999 年にかけて Perl と CGI をうに CMS システムを採用する。また、安価用いたシラバス作成･収集システム構築の取にシステムを構築することができるようにオり組みがなされている[5]。この研究では正規ープンソースであることを条件とした。

表現を利用し項目を抽出・加工を行う際に、テキスト処理が柔軟に行えることから Perl を使用している。特徴としては特別なデータベ

23.

CMS の利用

3.1.

CMS とはCMS とはブラウザ上から Web サイトのコンテンツの編集・管理、ユーザ管理などを行うことができるシステムのことである[7]。一定のデザインを保ちつつ複数ユーザがコンテンツの作成・編集を行うことができるものとして最近注目されており、会社などのホームページだけでなく教育現場でも利用されている[8]。CMS の長所として、HTML やサイト
図 3-1 シラバス作成システムにおける CMSの構造を知らなくてもコンテンツの作成・編集が行え、サイトデザインを変更しても、コンテンツとリンクを変更する必要が無い等が

3.3.

CMS によるシラバス投稿の流れ挙げられる。また、コンテンツへのアクセス

Plone は Zope の上に構築されていることから、制限も細かく設定することが可能である。

シラバス作成者としての教員や、シラバス記入項目の設定と最終公開時における承認を行

3.2.

Zope/Plone の利用

う教務係など、ユーザの役割設定を行うことができる。シラバス作成の流れを、図 3-2 にZope は、Web アプリケーションサーバやFTP サーバの機能を備えたオブジェクトデー示す。

タベースであり、Python プログラム言語を用いてオープンソース開発されている。また、
Plone は Zope と CMF の上に構築される情報ポータルシステムである。本研究ではZope/Plone を利用することで、コンテンツのWeb 経由での追加や編集、コンテンツのナビゲーションと検索、コンテンツへのセキュリティとワークフローの適用を簡単に行うことを目的とした。
この Zope/Plone の CMS を利用したシラバ

図 3-2 シラバス作成システム

ス作成システムにおいては、教務は Plone のサイトやそのコンテンツの編集・管理、セキュリティ面の設定などを Zope の管理インタ

4.

ArcheTypes の利用ーフェース（ZMI）を利用して行うことがで

4.1.

ArcheTypes の特徴

き[9]、教員は Plone サイトにログインするこArcheTypes とは、Plone サイトの環境下でとで各自がコンテンツの作成を行うことがで新しいコンテントタイプを設計するためのきる[図 3-1]。

Zope プロダクトであり、オブジェクト指向言

3

語での GUI 設計に用いられた概念である

schema=BaseSchema+Schema((StringField(‘distinction’,vocabulary=DISTINCTION,required=1,widget=SelectionWidget(label=’性別’),MVC（Model/View/Controller）モデルの M（Model）と V（View）を簡単に提供するものである[図 4-1]。

),

図 4-2 example.py
こ こ で は , ス キ ー マ (schema) と し てArcheTypes で用意されている基本スキーマ(BaseSchema)に追加して性別項目に関するスキーマを定義している。つまり性別項目(distinction)は文字列(StringField)であり、表示 用 の 変 換 辞 書 (vocabulary) と し て

図 4-1 MVC モデル

DISTINCTION を用い、入力インターフェーPython でコンテントタイプの説明を記述

ス で は 選 択 形 式 ウ ィ ジ ェ ッ ト

すると、閲覧フォームや編集フォームの作成(SelectionWidget) を 使 用 す る 。 但 し 、など、他の作業はほぼ ArcheTypes が処理し

DISTINCTION はもうひとつの定義ファイてくれる。ArcheTypes で設計するコンテントルである config.py で定義される。[図 4-3]

タイプのメインコードには「スキーマ」、「ウDISTINCTION=DisplayList(((‘man’,’男’),(‘woman’,’女’),ィジェット」、「フィールド」が含まれており、これらの組み合わせにより統一された規格の中でも設計者にコンテントや入力インターフ))

図 4-3 config.py

ェースに関する自由度を与えることができる。

以上のスキーマ・ウィジェット定義により、4.2.

ArcheTypes による入力（編集画面）

図 4-4 のような入力画面にすることができる。

Model となりプロダクトの中心となるソーショートネームとタイトルは BaseSchema にスファイルはスキーマを記述するもので、定義されているものであり、それぞれＵＲＬ色々な属性を持つフィールドとウィジェットと title に使用される。性別項目は必須の設定を組み合わせて用いることでシラバス入力項項目であるため、図 4-2 で required=1 として目を全て編集できるアイテムを生成する。

おり、図 4-4 では性別と書かれた横に赤いマ

以下に自己紹介ページを作成する例

ークが入ることにより必須項目であることを(example.py)を使いソースコードの一例を図示している。

4-2 に示す。

4

または別にカスタマイズする事により表示方法を変更することができる。
base_view.pt は TAL(Template AttributeLanguage)を用いて書かれたページテンプレートである。TAL は HTML のタグ内に書かれる制御言語で、ArcheTypes によって定義されたスキーマに従って保存されたデータを取り出し、動的なページを生成することができる。
また、Zope の管理インターフェイス（ZMI）
か ら ペ ー ジ テ ン プ レ ー ト で 使 用 す る CSS

図 4-4 ArcheTypes 入力（編集）画面（Cascading Style Sheets）を書き換えるこ

4.3.

ArcheTypes で提供されるフィールとで表示画面の形式を変更することもできる。

ド・ウィジェット
ArcheTypes で は 以 上 に 例 示 し た
StringField、SelectionWidget の他にも多彩

5.

シラバス作成システム

5.1.

従来のシラバスとその特徴なフィールドとウィジェットが用意されてい現在、高知学園短期大学では冊子としてシる。主なものとしてはフィールドクラスとしラバスを配布しており、内容は Microsoftて StringField（文字列）、TextField（文章）、Word を用いて作成されている。冊子シラバス

DateTimeField（日時）、ImageField（画像）、の製作手順は次のようになっている。まず、PhotoField（写真：画像＋撮影情報等）があ教務課が基本情報を記入し、作成された Word

り、ウィジェットクラスとして StringWidget

ファイルをフロッピーディスクの形で各教員（文字列を入力）、TextAreaWidget（長い文に配布する。次に、教員はシラバスの内容を字列の入力）、LineWidget（複数行の文字列記入し教務課に提出する。最後に、教務課はをリストとして入力）、SelectionWidget（項提出されたファイルを冊子にする際の印刷順目の選択）、ImageWidget（画像の入力）、に振り分け各フォルダに保存、冊子にするたRichWidget（複数の記述フォーマットに対応めに印刷を行う[図 5-1]。

した文章の入力）等が挙げられる。
これらのフィールド、ウィジェットを組み合わせて使用することで、多目的なアイテムの作成が容易なものとなっている。

4.4.

ArcheTypes による表示画面

ArcheTypes を利用し作成したアイテムの図 5-1 シラバス作成手順

表 示 に は ArcheTypes に 入 っ て い る
base_view.pt が用いられており、これを変更

5教務課によって基本情報が記入されたファイルを配布することで入力項目はあらかじめ決まっており、フォーマットの統一されたシラバスを作成することができる。また通常 15時間に分けられている授業計画項目では教員によっては 15 時間まとめて書くなどの自由度も持っている。しかし基本情報を全て打ち

図 5-2 Selection ウィジェット

込み、教員全員に配布、その後回収・保存すまた項目を複数選択できる MultiSelection

るなど教務課にとって手間がかかるものとなウジェットを使用することで、二つの以上のっている。

学科にまたがって開講される授業等にも対応

そこで、Web でのシラバス作成システムのできる。

導入においては、できるだけ記入の自由度を担当教官・授業の目的とテーマなどの文字保ち、教務課の手間が軽減できるように考え列の記入項目のうち、比較的短い文字列にはた。

String フィールドの String ウィジェットを使用した。String ウィジェットでは表示枠が5.2.

Web 上でのシラバス投稿

長くなり過ぎないようにサイズの指定が可能

Web 上でシラバスを投稿することで従来必である。また授業の目的とテーマのように少要であった、手間を省くことが可能となる。

し長い文字列には行数指定ができる Lines ウ

投稿画面のデザインに ArcheTypes を使用すィジェットを使用し広い記入スペースを確保ることで入力項目に見合った細かな設定を行した[図 5-3]。

い、シラバスの作成を簡易化しミスを削減するように努めた。
シラバスの入力項目は単位数・開講学科などのようにあらかじめ決まっているものの中から選択する選択項目、担当教官・授業の目的とテーマ等の文字列を記入する項目、授業
図 5-3 String・Lines ウィジェット

計画のようにある程度編集の自由度を持たせた文章の記入項目の３つに大きく分けられる。
選 択 項 目 で は 、 String フ ィ ー ル ド の文章の記入項目である授業計画には自由度

Selection ウィジェットを使用した。Selectionを持たせるため、Plain テキストや構造化テ

ウィジェットは選択の種類が３項目以内の場

キスト、HTML 等、記述方法を自分で選択で合はラジオボタン、４項目以上の場合はプル

きる Text フィールドの Rich ウィジェットをダウン式のリストボックスによって表される使用した。複数の記述方式を選択できること[図 5-2]。

で教員のスキルに合わせて自由度のある授業計画を作成することができる。
また Rich ウィジェットにはアップロード

6

機能が付属しており、テキスト形式やを行ったり、複数の異なる文字列を一括してMicrosoft Word で書いた授業計画のファイル置換したりすることが可能である。今回の自をアップロードできる[図 5-4]。

動投稿において、Word ファイル形式では直接Python 中で使用することができない。そこで、Word ファイルを HTML 形式で保存し、ソースから正規表現を利用し項目の抽出を行った。

6.3.

自動投稿

6.2 では正規表現を利用し過去の Word シラバスから項目データの抽出を行った。本節では作成された項目データファイルを読み込み、自動投稿 Python スクリプトでシラバス作成システムへの送信を行う。
図 5-4 Rich ウィジェット

6.

過去シラバスの投稿

6.1.

過去シラバスの必要性

今までは新規シラバスの作成について触れてきたが、Plone には既存のアイテムをコピーするという機能がある。シラバスとは毎年内容が様変わりするということは少なく、前年度のものに少々手を加えるといった形のも
図 6-1 自動投稿 Python スクリプトのが多い。この事から、コピー機能を使用することでより手軽にシラバスを作成すること6.3.1.

が可能となる。そこで、Python を利用し過去

Plone へのアクセス

Plone はアイテムを作成するとアイテムにに書かれたシラバスの自動投稿を試みた。

作成したユーザの情報もクリエイターとして6.2.

正規表現付随する。そこでまず、シラバス項目データが入った txt ファイルから項目内容を読み込

正規表現とは、文字列に対する複雑なパタみ、教科担当の教員名を取得する。

ーン適合と置換規則を定義するための文字列であり[10]、文字列の検索・置換を行うとき先に登録されている教員ユーザ ID リストに利用され、Python でも正規表現を操作するからシラバス内に記入されている担当教員名

re モジュールが存在する。正規表現を使えばを取得する。取得した担当教員名と合致する文字列を直接指定せず、パターンを指定するものを検索、合致した場合その教員名 ID でロことができるため表記の揺れを吸収して検索グインする。しかし、ユーザ登録されていな

7

7.

い教員も存在するため、その場合は教務 ID と考察とまとめオープンソースの Zope/Plone を利用するパスワードを使用する。
ログインに必要な情報である接続先アドレことで、単なる公開システムではなく CMF

ス・取得した ID・パスワード等をディクショが提供するワークフローにより、シラバスのナリオブジェクトに設定し、これを作成から公開までを一貫して行えるシラバスurl-encoded に変換してデータを受け渡しに作成公開システムの構築を行った。こうして適した形式にする。

作成されたシラバスは、検索システム[11]を次に、ホストにアクセスしログイン URL利用し、学科・学年別時間割による表示をはと url-encoded に変換したデータを要求としじめ様々な検索を行う事ができる。
Zope/Plone は CMS ソフトウェアであるこてサーバに送り応答を受け取る。
この後の Plone サイトへの再接続にも、認とから、教務は Web ブラウザ上からサイトや証が必要になるが、これには応答のユーザの管理、シラバスの審査を行うことがSet-Cookie ヘッダから cookie を取得して、以でき、またユーザである教員は HTML やサイ後の接続の際に Cookie ヘッダとして利用すトの構造を知らなくてもコンテンツの作成・ることにより、認証済みであることを伝える編集を行うことができる。Zope ではアカウンことができる。

ト毎にロールを設定することができ、教員は特別に権限を与えられた場合を除き、各自の6.3.2.

シラバスデータの作成とデータ送信

ファイル内でのみコンテンツ作成・編集の権

シラバスページの作成はそれぞれログイン限が与えられている。このため、他者によるしたユーザのフォルダで行う。まず、ユーザシラバスの上書きなどのような人為的ミスをのフォルダ内で新規シラバスページを作成す防ぐことができる。

る。ブラウザでは、シラバスの編集ページへ今回、Plone サイトの環境下で新しいアイリダイレクトされるが、自動投稿では、そのテムを作成するための ArcheTypes を利用し、アドレスを用いてコンテンツデータを送信す

Python でコンテンツタイプの説明を記述すればよい。

ることで、項目に適した閲覧フォームや編集送信データは multipart/form-data 形式とフォームの作成などを容易にした。これによいわれる HTML ファイルなどバイナリデーり、統一された規格の中でも項目ごとに設定タの送信に適したもので、電子メールに使わを行い、Plain テキスト・構造化テキスト・れる MIME を拡張したものを使用する。作成

HTML を選択できる項目を作成するなど、ユされたデータは cookie と一緒に先ほど作成しーザのスキルに合わせて編集方法に自由度をたシラバスの編集ページアドレスに送信され、与えている。ArcheTypes はオブジェクト指向

自動投稿によるシラバスが完成する。

言 語 で の GUI 設 計 概 念 で あ る MVC

しかし Web シラバスには投稿された過去(Model/View/Control) のうち M と V を簡単

シラバスには無い項目があり、それらの項目に提供するものであり、今後活発に応用されは確認と共に手動で記入し、状態を非公開かていくものと期待される。

ら提出に変更し教務側で公開許可を行う。

88.

謝辞

本研究を進めるにあたりご指導、ご支援頂きました地球環境情報学研究室の皆様および高知学園短期大学の濱田美晴助手に感謝し、心より深く御礼申し上げます。

参考文献[1] zope ホームページ，
http://www.zope.org/，－2006[2] plone ホームページ，
http://plone.org/，－2006[3] 濱田美晴，菊地時夫、高知学園短期大学
における LAN 監視システム構築，高知大学理学部紀要, 26 F, No.5, 2005
[4] PyJUG，
http://python.jp/Zope/，－2006[5] 平賀保博，佐藤雄二，富阪幸治，Perl とCGI を 用 い た シ ラ バ ス の 収 集 シ ス テ ム ，
http://th.nao.ac.jp/~tomisaka/Documents/pe
rl_and_cgi.htm，1999[6] 関東図書株式会社 IT 事業推進室＆メディア工房，http://www.kanto-t.com/，－2006[7] OCET，
http://www.et.soft.iwate-pu.ac.jp/~ocet/index.php，－2006[8] 学校用 CMS による共同研究，
http://www.cms-school.jp/index.cfm/1,html ，－2006[9] 安田幸弘，ZOPE ガイド，
毎日コミュニケーションズ，319pp.，2002[10] Mark Lutz，David Ascher，初めてのPython，オライリー・ジャパン，432pp，2000[11] 須藤藍子，菊地時夫: Plone/ArcheTypesを用いたシラバス公開システム，高知大学理学部紀要 27 F, No.3, 20069