基于开源框架的特色数据库/资源库的构建方案
关于特色数据库的案例介绍,我们之前有一篇文章,专门介绍了基于Drupal的特色数据库案例,详情可以点击此处《基于开源平台构建的国内外高校特色资源库介绍》。
本文主要是讲特色资源库的构建,我们是基于Drupal这样的顶级CMS来开发特色资源库的,包括从需求规划、资源加工、系统建设、运维方案等多个方面来详细剖析,如何基于开源的Drupal构建特色数据库。
特色资源库的特点
参考前文,我们总结了特色资源库的几个特色和特点,
- 资源的数据特色,导致数据结构和元数据不是一个统一的格式,不像我们传统的图书结构(图书元数据结构/Marc等)都有专门的统一规范,特色资源库因为其特色,所以结构没有统一标准。
- 资源类型不固定,有可能包含视频、音频、图片、文稿、甚至PPT/Word文件,或者其他格式的文件等,所以要有强大的文件管理功能。
- 资源来源不固定,有自建加工录入、有导入、也有网络抓取等方式。
- 资源的数量不固定,有的非常多,有的非常少,可能就几个页面展示。
- 搜索要求高,因为资源库建设都需要对数据进行检索,检索的要求也比较高,比如提取文本,分面检索,自动提示,图片检索等。
- 界面需要有特色,对UI界面一般需要定制设计,以体现特色资源库的亮点,因此我们无法用统一的模板进行构建。
除了上面的几个特点,我们建设特色资源库还应该以下几个原则,
- 系统全面性
数据是数据库的核心,数据库的质量从某种意义上说取决于数据的质量。因此,数据的全面收集是数据库建设中十分重要的环节,另外,还要保证数据库的延续性,数据库建设不是一蹴而就的,要不断地进行数据修正、数据维护和数据更新,这样才能保障数据库的生命力,提高资源的利用率。 - 数据标准化
数据库建设的最终目标之一是实现资源共享,因此,数据的标准化、规范化显得尤其重要,它是以后通过网络实现资源共享的技术保证。包括:a.按照《中国图书馆分类法》(第四版)分类;b.严格按照CNMARC标准著录格式进行标引和著录。 - 系统实用性
数据库最终是给普通用户和读者提供服务的,但是往往我们做成了一次性项目,符合验收标准,但是实用性较差,更有甚者数据质量不高,长期以往,就变成了维护负担,而没有产生使用价值。
因此,从实用性的角度和数据规范的角度来说,我们都推荐用普通的网站架构即可,不需要用繁琐的技术导致实用性降低,维护难度提高,并且网站的访问简单,有浏览器,手机、电脑、pad、大屏都可以浏览操作,也容易分享给其他人。其他资源管理方式、管理和分享的难度就会比较高。
资源库对系统的基本要求
一、系统建设要求
我们建设资源库,一般要求具有灵活的内容管理功能,并可以定制各种数据结构、定义数据类型、数据分类、元数据,此外,还包括特色库数据的浏览、检索、高级检索、联合检索,系统基本配置、用户管理、权限控制、文献模板管理、分类管理、数据的录入、数据审核、流量统计等功能。我们对以上的要点做了一个简单的整理:
(1)用户体系,实现用户管理,包括管理员/发布者的管理。
(2)权限体系,实现角色权限的定义,对内容阅读权限的管理。
(3)元数据可定制,可以对资源的元数据进行自由定制,分类等,比如增加一个特色图库,要新增字段取景人,后台要方便增加元数据。
(4)资源管理,资源录入,录入员和审核员用户可以在此录入资源和对已经录入的资源进行审核。
(5)文件管理,一般特色资源库都有大量的图片、文档等,需要对文件的存储、分类和下载进行管理。
(6)分类体系,可以批量导入分类,也可以手工创建分类、管理分类和子分类。
(7)系统日志,对用户的操作日志、安全日志、错误日志都要有详细的记录,方便后期维护。
(8)界面美观、可定制,一定要能定制符合现代互联网要求的界面,以及能体现特色资源的特色界面,提高用户体验,方便用户使用。
(9)可扩展,可二次开发,比如分享功能,联合检索功能,API等。
二、数据加工要求
数据是特色资源库的集成,挖掘抽取数据商数据库的数据、加工灰色文献、规范图书馆自身数据、教师课件、老师或者学生作品等内容储存并添加到特色数据库中。
数据加工分以下内容:
1.学科数据。包括期刊、论文、图书、标准、专利等文献类型,此部分数据可以学校单独购买,其中为了保证数据的特色性、专业性、准确性,需要学校的专业老师对数据进行专业的审核,审核通过后做统一整合到特色库系统中。
2.自建数据。包括图书馆内自有电子资源,教师课件、老师或者学生作品等。
3.灰色文献数字化。资源主要是特有的资源,对于数字资源可以对其进行规范处理,并入库,对于纸质资源,可以对其数字化并入库。
三、数字化处理要求
数字化处理应该充分考虑不同类型的资源特点和对其进行数字加工的特殊性因素,因此对不同的资源,在遵循不同的标准情况下(比如:数字资源征集与数字图书馆推广工程数字资源联合建设数据标准规范),可以采用不同的处理流程,
(1)图书的加工:
图书 -- 图像加工(数字化处理、检查校对)-- 识别(版面分析、版面还原)-- 对象数据 -- 数据封装。
(2)图片的加工:
图片 -- 拍摄 -- 加工处理(修复、格式转换、存储) -- 存储 -- 元数据录入 -- 数据封装。
(3)视频的加工:
视频的拍摄 -- 视频后期制作 -- 视频压缩分级 -- 元数据录入 -- 封装入库。
Drupal的实现方式
对于Drupal来讲,几乎能满足课程系统的所有功能,比如内容管理、文件管理、分类和权限等,我们把课程系统的对应的实现方式都列了出来,并且用最简单的描述,尽量来实现课程系统:
Drupal的核心体系:
(1)用户体系
Drupal自带用户体系,丰富的用户管理扩展,包括用户登录、用户认证、第三方登录(账号绑定),SSO,CAS等,比如认证,参考多系统集成,如何打通用户实现统一的身份认证?
(2)权限体系
Drupal最优秀的权限模型,无需代码,即可完成最灵活的权限管理,,后台轻松增加角色和勾选各种权限。
(3)内容类型
内容管理是Drupal的核心,构建一个新的内容类型,可以自定义字段等,完全能非常灵活实现。
Drupal 可以轻松自定义一种资源类型比如戏曲,并且后台可以方便管理这些内容。
(4)视频管理,可以用默认的Drupal的media来管理,当然也可以对接到云存储、块存储,比如OSS,亚马逊S3。
(5)文件管理,Drupal默认的文件管理,可以本地存储也可以云存储,可以关联到内容类型。
(6)分类体系,Drupal默认强大得分类提,可以完全实现对课程的课件进行分类管理。
(7)日志系统,可以使用Drupal的日志系统,也可以新建日志追踪系统,比如阅读记录,进行统计和导出。
(8)导入导出,可以方便导入和导出系统中的各种内容类型,实现数据互通。
(9)检索系统
Drupal能无缝集成Apache Solr等全文索引系统,并且Drupal在中文搜索方面更加全面和易用,搜索可以支持提取文件中的内容,比如PDF、Word等文件文字提取搜索,支持分面搜索、自动提示、自动推荐等智能搜索功能。
参考 文档资源库建设之搜索引擎如何搜索文件的内容(pdf/wrod)?
(10)定制界面,可以实现最前沿的界面风格定制,可以开发出小程序、微信等前端应用,迅速应用最新的互联网元素。
Drupal对pdf和图片搜索的实现
系统核心架构
那么基于Drupal我们就可以对各种数据和数字化内容进行存储,并且可以很容易的定制自己的内容类型,下面的架构就讲解了,如何构建特色数据库的框架。
最下层是基于云平台、RDS,存储使用OSS的块存储,应用开发基于Drupal的模块,可以扩展存储内容,前端通讯访问是Headless/API的前端构建,具体如下:
软硬件综合架构信息
除了Drupal默认的一些特性之外,还可以使用一些高级特性,比如Drupal的全文检索,集群化、自动化等,具体如下:
(1)Search API:可以通过Solr/ES等系统完成任何数据的存储和检索。
(2)Drupal和云存储:Drupal可以与任何的块存储、云存储集成。
(3)Drupal集群:可以实现集群来实现学院、学科等集群的模式。
(4)Drupal CI/CD:自动化+Docker,Drupal的容器方案。
下图是服务器和存储的架构图:
本文属于原创内容,创作不易,转载请注明出处!
更多关于资源库建设和CMS建设的文章,请参考下面的相关链接,