张旺强, 祝忠明: 提出研究思路及文章最终版本的修订;
张旺强: 各典型新型开源IR软件的调研与文章的起草;
卢利农: IR+、Drupal等系统的调研。
随着开放获取运动的发展与机构知识库(Institutional Repository, IR)的普及, 越来越多的机构选择使用开源软件来构建自己的知识库。由于应用场景、功能需求的不同, 逐渐涌现出了一大批IR开源软件。根据开放机构知识库登记网站OpenDOAR[ 1]的统计显示, 截至2013年7月, 已有的超过70种IR构建软件(或平台)中, 大部分为开源系统。除了传统的已被广泛应用的DSpace、EPrints、Fedora等之外, 近年来, 以IR+[ 2]、Zentity[ 3]、Islandora[ 4]、Hydra[ 5]等为代表的新型开源IR软件, 致力于科研生命周期中各种类型知识产出的保存与管理, 支持内部资源的语义关联描述, 以灵活的可配置性与良好的可扩展性为多个领域、多种数字资源保存系统的快速建设提供了可能。
IR建设过程中, 对开源知识库软件的选择一般取决于系统功能以及构建成本两个因素。各知识库系统提供的功能不一, 同时, 选择不同的软件构建目标知识库系统所需的成本也有很大的差别, 例如, 有些经过简单的安装配置就可以正常使用, 有些则必须由机构结合自己的业务需求进行二次开发。对国外IR开源软件的对比研究, 有助于科研机构在了解各系统功能特点的基础上, 选择适合自己的IR构建平台, 也有利于把握该领域前沿研究动态, 学习并借鉴一些系统的优秀设计思想, 促进我国IR系统的开发与建设。
本文选择IR+、Zentity、Islandora、Hydra等近年来的4个典型开源IR软件进行对比研究。
IR+(IR Plus)是罗彻斯特大学(University of Rochester)开发的开源数字资源机构仓储系统, 于2009年正式对外发布。早在2002年该校就使用DSpace建立了自己的IR, 但使用一段时间后, 发现科研人员很少主动参与, 数据主要靠管理员添加。于是, 他们组织了相关人员实际参与学校的科研过程, 了解科研人员需求, 在此基础上开发了IR+系统[ 6]。
IR+的特点是融入科研过程, 支持科研生命周期中各阶段性成果的保存与管理, 吸引科研人员主动参与IR内容建设。IR+系统功能主要分三部分, 如图1所示:
![]() | 图1 IR+系统三大组成部分[ 6](1) 个人工作间——注册用户个人私有的文档管理单元, 支持文档的添加、删除、检索、版本控制, 以及与其他注册用户的共享;(2) 机构知识库, 主要保存机构已正式出版的知识产出, 以专题的方式组织, 允许公开访问;(3) 研究者个人主页, 包括研究者个人基本信息与科研产出的公开展示。 |
三者之间相对独立又相互联系。当某一科研活动进行时, 科研人员可以使用个人工作间管理科研活动相关资料或阶段性成果。当科研活动结束、知识产出最终正式出版后, 可以将个人工作间的成果直接发布到IR中。同时, 支持科研人员从个人工作间或IR中添加自己阶段性、非正式或正式出版的知识产出到个人主页。
Zentity是微软研究院(Microsoft Research, MSR)开发的机构资源仓储平台, 于2008年首次发布1.0版本。Zentity实现了一个语义化资源组织与管理的框架, 它以资源为中心, 支持资源间关联关系的创建、存储与展示。系统还提供了扩展接口, 支持从传统关系型数据模型到Zentity语义模型的转换, 可适用于不同的应用领域。
Zentity内置了科研领域的资源语义关联模型, 包括的资源类型有科研人员、机构、知识产出、软件作品、期刊、文件等。不同类型的资源有不同的属性, 例如, 科研人员的姓名、职称、邮箱等, 知识产出的题名、发表时间、摘要等。同时, 资源对象之间会有一定的关联, 例如, 一个科研人员会有多个知识产出, 一个知识产出是发表在某一期刊上的, 一个知识产出又包含若干文件。
Zentity的系统框架支撑了其资源间语义关联各种功能的实现。Zentity系统可分为三层——数据与数据访问层、服务层、应用层, 如图2所示:
![]() | 图2 Zentity系统框架图[ 7] |
Zentity中各类资源及其关系信息都保存在关系数据库中。数据层提供了一个可以存储不同类型资源、资源属性、以及资源间关系的数据模型, 此数据模型是Zentity语义化资源管理框架的核心。服务层通过.NET的Entity Framework、ADO.NET、LINQ等技术实现程序对底层数据的管理以及ORM对象关系映射等。应用层的Visual Explorer、Pivot Viewer基于微软的Silverlight, 支持以可视化的方式展示资源间的语义关系。
除了内置的科研领域知识产出资源语义关系模型, Zentity还提供了扩展接口, 支持将其他领域数字资源语义关联模型通过RDFS文件转换并保存到Zentity的关系数据模型中, 支持自动生成扩展模型对应的程序类文件, 从而实现对实例数据的管理。
Islandora最初由加拿大爱德华王子岛大学于2006年开始研发, 2010年加拿大大西洋地区商机局(Atlantic Canada Opportunities Agency)投资240万美元建立Islandora开源社区, 同年, 针对Islandora提供付费服务的Discovery Garden公司成立。Islandora的初衷是通过构建一个功能强大的数字资源管理平台, 解决众多学科领域数字资源数量大、种类多而面临的管理难问题, 以及数据的利用和管理面临的其他6大问题: 隐私、安全、保存、加工、所有权和完整性[ 8, 9]。该系统适用于文本数字资源管理、影音图像资源管理、虚拟研究环境构建、机构知识库建设等多种应用场景。
Islandora基于Drupal、Fedora、Solr等几个开源软件。系统主要分为三层, 最上层由Drupal提供显示与管理界面, 底层使用Fedora存储数字资源, 中间由Islandora负责上下层间的通信, 如图3所示:
![]() | 图3 Islandora系统框架图[ 10] |
Drupal是使用PHP语言开发的一个优秀的开源内容管理系统, 由内核、模块、主题三部分组成。它将内容与表现分离, 通过钩子机制支持将不同功能模块以类似插件的形式进行集成, 支持网站内容与表现形式的个性化设置, 具有强大的扩展能力。Drupal在底层数字资源存储功能方面不及Fedora。Fedora支持各种类型的数字资源的保存以及资源间的语义关联的描述与查询, 提供了丰富的接口对外开放服务。Islandora使用Fedora存储数字资源, 通过GSearch(Fedora Generic Search)并结合Solr实现对资源的索引与检索。
Islandora以Drupal模块的形式嵌入到Drupal系统中, 作为中间层, 它负责从Fedora中获取数字资源并显示到Drupal页面, 并将用户的操作更新到Fedora。Islandora集成了ABBYY OCR 引擎、Djatoka JPEG 2000 Image Server等多个开源软件[ 11]。针对不同类型的数字资源, 提供了解决方案包(Solution Packs), 这些包封装了对某类特定数字对象的处理, 例如, Basic Image Solution Pack支持自动生成图片缩略图, Audio Solution Pack支持将用户上传的WAV文件使用LAME转换为MP3格式, 音频文件在网页中使用JWPlayer控件播放[ 12]。
Hydra英文原意是指古希腊神话中一只九头怪蛇。该系统的设计理念与架构类似于Islandora, 它们都使用Fedora作为底层数字仓储系统, 上层通过组件的形式支持针对不同需求进行个性化定制开发。该项目于2008年由美国斯坦福大学、弗吉尼亚大学、英国赫尔大学及DuraSpace[ 13]联合发起, 目的是构建一个
具有较强的可扩展性、可适用于多种数字资源管理的平台[ 14]。Hydra的口号是“一体多用(One Body, Many Heads)”, 通过开发一个通用的数字存储与管理平台, 并提供一系列可重用的组件与接口, 在此基础上可以根据具体的应用需求构建机构知识库、学科知识库、数字图书馆、多媒体资源库等。
Hydra使用Ruby语言编写, 基于Ruby on Rails, 系统框架如图4所示:
![]() | 图4 Hydra系统框架图[ 15] |
Hydra系统可分为数据层、服务层、表示层。数据层由Fedora保存数字资源, Solr服务器提供检索服务。中间服务层为一系列Ruby组件, 主要包括: Blacklight, 从Solr获取查询结果与分面浏览数据; ActiveFedora/Rubydora, 实现与Fedora系统的互操作管理; Solrizer, 解析资源对象并向Solr提交索引; Hydra Head, 可重用的工作流功能组件。表示层通过服务层数据生成HTML网页。各层之间相互分离, 使用REST API通信。
由于每个软件背景来源、需要解决的问题、设计理念等的不同, 因此在系统架构、功能等方面也有很大的差别。下面主要从两个大的方面对各IR开源软件进行比较: 综合比较如表1所示, 包括系统的运行环境、版本历史、服务支持、应用场景等; 功能比较如表2所示, 着重从系统提供的功能、服务等方面进行比较。
以上从多个维度对4个开源IR软件做了大致比较, 总体来说, 每个软件都有自己的独特之处。
(1) IR+与其他三个软件相比更偏向传统, 作为罗彻斯特大学替代DSpace的机构仓储软件作品, 它提供了比较全面的知识产出存缴与管理功能, 例如用户多个邮箱管理、别名管理、全文版本控制、资助者管理等功能都做得很细致。区别于同类型软件的特点主要包括: 个人工作间文件存储管理及共享、研究者主页、全文版本控制等。同时, IR+易于安装, 部署后不需要二次开发可直接使用。但IR+仅支持传统的简单资源类型, 缺少复杂类型资源间的语义描述机制, 与Islandora、Hydra等相比, 虽然简单易用但不能很好地支持不同应用场景下的扩展开发。
![]() | 表1 新型开源IR系统综合比较 |
(2) 依赖于微软.NET平台强大的技术支撑, Zentity支持资源间语义关系的存储与表达, 有良好的接口可以支持不同领域的数字资源语义关联模型的扩展。基于Silverlight的Visual Explorer可以直观地展示资源间的语义关系。但与IR+等传统知识库软件相比, 在机构知识产出管理的基础功能方面有很大的不足, 例如: 没有研究社区或专题; 没有访问统计; 访问权限控制仅针对单个资源不针对资源类型, 没有IP控制; 系统本身没有批量导入、导出功能; 由于文章、作者、全文、提交者都属于不同的资源实体, 为了实现资源对象间的语义关联, 在提交知识产出时需要先单独创建各个资源, 再建立它们间的关联, 造成了提交过程的繁琐。此外, 该系统只能在Windows平台上运行。
(3) Islandora与Hydra的架构比较相似, 底层都使用Fedora存储资源对象, 自身运行在中间层, 负责下面存储层与上面表示层之间的通信, 并提供一系列可重用的组件, 使用这些组件可以相对快速地构建面向不同领域不同功能需求的资源存储系统。与IR+、Zentity等不同, Islandora与Hydra用户一般需要根据自己的需求, 在此系统平台上进行二次开发, 所以使用这两个系统构建知识库, 搭建者需要相应的专业知识背景, 前者需要对Drupal有一定的了解, 后者需要熟悉Ruby on Rails。
Islandora与Hydra相比较, 前者的功能组件以Drupal模块的形式嵌入到Drupal中, 为界面层所调用, 后者是以Ruby Gems的形式为上层提供服务接口。由于Drupal社区自身有着丰富的功能模块, 加上其主题功能, 如果不需要对Drupal模块进行二次开发, 大部分的系统构建工作可以在Drupal的网页界面中实现。而Hydra的表示层构建更多的需要开发人员自己完成。
新型开源IR系统是为了应对当前复杂数据环境下, 机构多种类型知识产出的组织、管理与重用的需求而出现的。相对于以管理正式出版知识产出为主要任务的传统IR系统, 新型开源IR系统表现出以下特征。
![]() | 表2 新型开源IR系统主要功能比较 |
(1) 支持科研生命周期各种类型知识产出的保存与重用
传统IR一般处理简单资源类型, 不能很好地支持复杂资源类型, Fedora的数字对象模型可以实现对复杂资源类型的描述与保存, 但它不针对具体哪个应用, 主要是作为一个基础平台, 对外通过接口提供服务。基于Fedora的Islandora、Hydra充分运用了Fedora的优点, 封装了对Fedora的操作, 为复杂资源类型的管理创造了条件。Islandora、Hydra还通过组件支持视频、音频、图像等的在线播放与浏览, 进一步提高了资源的利用率。
(2) 提供多种服务, 吸引科研人员主动参与IR建设
例如IR+为解决IR建设中科研人员普遍不愿积极参与的问题, 提供了个人工作间及研究者个人主页功能。个人工作间支持对科研过程中各种文档的管理、共享, 最终成果正式出版后, 可方便地将工作间的文档直接发布到IR中。研究者主页功能有利于提高作品被引率, 扩大科研人员学术影响力。Islandora、Hydra等都加入了Web 2.0功能, 支持用户之间的互动, 吸引科研人员参与。
(3) 机构知识库的语义支持
Zentity与Fedora都支持对资源对象的语义化描述与组织, 两者的实现机制不同, 最终能够实现的语义化功能也不同。两者目前都主要是针对RDF/RDFS数据的处理, 对资源间的语义关联支持有限, 语义化水平有待进一步提高。
(4) 适用于多种应用场景的插件式开发机制
以Islandora与Hydra为代表, 在当今复杂信息环境下, 不可能有一个通用的系统可以适应各种机构知识资源管理的需求。通过一个基础框架平台, 并将不同的功能封装为单独的组件, 由用户结合自身需求进行定制开发, 逐渐成为一种主流。
IR+、Zentity、Islandora、Hydra是近年来出现的几个典型的IR开源系统, 各系统都有自己的优点与不足。IR+简单易用, 功能强大, 但可扩展性差。Zentity语义化功能强, 但资源管理功能弱。Islandora与Hydra比较年轻, 与传统IR相比, 其资源管理功能还不够全面, 但它们脱胎于传统资源管理系统, 其设计理念、系统架构、开发模式等都具有先天的优势, 表现出强劲的发展势头。在构建IR对开源系统的选择上, 并不存在唯一的标准来判断孰好孰坏, 需要根据自己的具体需求并结合各开源软件的特点进行选择。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|