DSpaceウェブユーザインターフェースは、アプリケーション層のコンポーネンツのうち、もっとも大規模で、もっともよく使用されるものです。 JavaサーブレットとJavaServer Pageテクノロジーを使って構築されていますので、エンドユーザはウェブブラウザーを使ってDSpaceにアクセスすることができます。
管理者の使用を想定したページからなる管理用ユーザインターフェースも用意されています。 ただし、現在のところ、管理用ウェブユーザインターフェースはあまり洗練されていません。 それゆえ、管理用ユーザインターフェースのユーザは自分のしていることを知っている必要があります。 将来のバージョンでは、管理用ユーザインターフェースはもっと改善されますので、各コミュニティにより多くの管理責任を託すことができるようになるでしょう。
ウェブユーザインターフェースに関するファイルは、DSpaceソースツリーの様々なディレクトリに置かれています。
配置場所 | 説明 |
---|---|
org.dspace.app.webui |
ウェブユーザインターフェースのソースファイル |
org.dspace.app.webui.filter |
サーブレットフィルタ(Servlet 2.3仕様) |
org.dspace.app.webui.jsptag |
JSPカスタムタグクラスファイル |
org.dspace.app.webui.servlet |
主たるウェブユーザインターフェースのサーブレット(コントローラ) |
org.dspace.app.webui.servlet.admin |
管理用ウェブユーザインターフェースを構成するサーブレット |
org.dspace.app.webui.util |
サーブレットおよびフィルタで使用される様々なクラス |
dspace/jsp |
JSPファイル |
dspace/jsp/WEB-INF |
ウェブアプリケーション配置記述子およびタグライブラリ記述子ファイル |
dspace/jsp/classes |
DSpaceインストール環境では、これは、/dspace/configへのシンボリックリンクである。
これにより、(Tomcatを通して)「ウェブアプリケーション」として稼働している間、DSpaceのメイン設定ファイル(dspace.cfg )をフルパスで指定することなく、Javaリソースとしてアクセスできるようになる。
このシンポリックリンクは、ソースディレクトリには存在せず、Antによるビルドプロセスで作成される。 |
dspace/jsp/lib |
DSpaceインストール環境では、これは、/dspace/libへのシンボリックリンクである。 DSpaceが「ウェブアプリケーション」として稼働している間、しかるべきJARファイルをすべてJVMのクラスパスに配置する。 このシンポリックリンクは、ソースディレクトリには存在せず、Antによるビルドプロセスで作成される。 |
このように、/dspace/jsp
は、Tomcat(あるいは他のサーブレットエンジン)が理解できる標準的な「ウェブアプリケーション」レイアウトになっています。
ウェブユーザインターフェースはおおざっぱにいってMVC(モデル、ビュー、コントローラ)モデルに基づいています。 コンテンツ管理APIがモデルに、Javaサーブレットがコントローラに、JSPがビューに相当します。 相互の関係は次の基本的な形をとります。
このアプローチは次の理由で採用しました。
DSpaceServlet
クラスのサブクラスです。
DSpaceServlet
クラスは、Context
オブジェクトの作成(データベースコネクションのオープンなど)や、権限付与、エラー処理などの基本的な操作を扱います。
通常のサーブレットのようにdoGet
メソッドとdoPost
メソッドをオーバライドするのではなく、DSpaceサーブレットではdoDSGet
メソッドとdoDSPost
メソッドを実装しています。これらのメソッドは、コンテキストオブジェクトを追加パラメタとして持ち、かつ、標準的な方法で扱うことのできる様々な例外をサーブレットが投げられるようにしています。
DSpaceサーブレットは、HTTPリクエストの要求を処理します。
その要求には、クエリ条件を指定した検索結果の取り込みや、カレントユーザのe-パーソンレコードのアクセス、処理中の投稿の更新などがあります。
この処理の結果にもとづいて、サーブレットはどのJSPを表示するべきかを決定しなければなりません。
サーブレットは次に、処理すべきHTTPリクエストを表すHttpRequest
オブジェクトに適当な属性を設定します。
これは、Tomacatからサーブレットに渡されるjavax.servlet.http.HttpServletRequest
オブジェクトのsetAttrribute
メソッドを呼び出すことで実行されます。
サーブレットは次に、JSPManager.showJSP
メソッドを使って、適当なJSPにリクエストの制御を渡します。
システム設定の章で説明したように、JSPManager.showJSP
メソッドは標準のJSPの代わりに使用される「ローカライズされた」JSPが/dspace/jsp/local
ディレクトリにないかチェックします。
(このメカニズムは、将来、複数言語をサポートするための拡張に使用できるでしょう。たとえば、フランス語バージョンを/dspace/jsp/lang/fr
に置くことなどが考えられます。)
ついで、標準的なJavaサーブレット転送メカニズムを使って、HTTPリクエストをJSPに転送します。
JSPはTomcatにより処理され、ユーザのブラウザに結果を返します。
このサーブレット/JSP方式には例外が存在します。
「ホームページ」であるindex.jsp
は、Tomcatから直接HTTPリクエストを受け取り、最初にサーブレットが呼び出されることはありません。
これは、サーブレット2.3の仕様では、「/
」に対するリクエストの処理にサーブレットをマッピングする方法がないからです。
通常は、そのようなマッピングによりすべてのリクエストはサーブレットに渡されます。
デフォルトではTomcatは「/
」へのリクエストをindex.jsp
に転送します。
できるだけ簡潔にするために、index.jsp
は通常はサーブレットにある簡単なプログラムを持っており、JSPManager.showJSP
メソッドを使ってhome.jsp
にリクエストを転送します。
これは、「ホームページ」のローカライズバージョンは、カスタマイズしたhome.jsp
を /dspace/jsp/local
に置くことで作成することができることを意味しています。
同じ理由で、管理用ユーザインターフェースのホームページである/dspace/jsp/admin/index.jsp
もサーブレットを通らず、Tomcatにより直接呼び出されます。
JSPに転送する前にサーブレットが設定しなければならない属性については、各JSPファイルの先頭のライセンスとコピーライトヘッダの直後に説明されています。 システムでは検証しませんので、サーブレットが必要な属性を設定しない場合は、内部サーバエラーが発生することになります。
フォームフィールドを持つJSPの多くは、どのフォームが入力されたのかをサーブレットに知らせるhidden属性のパラメタを持っています。
投稿用ユーザインターフェースサーブレット(SubmitServlet
)は、多くの異なるJSPからの入力を処理するサーブレットの最良の例です。
どのフォームが入力されたのか(どの投稿ステップをユーザは完了したか)をサーブレットに知らせるためにhidden属性のstep
パラメタが使用されています。
以下は、1つのHTTPリクエストに対する処理と応答の全プロセスにおける制御の流れを示した詳細で、見るも恐ろしい図です。 権限付与メカニズムの詳細については、ほとんどシステム設定の章で説明されています。
HTTP リクエスト処理中の制御の流れ
DSpaceのJSPはすべて何らかのカスタムタグを使用しています。このカスタムタグは/dspace/jsp/WEB-INF/dspace-tags.tld
で定義されており、対応するJavaクラスはorg.dspace.app.webui.jsptag
にあります。
使用するタグを以下にリストアップしました。
dspace-tags.tld
ファイルにタグの使用法についての詳細な説明がありますので、ここでは繰り返しません。
layout
ほとんどすべてのJSPは、このタグを使用します。
このタグは標準的なHTMLヘッダと<BODY>
タグを生成します。
従って、JSPの内容は、<dspace:layout>
タグの中に置く必要があります。
このタグの(XMLスタイルの)属性は少し複雑ですので、dspace-tags.tld
を参照してください。
ソースコードツリーに含まれているJSPファイルも多くの例を提供しています。
sidebar
layout
タグの内部でのみ使用可能で、また、各JSPで使用できるのは1度のみです。
sidebar
の開始タグと終了タグの間の内容は、HTMLページの右側のカラムに表示されます。
内容には、JSPタグやJava「スクリプトレット」を含めることができます。
date
org.dspace.content.DCDate
オブジェクトで表される日付を表示します。
現在のところ、1種類の日付しか表示できません。将来は、ユーザのブラウザの設定を使ってローカライズされた日付を表示できるようになるかもしれません。
include
おおざっぱにいって、標準の<jsp:include>
タグに相当し、同じ機能を果たしますが、JSPManager.showJSP
を通るので、ローカライズしたJSPを使用することができます。
ただし、パラメタの受け渡しはサポートしていません。
item
アイテムレコードを表示します。ダブリンコアメタデータとビットストリームへのリンクを含みます。 ビットストリームリンクの表示は非常に簡略化したもので、バンドル構造は考慮されていないことに注意が必要です。 DSpaceはまだ、完全な発信用コンポーネンツを持っていないからです。
アイテムレコードの表示をJSPではなくタグで行っているのには、2つの理由があります。
第1の理由は、それが様々な場所で行われるからです(標準的なアイテムアクセスの際だけでなく、投稿時のアイテムレコードの検証やワークフロー査読の際などにも表示が行われます)。
第2の理由は、アイテムの表示は結局、HTMLというよりほとんどプログラムの仕事になるからです。
もちろん、この方法をとる欠点は、アイテムレコードの表示を正しくカスタマイズすることが少し難しくなることです。
タグ用のプログラム(org.dspace.app.webui.jsptag.ItemTag
)を修正する必要があるからです。
将来もっとよいソルーションが見つかると良いのですが。
itemlist
, collectionlist
, communitylist
これらのタグは、ソート済のアイテム、コレクション、コミュニティのリストを表示します。 表示される情報は非常に限られますが、すべての情報を表示するページへのリンクが含まれています。 これらのタグはHTMLの表中で使用する必要があります。
popup
このタグは、ポップアップページ(たとえばヘルプページなど)へのリンクを処理するために使用します。
Javascriptが利用できる場合は、リンクは既存のDSpaceポップアップウィンドウをオープンするか、前面にポップアップします。
Javascriptが利用できない場合は、標準的なHTMLリンクが表示され、このリンクをクリックすると、「dspace.pop
」という名前のウィンドウにリンク先を表示します。
グラフィカルブラウザーでは、これは一般に新しいウィンドウを開くか、その名前を持つ既存のウィンドウを再利用することになります。しかし、ウィンドウが再利用される場合、そのウィンドウが最前面に表示されることはありませんので、ユーザに混乱を与えるかもしれません。
テキストブラウザでは、このリンクをたどることは、単にリンク先の内容で現在のページを置き換えるだけです。
つまりこれは、Javascriptが利用できると最良の機能が提供されますが、その他のブラウザもサポートされていることを意味しています。
sfxlink
SFXサーバが利用できると、DSpaceはアイテムのダブリンコアメタデータを使ってSFXリンクを表示することができます。
dspace.cfg
においてsfx.server.url
を定義すると、このタグを特定のアイテムで機能させることができます。
投稿用ユーザインターフェースにはMIT図書館の方針の結果として作成されたオプションの機能を持っています。
dspace.cfg
のblock.theses
パラメタを true
にすると、投稿用ユーザインターフェースの最初の画面にチェックボックスが追加されます。
これは、ユーザに投稿するものが学位論文であるかどうかを尋ねるものです。
ユーザがこのチェックボックスをチェックすると、投稿は中断(削除)され、学位論文を投稿するためにDSpaceを使用してはならない旨を表すエラーメッセージが表示されます。
この機能の使用の可否は設定することができます。また、必要に応じて、表示するメッセージ(/dspace/jsp/submit/no-theses.jsp
)をローカライズすることも可能です。
DSpaceは、オープンアーカイブズイニシアティブ・メタデータハーベスティングプロトコル(OAI-PMH)バージョン2.0のデータプロバイダ機能をサポートしています。 この機能は、OCLCのOAICatフレームワークを使って実現しています。
Javaサーブレットによる「ウェブアプリケーション」を配備して、HTTPを介してOAI-PMHリクエストを受け取り、応答します。
デフォルトの設定では、このウェブアプリケーションは、/oai
に配備されます。
標準のサーブレットはOAICatサーブレットでオーバーライトされます。したがって、/oai
配下のURLはすべてOAIリクエストとして解釈されます。たとえば、次のようなリクエストです。
http://dspace.myu.edu/oai/?verb=Identify
このDSpaceの「ベースURL」は、次のとおりです。
http://dspace.myu.edu/oai/
www.openarchives.orgに登録するのは、このURLです。
DSpaceは、OAICatの3つのインターフェース、AbstractCatalog
、RecordFactory
、Crosswalk
を実装しており、これが、DSpaceのコンテンツ管理APIと(検索サブシステムの)ハーベスティングAPIとのインターフェースになります。
現在のところ、基本的なoai_dc
、すなわち、限定子なしのダブリンコアメタデータセットのみがエクスポートされます。
すべてのアイテムは限定子付きのダブリンコメタデータを持っていますので、これは非常に簡単です。
このメタデータがハーベストされる際、限定子を単に剥ぎ取ります。
例えば、description.abstract
は、限定子なしのdescription
として公開されます。
description.provenace
は、公開されません。なぜなら、このメタデータには、アイテムの投稿者やワークフロー査読者のメールアドレスなどの私的な情報が含まれているからです。
他のメタデータセットをサポートするには、そのためのCrosswalk
を実装して、後で説明するoaicat.properties
ファイルに追加するだけです。
現行の限定子なしのダブリンコアの実装(org.dspace.app.oai.OAIDCCrosswalk
)では、データ中に存在するかもしれない不正なXML文字を取り除いていないことに注意してください。
データベースに(フォームフィードなどの)ASCII制御文字を含むダブリンコア値がある場合、OAIハーベスタに問題を引き起こすかもしれません。
しかし、これが生じるのはまれなケースでしょう。
OAICatインターフェースの実装に加えて、OAIサポートに関連する2つの設定ファイルが提供されています。
oaicat.properties
これはテンプレートとして/dspace/config/templates
にあり、使用するファイルは/dspace/config
に出力されます。
install-configs
スクリプトが関連するサイト独自のパラメタを設定しますので、これを変更する必要はおそらくないと思われます。
ただし、システムのもっとも古い日付スタンプを正しく反映するために、earliestDatestamp
フィールドを修正する必要があるかもしれません。
(これは、Item
テーブルのlast_modified
カラムの値であることに注意してください。)
oai-web.xml
これは標準的なJavaサーブレットの「配備記述子」であり、テンプレートとして/dspace/config/templates
にあります。使用するファイルは、install-configs
スクリプトにより、/dspace/oai/WEB-INF/web.xml
に出力されます。
テンプレートにした理由は、oaicat.properties
ファイルの配置場所をこの中で指定しなければならないからです。
修正する必要はないはずです。
OAI-PMH は、リポジトリがレコードを階層構造のセットとして公開できるように規定しています。レコドードは0個以上のセットに含まれることができます。
DSpaceのコミュニティとコレクションによる組織化は、これに自然と適合すると思われます。 OAI-PMHでは、階層の特定の場所を「setspec」により指定します。 setspecは、階層段階の各セットの識別子をコロンで繋げたリストです。 たとえば、次のようなものです。
set1:set2:set3
ここで、set3 が指定された配置場所であり、これはset2の中にあり、さらに、set2はset1の中にあります。 各セットの表示名は、OAI-PMHの「ListSets」リクエストへのレスポンスで指定することができます。
現在のところ、DSpaceではコミュニティとコレクションの内部IDを表示名に使用しています。したがって、コミュニティ103のコレクション145のsetspecは、次のようになります。
103:145
セットについてもう1つ問題があります。OAI-PMHでは、セットは階層構造でなければなりません。 DSpaceは階層構造を実現していません。それで、コレクションXは、コミュニティBにも、コミュニティCにも存在することができます。 これをOAI-PMHで公開できるか、できるとしたらどのようにするかは、未解決の問題です。 しかし、これは今のところ問題にはならないと思われます。 なぜなら、そのような複数のコミュニティへの配置を確実に実現するには、この問題だけではなく、システムの多くの部分を同時に修正する必要があるからです。
OAI-PMHデータリポジトリのアイテムはすべて、URIシンタックスに合致した固有識別子を持たなければなりません。 この条件に完全に合致するので、ハンドルを固有識別子として使用しています。 別の方法として、ハンドルをOAI-PMH識別子スキーマにマップすることが考えられます。 しかし、ハンドルはすでにURI形式の世界規模でユニークなスキームを使用しており、また、両者に明らかな機能上の差もないので、この方法を取ることは時間の無駄だと思われます。
OAIはユーザ認証/権限付与の詳細については規定していませんが、これらは標準的なHTTPメソッドを使って実装することができるでしょう。 とりあえず今のところは、すべてのアクセスは匿名であると仮定しています。
「すべてのメタデータは公開されるか」という疑問が存在します。 現在のところ、答えはイエスです。 たとえアイテムがアクセス制限ポリシーを持っていたとしても、メタデータはすべてOAI-PMHを通して公開されます。 その理由は、制限されたアイテムを読むための権限を実際に持っている人は、コンテンツを発見するためのOAIベースのサービスを使うこともできるべきであるというものです。
将来において、何らかの理由でこの「すべてのメタデータを公開する」というアプローチに問題があることが証明された場合、一部のメタデータだけを一般に公開することが可能だと思われます。 権限付与システムでは、アイテムを読むことができる権限と、それに含まれるコンテンツ(ビットストリーム)を読むことのできる権限を分けています。 これは、システムが、メタデータは公開するがコンテンツは公開しないアイテムと、メタデータもコンテンツも公開しないアイテムを区別することができることを意味しています。 この場合、OAIデータリポジトリは、匿名によるREADアクセス権限を持つアイテムのみを公開すべきです。そうすれば、レコードの存在を外部の世界から完全に隠すことが可能になります。 このシナリオでは、当初はアクセスを制限するが、しばらく後に公開するアイテムに注意する必要があるでしょう。 これが公開された場合、OAI-PMHの観点からはアイテムが「新規」に作成されたことになります。
OAI-PMHハーベスタは、レコードがいつ作成・変更・削除されたかを知る必要があります。 DSpaceはシステムにある各アイテムの「最新更新」日を記録しており、この日付をOAI-PMHの日付スタンプに使用しています。 これは、メタデータに行った任意の変更(管理者によるフィールドの修正やアイテムの取り下げなど)がハーベスタに公開されることを意味しています。
ハーベスタに提供されるレコードの一部として、オプションで繰り返し可能な「about」セクションがあります。このセクションは、(XMLスキーマに合致する)任意の方法で使用することができますが、一般的には、出自情報や権利情報に使用します。また、OAIコミュニティで使用されているそのためのスキーマも存在します。 現在のところ、DSpaceはこの情報を提供しません。
DSpace は、削除(取り下げ)を記録しています。 これはOAIにより公開されていますが、OAIはこれを処理するために特別なメカニズムを持っています。 DSpaceは取り下げたアイテムについても永続的にレコードを保持していますので、OAI-PMHの概念でいえば、DSpaceは、「永続的な」削除をサポートしていることになります。 これは、しばらくすると削除されたレコードを忘れてしまうことを意味する「一時的な」削除のサポートとは対照的です。
アイテムが取り下げられると、これが行われた日付を含む日付範囲を指定したOAI-PMHハーベストリクエストは、「削除済」レコードヘッダを見つけることになります。 取り下げが行われた日より前の日付範囲を指定したハーベストリクエストは、レコードはその時点では存在したにもかかわらず、このレコードを見つけることはありません。
この例として、2002年5月2日に作成され、2002年10月6日に取り下げられたアイテムを考えます。 2002年10月を指定したハーベストリクエストは、「削除済レコード」ヘッダをハーベストします。しかし、2002年5月を指定したハーベストリクエストは、取り下げられる前のレコードをハーベストしません。
現在のところ、「抹消された」アイテムはOAIでは公開されないことに注意してください。
OAIデータプロバイダは、ハーベスティングによるパフォーマンスの低下を防ぐために、データを時分割のかたまりで受け取るようハーベスタに強制することができます。 データプロバイダが大量データの取得リクエストを受け付けた場合、resumptin tokenをつけて、一部のデータだけを送付することができます。 すると、ハーベスタは後でresumption tokenを付けて返すことでハーベストを継続することができます。
DSpaceは、OAI-PMHの「ListRecords」リクエストについてのみ、resumption tokenをサポートしています。ListIdentifiersリクエストとListSetsリクエストについては、システムへの負荷がそれほど大きくないので、resumption tokenは使用しません。
OAI-PMH ListRecordsリクエストには、1回当たり最大100レコードが返されます。この件数は、org.dspace.app.oai.DSpaceOAICatalog.java
の先頭で設定(MAX_RECORDS
)しています。
ちょうどMAX_RECORDS
の倍数のレコードをハーベストする場合、最後の操作で0個のレコードをハーベストすることになるという潜在的な問題があります。
これが仕様にあっているのかどうかはOAI-PMHの仕様からは不明です。
resumption tokenを発行する際、オプションのcompleteListSize
属性と cursor
属性は設定しません。
OAICatは、resumption tokenのexpirationDate
を発行後1時間に設定しますが、DSpaceのresumption tokenにはリクエストの継続に必要なすべての情報が含まれているので、実際はresumption tokenは失効しません。
DSpaceのresumption tokensには、リクエストの継続に必要なすべての状態情報を含んでいます。その形式は次のとおりです。
from/until/setSpec/offset
from
とuntil
は、ISO8601形式の日付で、オリジナルのリクエストから取られたものです。setSpec
もオリジナルのリクエストから取られたものです。offset
は、すでにハーベスタに送付済みのレコード数です。
2003-01-01//56:78/300
上の例では、ハーベストの「from」日付は2003-01-01
、「until」日付はなし、コニュティ56のコレクション78を対象とし、すでに300レコードがハーベスタに送付済みであることを意味しています。
(実際は、オリジナルのOAI-PMHリクエストが「from」あるいは「until」を指定していない場合、OAICatは、自動的に各々「0000-00-00T00:00:00Z」と「9999-12-31T23:59:59Z」を設定しますので、DSpaceのresumption tokenは常にfrom日付とuntil日付を持っています。)
DSpaceは、DSpaceシンプルアーカイブフォーマットを使って、アイテムを一括してインポート、あるいは、エクスポートするツールを持っています。 ツールはまったく頑健ではなく、また、1つの巨大なトランザクションとして処理されることが多いので、一括処理は全体として成功するか失敗するかのいずれかです。 しかし、ツールはそのままでも便利なものですし、容易に改造することもできます。 また、独自のアイテムインポータが必要な場合、このツールはその実装法についての良いお手本になるでしょう。
DSpaceシンプルアーカイブフォーマットの基本的なコンセプトは、アイテムごとにサブディレクトリを持つアイテムからなるディレクトリとしてアーカイブを作成することです。 各アイテムディレクトリは、アイテムを記述するメタデータファイルとアイテムを構成するファイルからなります。
archive_directory/ item_000/ dublin_core.xml -- 限定子付きダブリンコアメタデータ contents -- 1行に1ファイル名を記したテキストファイル file_1.doc -- アイテムにビットストリームとして追加されたファイル file_2.pdf item_001/ dublin_core.xml contents file_1.png ...
dublin_core.xml
ファイルのフォーマットは次のとおりです。
各ダブリンコア要素は、<dcvalue>
タグセットに自身のエンリトを持ちます。
現在のところ、<dcvalue>
には以下の3つのタグ要素を使用することができます。
<element>
- ダブリンコア要素
<qualifier>
- 要素の限定子
<language>
- 要素のISO言語コード(オプション)
<dublin_core> <dcvalue element="title" qualifier="none">A Tale of Two Cities</dcvalue> <dcvalue element="date" qualifier="issued">1990</dcvalue></dublin_core> <dcvalue element="title" qualifier="alternate" language="fr" ">J'aime les Printemps</dcvalue> </dublin_core>
(オプションの言語タグは、別タイトルがフランス語で書かれていることをシステムに知らせていることに注意してください。)
アイテムインポータは、org.dspace.app.itemimport.ItemImport
にあり、dspace/bin
ディレクトリにあるdsrun
ユーティリティを使って実行されます。
このユーティリティを -h を付けて実行すると、使用できるコマンドライン引数を表示します。
引数として、利用者のデータベースIDまたはメールアドレス、e-パーソンIDのいずれか、また、コレクションのデータベースIDまたはハンドルのいずれかを使用することができます。
現在のところ、インポータを使って、コレクションに対してアイテムを追加・削除・置換することができます。あるe-パーソンを投稿者として、あるコレクションにアイテムを追加するには、次のように入力します。
dsrun org.dspace.app.itemimport.ItemImport --add --eperson=joe@user.com --collection=collectionID --source=items_dir --mapfile=mapfile
(代わりに、次の短縮形を使用することもできます。)
dsrun org.dspace.app.itemimport.ItemImport -a -e joe@user.com -c collectionID -s items_dir -m mapfile
このコマンドは、アーカイブディレクトリのアイテムを順番にたどって、アイテムをインポートします。 それから、アイテムディレクトリとアイテムハンドルのマッピングを格納するマップファイルを生成します。 このマップファイルは保存してください。 このマップファイルを使って、アイテムのインポートを次のコマンドで「取り消す」ことができます。
dsrun org.dspace.app.itemimport.ItemImport --remove --mapfile=mapfile
マップファイルにリストアップされたインポートアイテムが削除されます。 以前にインポートしたアイテムを置き換えたい場合は、次のコマンドを入力します。
dsrun org.dspace.app.itemimport.ItemImport --replace --eperson=joe@user.com --collection=collectID --source=items_dir --mapfile=mapfile
アイテムの置換は、古いアイテムの置換にマップファイルを使用し、そのハンドルはそのまま残します。 この場合、コレクションIDはコレクションのデータベースIDである必要があります。ハンドルではないことに注意してください。
インポータは通常コレクションに割り当てられたワークフローを迂回します。 しかし、--workflow オプションを指定すると、インポートアイテムはワークフローシステムを経由することになります。
アイテムエクスポータは1アイテム、または、アイテムの集合をエクスポートし、エクスポートされる各アイテムについてのDSpaceシンプルアーカイブを作成することができます。
dsrun org.dspace.app.itemexport.ItemExport --type=COLLECTION --id=collID --dest=dest_dir --number=seq_num
キーワードCOLLECTION
は、コレクション全体をエクスポートすることを意味します。
IDとしては、データベースIDかハンドルのいずれかを使用できます。
エクスポータは、--numberで指定した番号からシンプルアーカイブに付番します。
1つのアイテムをエクスポートする場合は、キーワードITEM
を使い、引数としてアイテムIDを指定します。
dsrun org.dspace.app.itemexport.ItemExport --type=ITEM --id=itemID --dest=dest_dir --number=seq_num
エクスポートされたアイテムのディレクトリにはすべて、「handle」という名前のファイルが追加されます。 このファイルには、アイテムに割り当てられたハンドルが書かれています。 このファイルをインポータに入力することにより、エクスポートされたアイテムをオリジナルのハンドルを保持したまま、別のマシンにインポートすることができます。