首页 > 范文大全 > 正文

数字图书馆应用模型设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇数字图书馆应用模型设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】 在满足数字图书馆基本要求的基础上,本文建立了一个基于XML的数字图书馆模型。该模型建立的目的是为了更好的实现图书馆的资源共享,把图书馆所有可利用的传统文献转化为XML格式,用户可通过界面更快更精确的检索到所需的文献。同时该模型让图书馆的工作人员更好的了解了用户的需求,促使高校传统图书馆更好、更高效的为师生服务。

【关键词】 数字图书馆 应用模型

基于XML的数字图书馆模型,主要实现了以下四个方面的功能:

一、馆藏书目数据MARC格式到XML的转化。

二、XML文档到关系数据库的映射。

三、用户通过检索界面进行书目信息的检索。

四、对历史访问信息数据库进行数据挖掘。

模型的体系结构如下图1所示

在系统内部,所有的信息处理工作都是围绕着XML文件系统进行的,所以其前提是先将数据库中的信息转化成XML文档,外部用户的检索请求则通过Web服务器对数据库进行检索,在用户的浏览器中进行显示。同时图书馆的工作人员对用户的访问记录进行挖掘,充分了解读者的需求。这样便构成了一个真正的以XML和数据挖掘技术为基础的图书馆系统。

图书馆现代化的最终目标是建立一个高效的数字化图书馆,数字图书馆是一个开放式的硬件和软件平台,它组织大量数字化文献并提供网上服务。对于传统图书馆来说,要想实现这一目标,有效地实现传统图书馆向数字图书馆的过渡,其核心就是传统图书资料文献的数字化。

目前,图书馆广泛利用MARC格式存储大量的书目数据。MARC作为一种元数据格式在国内外图书馆界有着多年的发展历史,是图书情报领域广泛应用的标准格式,它对图书馆中庞大的馆藏资源的有效管理起了非常重要的作用。MARC具有诸如信息描述详尽、数据可变长、数据格式高度标准化等其他数据格式无法比拟的优点,所以经过多年的应用,它已在图书馆界发挥了巨大的作用。

然而,随着Internet的迅速崛起,MARC格式也显现出了一些不足之处,如不利于信息的再利用,不利于数据的Web和有效查询,而且MARC虽是一种统一的描述、存储、交换、检索标准,但无法直接在Internet上应用等。因此,新兴的XML和大型数据库技术成为必要。

XML来源于SGML, 它建立了一种传输结构化数据的方法,是Web上表示结构化信息的一种标准文本格式。XML提供了一种独立的运行程序的方法来共享数据,由若干规则组成,这些规则可用于创建标记语言,并用分析程序处理所有新创建的标记语言。XML能增加结构和语义信息,可使计算机和服务器即时处理多种形式的信息,使用户很轻松地找到他们需要的信息。

现在已有诸多的学者将改造MARC的求助目光投向了新兴的XML,利用XML对MARC进行重新描述,以此来解决MARC在发展中所面临的问题。在了解XML的基础上,可以看到这种技术在图书馆现代化中的应用前景。

一、馆藏书目数据MARC格式到XML的转化

下图为一MARC实例

00874nam02200253 45 ………………(1)

0010013000001 ………………………………(2)

010 @a7-80188-717-4@dCNY28.00

………………………

200 @a五星饭店@AWU XING FAN DIAN @f海岩著

210 @a北京@c现代出版社@d2006.8

215 @a446页@d20cm

………………………

606 @a电视文学剧本@ADIAN SHI WEN XUE JU BEN

690 @aI235.2@v4

………………………

………………………………(3)

MARC数据到XML文档的转化可以通过以下算法实现:

算法名称:MARC数据到XML文档的转化

输入:MARC数据

输出:XML文档

变量说明:

marcs表示n条marc记录

xml marcs表示n条由marcs转化而来的XMLMARC记录

onemarc表示一条marc记录

head表示一条marc记录的头标区

address表示一条marc记录的目次区

data表示一条marc记录的数据区

fieldtag表示一个字段的目次区数据

field表示一个字段的数据区数据

fieldscription表示字段说明

subdatafieldscription表示子字段说明

tag表示字段标识符

subtag表示子字段标识符

indicator1表示字段指示符1

indicator2表示字段指示符2

具体步骤:

1、开始

2、输入MARCS(N条MARC数据)

3、xml marcs=

xml marcs= xml marcs+“”

4、如果len(marcs)0转5,否则转20

5、从marcs中截取一条marc记录,记为onemarc

6、从onemarc中截取头标区head

从onemarc中截取目次区address

从onemarc中截取数据区data

7、 oneXMLMARC =“”

oneXMLMARC = oneXMLMARC +“”+ head +“”

8、如果len(address)0转9,否则转17(截取一条marc记录中的字段)

9、从address中取前12个字符

10、从data中截取到当前字段的数据内容field

从field截取当前字段的字段标识符tag

根据tag从字段说明表中得到当前字段的字段说明fieldscription

11、从field截取当前字段的指示符1indicator1

从field截取当前字段的指示符2indicator2

12、onemarc=onemarc+“ “” ”;

13、如果len(subdatafield)0转14,否则转16(截取当前字段中的子字段)

14、从subdatafield中截取出子字段标识符subtag

根据字段标识符和子字段标识符从字段说明表中得到当前子字段的字段说明subdatafieldscription

根据子字段标识符从field中得到该子字段的内容subdatafield

15、onemarc=onemrc+“ “”+fieldscription+“””;

16、field=field-subtag-subdatafield,转13

17、onexml marc= onexml marc +“”

18、xml marcs=xml marcs+onemarc

19、marcs=marcs-onemarc,转4

20、xml marcs=xml marcs“”

21、将xml marcs写入到指定文件

22、结束

根据以上的算法,前例中的MARC数据经过改造后,得到的XML文档为:

00874nam0 2200253 45

< address=“001”>0010013000001

< field fieldscription=“”tag=“010”indicator1=“” indicator2=“”>

7-307-02549-3

< subdatafield subtag =“d”> CNY15.20

< field fieldscription=“题名与责任说明”tag =“200”indicator1=“1” indicator2=“”>

< subdatafield subdatafieldscription=“正题名” subtag =“a”>五星饭店

< subdatafield subdatafieldscription=“正题名汉语拼音”subtag =“A”>WU XING FAN DIAN

< subdatafield subdatafieldscription=“第一责任说明”subtag =“f”>海岩著

< field fieldscription=“出版发行项” tag =“210”indicator1=“” indicator2=“”>

北京

< subdatafield subdatafieldscription=“出版发行者名称”subtag =“c”> 现代出版社

< subdatafield subdatafieldscription=“出版发行日期”subtag =“d”>2006

< field fieldscription=“载体形态项”tag =“215”indicator1=“” indicator2=“”>

< subdatafield subdatafieldscription=“特定资料标识和文献的数量”subtag =“a”>446页

< subdatafield subdatafieldscription=“尺寸”subtag =“d”>20cm

……………

< field fieldscription=“论题主题”tag =“606”indicator1=“” indicator2=“”>

< subdatafield subdatafieldscription=“款目要素”subtag =“a”>电视文学剧本

< subdatafield subdatafieldscription=“款目要素汉语拼音”subtag =“A”> DIAN SHI WEN XUE JU BEN

……………

< field fieldscription=“” tag =“690”indicator1=“” indicator2=“”>

< subdatafield subdatafieldscription=“分类号”subtag =“a”> I235.2

< subdatafield subdatafieldscription=“版本号”subtag =“v”>4…

………………

二、XML文档到关系数据库的映射

由于关系数据库用二维表来存储数据,其中每个行为一条记录,记录是对等的,没有先后次序。由于关系数据库成熟的管理、存取、更新和检索技术,所以将XML文档映射到关系数据库模式,以提供丰富的功能是非常有必要的。

本模型利用的是基于表格的映射方法实现的XML文档到关系数据库的映射,也就是说把XML文档看成一张(或一组)表,与数据库中的表对应。步骤如下:

1、 对DTD中的每一个复杂元素,创建一个表和一个主键列;例如对每一个子元素,都创建一个相应的表格。

2、 对每一个有混合内容的元素,创建一个独立的表,用来存储PCDATA,并通过表的外键和父表相联。

3、 对元素类型中的每一个单一值的属性,对具有只有PCDATA内容的按顺序出现的子元素,产生一个单独的列,如果子元素类型或者值是可以选择, 该列就应该可以允许为NULL类型。

4、 对有多个值的属性和可以出现多次的PCDATA类子元素,需要创建一个单独的表来存储这些值,并通过父表的主键和父表相连。

5、 对每一个包含元素或者混合内容的子元素来说,通过父表的主键把父元素和子元素连接起来。

根据以上步骤,该模型在关系数据库中建立多个表格:

Marc{Marc_id,Head,Address};

Marc_1{Marc_id, Field tag, …, 200,…,606,…};

Marc_X(X= Field tag){Marc_id, a(出版发行地),c (出版发行者名称),d(出版发行日期)};

在建立数据库的基础上,把XML文档中的数据导入到关系数据库中,将XML文档中的元素形式的数据转换成关系数据库中记录形式的数据。算法描述如下:

读取一个基本元素的数据;

while此元素的数据项未处理完do

读取一个子元素的数据;

if 该子元素为确定的简单元素 then

向给数据库相应的字段添加数据;

else if 该子元素的子元素为多个确定的元素 then

向该元素对应的子表按它的子元素序列的顺序插入数据,并填上主表的记录号;

else if 该元素为不确定的简单元素 then

根据不同的特殊标记做不同的处理,规则就按照前面所述;

end if

loop

上例的XML文档通过该模型可顺利插入到关系数据库中。首先将头标区和地址目次区插入到Marc_1表中,分配给一个唯一的Marc-ID(表3-1);其次将MARC记录的每一个字段(如200,210等)的指示符等,对应插入表3-2;最后,将每一个字段中的子字段元素插入到为该字段设计的表中,表3-3仅为其中的一个表格。

三、用户通过检索界面进行书目信息的检索

用户界面是用户与系统交互的接口,用户通过用户检索界面使用本系统。我们可以设计自然、友好的用户检索界面,用户可以通过界面输入检索要求,指定书刊题名、主题词、著者、ISBN等多种检索方式进行检索,检索的结果通过用户界面以不同的样式表展示给用户。

设计的检索界面如下图所示:

该模型在这个部分使用SQL语言实现了信息的检索,如要检索“数据库”,可通过下列代码实现:

Select

Marc.Marc-ID,Marc_200.a,Marc_200.f,Marc_010.a,Marc_210.c,Marc_210.d,Marc_690.a

from MARC,Marc_200,Marc_010,Marc_210,Marc_690

where MARC.Marc-ID=Marc_200.ID and MARC.Marc-ID=Marc_010.ID and MARC.Marc-ID=Marc_210.ID and MARC.Marc-ID=Marc_690.ID and Marc_200.a=’数据库’;

点击检索就可以将查询的结果显示出来。例如输入“数据库”,可得显示界面如下:

该模型实现了传统图书馆中MARC数据向XML文档的转化,根据网络用户的查询要求,输出图书信息数据,然后根据用户对图书书目数据的访问,挖掘出用户感兴趣的图书类别,为图书馆的服务工作提供依据。在编目子系统,既可以把MARC数据转化成XML格式的数据,又可以从网络上获取信息,直接传递到数据库。