Dspace系统文档(选译)
糊涂小三
一、 简介
Dspace是一个开软软见平台,它具有如下功能:
● 通过使用工作流提交模块或者一系列的规范获取接口获取和表述数字资源。
● 使用搜索系统和检索,通过网络的方式发布机构所拥有的数字资产。
● 长期保存数字资产。
Dspace系统文档对系统功能作了一个整体的描述。它对Dspace系统进行了一个良好的性能描述,为非技术人员学习使用Dspace系统是一个良好的导向。在阅读整个系统文档之前,读者应该首先阅读这一部分内容,因为该部分内容包括许多后续文档中用到的术语。
对于需要运行Dspace系统的用户来说,文档提供了安装指南,以及如何配置系统以及介绍系统目录结构的相关内容。注意:自从Dspace1.2版本之后,系统就提供了有关用户接口管理的在线帮助手册。
最后,为了那些Dspace系统爱好者能更好的了解Dspace系统如何工作,为了使使用者能根据具体应用对Dspace系统进行修改使用,文档中提供了Dspace详细系统架构和设计部分的内容。
Dspace系统文档还提供了如下一些有用的信息。
Dspace Public API Javadocs
Dspace Wiki:A list of DSpace resources
FAQ: Technical FAQ
Projects: A list of projects using DSpace
Guidelines: Guidelines for contributing back to DSpace
二、 Dspace功能介绍
1.Data Model(数据模型)
Dspace系统中数据组织方式能很好地反映一个组织的结构。每个Dspace站点被分成若干个Communities,每个community对应一个实验室、研究中心、或者部门。
Communities由Collections组成,这些Collections将相关的内容(数字资产)分组。一个Collection可能同时出现在几个不同的Communities中。
一个Collection由多个item组成。
2. Metadata(元数据)
一般来说,Dspace系统支持三种类型的元数据
(1) Descriptive Metadata(描述元数据)
每一个条目(item)包含一个规范的DC元数据记录。MIT实验室使用的元素和限定词集合是一个Dspace源代码默认的配置。
另外的关于条目(item)的描述元数据存在于一系列的Bitstream中。Communities和Collections也包含一些简单的描述元数据,这些元数据存储于DBMS中。
(2) Aministrative Metadata(管理元数据)
管理元数据包括保存元数据(preservation Metadata)、起源数据(provenance)以及授权政策数据(authorization policy)。大部分数据于Dspace的关系数据库管理系统模式中。起源元数据(provenance Metadata)存储于DC元数据记录中。此外,其他的管理元数据被复制到DC元数据记录中以便Dspace系统访问者能够轻松实现数据访问。
(3) Structural Metadata(结构元数据
结构元数据包含如下信息:条目(item)描述信息、条目内部的字节流(bitstream)描述信息、条目各组成部分之间的关系信息(对最终用户而言)。例如:假定一篇论文由若干TIFF格式的图片构成,每一张图片表示论文的一页;那么,结构元数据将包含如下信息:每一个图片由一个单独的页面构成;每个页面或者图片在论文中的位置。
3.Eperson(电子用户)
Dspace系统中,每个e-person由如下信息构成:E-mail地址、姓名、是否允许用户通过WebUI登陆系统、用户密码、是否是用户自己注册、network ID等。
4.Authorization(授权)
Dspace授权系统与EpersonGroup和ResourcePolicy紧密联系。
Dspace系统包含两个特殊的组(Groups):“administrator”(能对系统进行任何操作)和“anonymous”(包含所有用户的表列)。
Assigning a policy for an action on an object to anonymous means giving everyone permission to do that action.
对一个对象的一个操作(action)指派一个“anonymous”意味着允许系统的所有用户执行指定操作。
目前,Dspace系统的Collections、Communities以及Items都是可以公开浏览的。仅仅在阅读全文内容时受到阅读权限控制。
Community:
ADD/REMOVE 添加/删除Community中的collections/sub-communitis
Collection:
DEFAULT_ITEM_READ inherited as READ by all submitted items
DEFAULT_BITSTREAM_READ inherited as READ by bitstreams of all submitted items
COLLECTION_ADMIN 编辑条目(edit items)、删除条目(withdraw items)、map other items into this collection
Item:
READ 浏览条目内容(view item)
BUNDLE:
ADD/REMOVE 从Bundle(包)中删除字节流(bitstream)
BITSTREAM:
READ 浏览Bitstream
WRITE 修改Bitstream
5.Ingest Process and Workflow
DSpace Ingest Process
InprogressInformation:该类封装了将要导入dspace数据库系统的Item的所有内容。可以通过三种方式将item导入到Dspace系统中;
WebUI接口提交Item
Batch Item Importer 批量导入
直接对Dspace DBMS Table 进行数据写入。该方法安全性不好,如果对Dspace系统架构不熟悉的话,不建议使用。
The Item Installer:
指派一个访问日期(Accession Date)
把字段“date.available”的值添加到Item的DC元数据记录中(Dublin Core Medatadata Record of Item)
添加发行日期(如果元数据记录中没有)(issue date)
添加provenance message(含bitstream checksums)
添加items到指定的collections,同时添加合适的授权信息(authorization policies)
创建新增items的浏览和检索索引
6.Workflow Steps(工作流步骤)
一个Collection的工作流workflow 可以分为三个步骤。每一个Collection都存在一个相关的e-person group 来执行相应的步骤。如果没有e-person group与相应的步骤(step)对应,那么该步骤将被跳过(skipped)。如果一个Collection的任何步骤都没有与一个e-person group相关联,那么Collection的提交信息将被直接载入档案。
换句话说(In other words),workflow的工作顺序如下:The collection receives a submission. If the collection has a group assigned for workflow step 1,that step is invoked,and the group is notified. Otherwise,workflow step 1 is skipped. Likewise,workflow steps 2 and 3 are performed if and only if the collection has a group assigned to those steps.
Submission Workflow in Dspace
7.HANDLES
为存储在Dspace系统中的每一个Community、Collection、Item创建一个永久标识符(persistent identifier)。Dspace使用CNRI Handle System 创建标识符(identifiers)。
Dspace主要使用Handles来为每一个数字对象指定一个全球唯一的标识符。每一个运行Dspace系统的站点需要从CNRI获取一个Handle Prefix。一旦用户创建CNRI指定的Handle Prefix来创建标识符,所创建的标识符就不会和全球其他的标识符产生冲突。
Handles可以用两种方法来书写:
hdl:1712.123/4567
http://hdl.handle.net/1712.123/4567
8. BITSTEAM ‘Persistent’ Identifiers
Each bitstream has a sequence ID,unique within an item. This sequence ID is used to create a persistent ID,of the form:
dspace url/bitstream/handle/sequence ID/filename
9.
Dspace系统提供两种方法来存储Bitstreams。一种是将Bitstreams存储于服务器端的文件系统中;另一种是使用SRB。两种方法都通过简单而有效的API来实现。
SRB是用来代替服务器端文件系统或者同服务器文件系统一同使用的不二选择。无需过多的描述,SRB是一个稳定的(Robust)并久经考研的存储管理器(Storage Manager),它从根本上提供了从本地或者远程存储系统复制内容的无存储限制的直截了当的方法。
10.Search and Browse
Handle:CNRI服务器访问
检索一个或多个关键词:元数据或者全文
索引浏览:使用Lucene开源软件包对title、date、author进行索引
检索(Search)是Dspace系统中重要的资源发现组件。用户对搜索引擎的要求很挑剔,Dspace搜索组件的目标是为用户提供尽可能多的搜索特性。Dspace系统的索引和搜索模块由一个简单的API构成,该API可以索引新内容、重新生成索引、在全部资源、Community以及Collections上进行搜索。该API的核心组件是一个开源的Java 全文搜索引擎包Lucene。
资源浏览机制是Dspace系统中又一重要的资源发现组件。浏览子系统也提供了一个有效的API,该API可以指定索引以及索引的部分内容。Dspace系统中,可以通过title、item issue date(条目发布时间)以及authors(作者)的索引来浏览相应的内容。此外,浏览的内容还可以限定在特定的Community或者Collection中。
11.HTML Support
在极大程度上(For the most part),在不经任何修改的情况下(as-is),目前Dspace系统仅支持简单的Bitstream上传和下载。这对大多数常规的文件格式(如:PDFs、Microsoft word documents、spread sheets等)来说,是一个很不错的选择。但是,HTML 文档却要复杂得多,涉及到数字保存这里还又许多重要的问题需要解决。
网页由多个文件组成:一个或者几个相互关联的HTML文件,级连样式表以及图形文件。
网页通常链接到其他页面,或者包含其他页面的内容。因此,在短期内,但用户浏览某个网页时,他同时也需要浏览与该网页相关联的其他网页。
通常,网页都是由网络服务器动态生成的,并且反映相应数据库内容的变化。
解决以上问题是大多数文档研究的议题。目前,Dspace系统处理了这些问题的极小的一部分。Dspace系统能够存储并且在线浏览自保容的非动态的HTML文档。
12.OAI Support
OAI 开发了一个元数据获取协议OAI-PMH,该协议允许程序(Program)从一系列数字资源库获取元数据。这样,用户就可以通过程序从一个地方获取大量的数据资源。
Dspace向外提供条目的DC元数据,同时也通过OAI的’set’机制将Collection公开。Dspace系统使用OCLC的开放源代码软件OAICat来实现这一功能。
13.openURL Support
Dspace系统以一种极其(extremely)简单的方式支持SFX的openURL 协议。如果拥有一个SFX Server,Dspace系统,通过自动使用DC元数据,将在每一个Item页面上显示一个OpenURL链接。此外,Dspace系统还能相应一个引入的(incoming)OpenURL。目前,Dspace系统已能通过openURL Support 将openURL内部的信息传递到搜索子系统。
14.
15.Subscriptions
16.History
17.Import and Export
Dspace提供相应的批量处理工具导入和导出items,导出或者用于导入的items都按一定的目录和文件结构存储于文件系统中。
导入导出工具主要有如下几个:ItemImport、ItemExprot、METSExport等。
18.Registration(条目注册)
Registration 是一个合并条目(items),条目对应的元数据(Metadata)以及Bitstreams的(alternate means)处理方法。
例如:假定一个仓储系统(Repository)中存储大量的数字资产。与其使用通常的交互式数据获取过程或者批导入命令来处理这些元数据并上传相应的Bitstreams,不如使用regitration方法来注册Dspace的元数据和Bitstream的位置。
Dspace系统使用可以配置参数的导入工具来完成条目注册。
Dspace系统中使用的有关内容的各种统计报告是由系统自动生成的。这些报告是通过分析dspace的log文件而生成的。统计信息每月清理一次。
A customisable general summary of activities in the archive,by default including:
Number of item views
Number of collection visits
Number of community visits
Number of OAI Requests
Customisable summary of archive contents
Broken-down list of item viewings
A full break-down of all system activity
User logins
Most popular searches
20.Checksum Checker
验证Dspace数字仓储系统中的内容是否被损坏或者篡改。
三、 Windows下安装Dspace系统
1. 综述:
dspace1.2.2 beta 2版本与postgresql 8.0兼容,使得在windows下安装dspace变得比以往更加容易。随着大量的windows批处理文件的出现,Cygwin已经不再必要。
2. 安装准备:
(1) jsdk1.4.2及其以上版本
(2) Postgresql8.x windows版
(3) Aparch Ant 1.6.x
(4) Jakarta Tomcat 5.x
(5) Dspace 软件包(目前最新版本是dspace1.4)
3. 安装步骤:
(1) 获取以下两个批处理文件dsrun.bat和buildpath.bat,
并置于[dspace-source]/bin下。
(2) 将Postgresql/8.x/jdbc/.目录下的文件postgresql-8.x-yyy.jdbc2.jar
复制到[dspace-source]/lib目录下。
(3) 确保postgresql正在运行,同时运行postGresql的pgAdminIII,
创建一个"login Role"(用户)“dspace”用于供dspace访问;
创建一个UTF-8编码的数据库“dspace”供dspace所有,
要求所建数据库dspace为UTF8编码格式.
在[dspace-source]/config/dspace.cfg下更新相应的配置。
主要更新内容如下:
dspace.dir =[dspace-source]
dspace.url =http://localhost:8080/dspace
dspace.hostname =localhost
dspace.name =dspace
config.template.log4j.properties = ${dspace.dir}/config/log4j.properties
config.template.log4j-handle-plugin.properties = ${dspace.dir}/config/log4j-handle-plugin.properties
config.template.oaicat.properties = ${dspace.dir}/config/oaicat.properties
db.name =postgres
db.url =jdbc:postgresql://localhost:5432/dspace
db.Driver = org.postgresql.Driver
db.username = dspace
db.password = dspace
其它配置可不用更改。
注意:在配置dspace.cfg时,目录一律使用‘/’,而不是“/”。否则编译出错。
例如:E:/dspace为正确的目录写法。
(4) 运行ant工具,编译dspace工程。具体过程如下:
将[dspace-source]/bin 目录以及[ant]/bin目录加入系统环境变量path中,
然后在命令行模式下运行命令(在[dspace-source]目录下运行):
ant fresh_install
运行后该命令后,在[dspace-source]目录下生成一个名为build的文件夹
(5) 在[dspace-source]/bin目录下,命令行模式下运行命令:
dsrun org.dspace.administer.CreateAdministrator
(6) 将(4)生成的[dspace-source]/build 目录下的.war文件(dspace.war和dspace-oai.war)复制到
你所安装的tomcat的目录[tomcat]/webapps下面.
(7) 启动tomcat服务.
(8) 在internet浏览器中输入 http://localhost:8080/dspace,你将看到dspace主页
4. 在dspace的安装过程中,要注意先把jdk,ant,以及postgres调试通过,然后再按上述步骤进行安装。
四、 Linux下安装Dspace系统(略)
有兴趣的朋友可以自己研究。
五、Dspace系统架构Architecture
综述:Dspace系统系统架构分三层,每一层由若干组件构成。存储层(Storage Layer)的主要负责元数据和内容的物理存储。业务逻辑层(Bussiness Logic Layer)的功能主要是管理文档内容、e-people、授权(authorization)以及工作流(workflow)。应用层(Application Layer)包含Dspace系统和外部世界交互的各种组件。
每一层组件都直接或者间接地调用较低层次的组件。
系统架构的每个层次都对应Dspace源代码中相应的软件包:
存储层:org.dspace.storage
业务逻辑层:org.dspace
应用层:org.dspace.app
DSpace System Architecture
1. Storage Layer(存储层)
(1) RDBMS(关系数据库管理系统)
Postresql or Oracle
Org.dspace.rdbms
在Dspace.cfg配置文件内部配置RDBMS。
(2) Bitstream Store(字节流存储)
Dspace提供两种方法存储内容。其一,服务器端文件系统;其二,使用SRB。
类BitstreamStoragemanager提供了底层(数据库层)访问存储于系统重的Bitstreams。
数据表(table)中的字段internal_id由38个0-9之间的数字构成。Internal-id与Bitstream_id不同,internal_id对BitstreamStorageManager外部并非是公开的。Internal_id用于决定Bitstream文件在文件系统中的存储位置。38位数据中,前三对数字表示相应Bitstream文件的存储位置,后面34位用于为Bitstream文件命名。例如:如果某Bitstream的Internal_id的值是12345678901234567890123456789012345678,那么,该Bitstream文件的存储位置为:
(assetstore dir)/12/34/56/12345678901234567890123456789012345678。
2. Business Logic Layer(业务逻辑层)
(1) Org.dspace.core
ConfigurationManager(配置管理器) 负责读取Dspace系统配置文件dspace.cfg,为其他应用程序(如:apache)管理’template’配置文件,同时也负责为e-mail获取文本信息。
Constants类包含数据库系统中用来表示对象类型(types of Community,Collection,Item,Bitstream and so on)以及相应动作(action)的常量(constants)定义。如:resource_type_id,resource_type_id同时应用于数据表handle和resourcepolicy两个表中。
Context 类是Dspace操作的中心类。任何使用业务逻辑层的API都必须先创建一个Context对象。这类似于打开数据库的一个连接(Connection)。
当一个Context对象被创建,如下的信息将被自动初始化:
A Connection to the database;
A cache of content management API objects.Each time a content object(Such as Item,Bitstream) is created,it is stored in the Context Object.
同时,下面的一些信息也将存储于Context对象中:
The current authenticated user,if any;
Any ‘special groups’ the user is a member of;
Any extra information from the application layer that should be added to log message;
A flag indicating whether authorization should be circumvented.
Email(org.dspace.core.Email) 用于向客户自动发送电子邮件。
LogManager(org.dspace.core.LogManager)日志管理器。
The level of logging can be configured on a per-package or per-class basis by editing /dspace/config/templates/log4j.properties and then executing /dspace/bin/install-configs. You will need to stop and restart Tomcat for the changes to take effect.
Dspace系统生成的log文件是一个非常规范的日志文件,Dspace系统提供了专门的日志分析工具log-reporter。运行{dspace.dir}/bin/log-reporter –help可以轻松实现日志分析。
(2) Content management API(内容管理API)
Org.dspace.content:读取和操纵存储于Dspace系统的内容。DspaceObject类是package内与Community,Bundle,Bitstream相关的类的父类。Item对象操作DC元数据记录。
每一个类通常都包含一个或者多个静态的find()方法,用于实例化内容相关的对象。
构造方法仅仅用于内部使用,并没有向外提供公共访问。
Collection,Bitstream没有提供create()方法。如果需要创建相应的对象,可以通过包含它的容器使用使用相应的create方法来实现。
Items首先以实现InProgressSubmission的形式创建。通过构造一个InProgressSubmission对象,可以表示一个条目(item)。一旦构造InProgressSubmission对象完成,通过InstallItem类便可以把封装于InProgessSubmission的元数据安装到相关的Collection。
Org.dspace.content提供了一个WorkspaceItem类,WorkspaceItem类实现了InProgressSubmission,它表示一个通过WebUI的元数据提交。
Org.dspace.workflow也包含一个对InProgessSubmission类的实现WorkflowItem,WorkflowItem类表示一个在工作流过程中的元数据提交。
Community和BitstreamFormat类也提供了静态Create()方法,但是,该方法必须得到网站管理员的授权方能被调用。
(3) Dublin Core Metadata :
DCValue类是一个描述DC element,qualifier,value 以及language的简单容器(container)。在Dspace1.4中,MetadataValue类及其相关的类是首选。
:
org.dspace.content.WorkspaceItem
contains an Item before it enters a workflow
org.dspace.workflow.WorkflowItem
contains an Item while in a workflow
org.dspace.workflow.WorkflowManager
responds to events,manages the WorkflowItem states
org.dspace.content.Collection
contains List of defined workflow steps
org.dspace.eperson.Group
people who can perform workflow tasks are defined in EPerson Groups
org.dspace.core.Email
used to email messages to Group members and submitters
:
org.dspace.administer.CreateAdministrator
org.dspace.administer.RegistryLoader
:Eperson,Group(A list of Epersons)
:
org.dspace.authorize.AuthorizeManager
does all authorization,checking policies against Groups
org.dspace.authorize.ResourcePolicy
defines all allowable actions for an object
org.dspace.eperson.Group
all policies are defined in terms of EPerson Groups
授权系统(authorization system)基于典型的“状态监控”(police state)安全模式。只有描述相应的授权信息才能对系统进行操作。
这些授权信息(policy)与资源(resource)及其用户访问权限(eperson authorization)息息相关。资源可以是Dspace系统内部的所有对象,这些对象在org.dspace.content.Constants中有详细表列(Community,Collection等);用户(eperson)是只有访问权限的用户组(Eperson Groups)。用户可以对系统进行的操作表列也在org.dspace.content.Constants中详细列出(read,write,add等)。
目前,Dspace系统中任意用户都可以访问Community,Collection。系统只对items及其对应的Bitstreams实行权限控制。对items和对应Bitstreams的权限控制允许用户访问items,但是部分内容可能只有特殊的groups才有访问权限。
ResourcePolicies非常简单,并且可以定义大量的ResourcePolicies。每一个ResourcePolicy包含一个用户组Group,一个单独的动作action,以及一个单独的对象(Community,Item.etc.);因此,每一个对象都可以定义多种resourcepolicies。如果多个用户组(multiple groups)都对同一个对象拥有同样的动作action权限,那么,每个用户组都需要获得它自己的一个policy(授权信息)。
(7) Plugin Manager
Plugin Manager是一个简单的组件容器。它创建并组织组件,从多个组件中选择所需组件。此外,Plugin Manager还对Plugin(组件)的生命周期提供有限的控制。
Org.dspace.handle包含两个类:Handlemanager 的功能是创建和查找Handles,HandlePlugin的作用是是外部世界能够通过CNRI Handle Server 访问并操作Dspace Handles。
Handles存储于Dspace系统中的handle数据表(table)中。
Handle数据表由如下字段构成:
Handle_id:handle数据表的主键。
Handle:由前缀和标识符两部分组成,例如:1721.123/4567
Resource_type_id:描述对象的类型,在org.dspace.content.Constants中有详细表列。
Resource_id:同类对象在handle数据表内部的编号。
目前,仅仅Community,Item对象指派handle。
· 创建一个handle
· Finding the Handle for a DSpaceObject,though this is usually only invoked by the object itself,since DSpaceObject has a getHandle method
· Retrieving the DSpaceObject identified by a particular Handle
· Obtaining displayable forms of the Handle (URI or "proxy URL").
(9) Search
Dspace搜索代码是一个使用Lucene搜索引擎构造的简单API。
搜索的前半部分任务是索引,org.dspace.search.DSIndexer是实现索引功能的类,当输入Item,Community,或者Collection时,DSIndexer将使用indexContent()方法将内容字段(content’s field)加入到索引中。unIndexContent()和reIndexContent(0方法的功能分别是删除和更新内容索引信息。DSIndexer类也提供一个main()方法,目的是重建整个系统内部的索引。该功能通过调用{dspace.dir}/bin/index-all脚本来实现。
Dspace系统提供三种doQuery()方法:其中一种用于搜索Dspace站点;其他两种用于限制搜索Dspace系统中指定的Collections或者Communities。一个查询(query)返回的结果是三个由handles构成的表列,每一个表列表示一种类型的结果,一个Items 的handles表列,一个是Communities的handles表列,第三个是Collections的handles表列。DSQuery也提供了一个main()方法,用于通过命令行方式调试搜索模块。
(10) BrowseAPI
BrowseAPI维护日期(Dates),作者(authors),标题(titles),并且允许调用者提取这些索引的部分内容。
(11) History Recorder
(12) Chechsum Checker
3. Application Layer(应用层)
Dspace Web UI 是应用层(application layer)最大并且使用最多的组件,基于Java Servlet 和JSP网页技术构建。它允许最终用户使用Web浏览器通过网络访问Dspace系统。
Dspace Web UI 文件存储在源代码树结构中的各种目录中。
Servlets and JSPs:The Web UI 基于MVC模式构建。内容管理API符合该模式,Java Servlets 是控制器(controllers),JSPs是显示模块(Views)。
Custom JSP Tags:所有的Dspace JSPs都使用自定义的标签,这些标签存储于{dspace.dir}/jsp/WEB-INF/dspace-tags.tld中,与此对应的Java类存储于org.dspace.app.webui.jsptag中。这些自定义的标签主要有:layout,sidebar,Date,include,item,itemlist,collectionlist,communitylist,p-opup,selectep-erson,sfxlink。
Interantionalisation(国际化)
HTML Content in Items(条目中的HTML 内容):
Location
Description
org.dspace.app.webui
Web UI source files
org.dspace.app.webui.filter
Servlet Filters (Servlet 2.3 spec)
org.dspace.app.webui.jsptag
Custom JSP tag class files
org.dspace.app.webui.servlet
Servlets for main Web UI (controllers)
org.dspace.app.webui.servlet.admin
Servlets that comprise the administration part of the Web UI
org.dspace.app.webui.util
Miscellaneous classes used by the servlets and filters
[dspace-source]/jsp
The JSP files
[dspace-source]/jsp/local
This is where you can place customized versions of JSPs -- see the configuration section
[dspace-source]/jsp/WEB-INF/dspace-tags.tld
Custom DSpace JSP tag descriptor
[dspace-source]/etc/dspace-web.xml
The Web application deployment descriptor. Before including in the .war file,the text @@dspace.dir@@ will be replaced with the DSpace installation directory (referred to as [dspace] elsewhere in this system documentation). This allows the Web application to pick up the DSpace configuration and environment.
Locations of Web UI Source Files
(2) OAI-PMH Data Provider
Dspace平台支持OAI-PMH2.0,并且提供了数据提供者(Data Provider)。该数据提供者通过集成OCLC提供的OAICat来实现。
两个配置文件:oaicat.properties({dspace.dir}/config/templates)以及oai-web.xml({dspace.dir}/oai/WeB-INF/web.xml)
目前,Dspace系统内部的所有元数据资源都对外公开。如果有特殊需要,必须重新修改Dspace系统。
通过批处理命令行工具导入和导出条目items。这些工具并不是十分稳定和安全,但是他们却很有用而且易于修改,同时也为我们设计并实现自己的导入导出工具提供有力的指引。
Dspace简单存档文件格式:dublin_core.xml,contents,handle,fulltext
导入条目命令(Importing Items):
{dspace.dir}/bin/dsrun org.dspace.itemimport.ItemImport –help
导出条目命令(Exporting Items):
{dspace.dir}/bin/dsrun org.dspace.itemexport.ItemExport –help
(4) Package Importer and Exporter
该命令行工具实现对Packager plugins的访问,它可以获取一个package并创建一个Dspace Item,或者把一个条目(Item)作为一个package进行传播和发布。具体命令如下:
{dspace.dir}/bin/dsrun org.dspace.app.packager.Packager –help
Dspace 系统之间转移Items:使用ItemImport和ItemExport协助实现该功能。使用ItemExport导出元数据后,为了防止元数据重复,运行:
dspace_migrate <exported item directory>
优于运行ItemImport。
(6) Registering (Not Importing) Bitstreams
注册数据流(尚未理解)
试验性的METS导出工具将Dspace条目(Items)以基于METS的标准格式的元数据写入到文件系统中。
命令行格式:
{dspace.dir}/dsrun org.dspace.app.METSExport –help
METS导出工具可以将一个单独的条目(item),或者指定集合(collection)中的条目(items),或者整个Dspace实例的所有对象导出。
导出一个条目:
{dspace.dir}/bin/dsrun org.dspace.app.mets.METSExport --item [handle]
导出特定集合的所有条目:
[dspace]/bin/dsrun org.dspace.app.mets.METSExport --collection hdl:123.456/789
导出Dspace内部所有条目:
{dspace.dir}/bin/dsrun org.dspace.app.mets.METSExport --all
目前,METS工具尚未完全,还存在许多需要改进的地方:没有对应的导入工具;没有structmap部分;有些技术元数据不能写入;仅仅MIME类型文件被存储,不支持bitstream格式;DC到MODS(Metadata Object Description Schema )的映射过于简单,还需要进一步验证。
Dspace系统可以将过滤器(Filters)应用于content/biststreams,并创建新内容(new content)。通过全文检索获取文本、为包含图片的items创建thumbnails都需要使用过滤器(Filters)。
Filters由MediaFilterManager控制,MediaFilterManager通过在bitstreams上调用MediaFilter来遍历数字资产。MediaFilter插件在dspace.cfg配置文件中配置条目plugin.named.org.dspace.app.mediafilter.MediaFilter,配置的内容包括bitstream格式类型表列和Filter操作的bitstreams 的类型。
MediaFilter通过命令行来运行:
{dspace.dir}/bing/filter-media
在org.dspace.app.mediafilter中,定义了如下过滤器:
HTMLFilter:
从HTML文档中提取text,使用javax.swing.text.html.HTMLEditorKit
PDFFilter:
WordFilter:
从DOC文档中提取text,使用WordExtractor
JPEGFilter,MediaFilter
Dspace系统内部组织之间的关系管理:
实现两种操作:建立两个communities之间的父子关系;移除两个communities之间的父子关系。
命令行格式:
/bin/dsrun org.dspace.administer.CommunityFiliator --help