APP下载

基于java图书批量查重系统的实现

2014-07-13陈燕明蒋祥龙

宿州学院学报 2014年3期
关键词:查重批量书目

陈燕明,蒋祥龙

亳州职业技术学院图书馆,安徽亳州,236800

查重就是要查找某一图书在本地馆藏中是否存在复本。一般认为,复本是指预编图书和馆藏图书的某一目录在ISBN、正题名、责任者、出版时间等著录信息完全相同[1]。批量查重是使用计算机来自动完成大批量图书查重工作,它在图书采访中有着重要的意义[2]。

1 引 言

当前,不少批量查重工作采用的方比较单一(主要使用ISBN、正题名),在查重时,需要灵活使用不同的检索点,才能更好地提高查重的查全率和查准率[3],同样批量查重时也需要灵活使用不同的检索点,才能提高采访人员的工作效率。不少图书管理系统都集成了批量查重功能,但是往往仅支持marc格式的数据查重,查重的结果很少能符合理想的结果[4],而且查重后的数据格式被修改,不利于下一步的人工筛选。

常见的图书批量查重模式主要有两种:数据库批量查重和文件批量查重[5]。数据库批量查重:在进行批量查重前,需要转换查重数据格式,因为批量查重系统输入数据的组织形式、字段结构要求严格,另外查重的方式不灵活[6-7];文件批量查重:在图书外采工作中常见书目数据格式有Excel、MDB、TXT[7],当不同供应商提供的数据格式不一致或字段名称不统一时,需要采访人员进行干预,将不同格式的文件转换成统一的格式,字段名称进行统一处理,文件查重还存在检索点设置不灵活的问题。这些无疑都会增加采访人员的工作量。

亳州职业技术学院图书馆在以往图书采访过程中,使用图书管理系统中的批量查重工具只支持marc数据查重,导致现有馆藏图书出现了一定程度的同书异号、异书同号现象,造成了本馆资源的浪费,如标准编号“7-5059-3092-3”下有299种图书,而图书正题名“红楼梦”下有77个ISBN号。同时还遇到过不同书商提供的书目数据格式不一致、查重后书商的目录字段被修改,不利于下一步的人工筛选等问题。为此,本文使用了Java语言实现一个跨平台的图书批量查重系统。

Java作为一种当前流行的面对对象的高级语言,具有简单易学、可移植性高等特点[8]。使用java开发,能增强系统的适用性,为不同软件环境下的图书批量查重提供一个实现途径。

2 图书查重系统设计

2.1 系统功能设计

本文建立的批量查重系统主要由6个功能模块组成:字段名称映射、查重条件设置、数据输入输出、数据预处理、查重执行和可视化界面。

(1)字段名称映射。使用一张映射表将不同供应商提供的书目字段名称或数据库中的书目字段名称进行映射处理,如ISBN字段名称有的使用“标准编号”,有的使用“书号”,在系统中可将它们统一映射为“ISBN”。映射表中包含了常用的检索字段:ISBN、正题名和责任者等,还支持自定义查重字段名称,如同一个供应商不同书目文件中的“ID”字段等。使用映射表,既能统一不同数据中的字段名称,又能保持原有数据的字段名称不被修改。

(2)数据输入输出。目标数据(待查重图书数据)以Excel表、TXT文件、MDB文件导入到系统中。源数据(被查重图书数据)可以以Excel表、MDB文件导入,或者使用JDBC API对接到不同的数据库中。查重后的数据输出的格式默认与目标数据的格式一致,也可以自己定义保存格式,这样便于下一步的人工筛选。

(3)数据预处理。由于不同的供应商在著录书目数据时有不同的著录方式,著录数据时也会有误差发生,所以在查重之前,标准化书目字段是十分有必要的[6]。这里仅对标准书号(ISBN)、正题名、责任者进行标准化处理。

①标准书号(ISBN)的处理。图书采访中有些供应商提供的书号使用EAN-13图书条码,有些书号使用ISBN-13,还有很少部分书号使用的是ISBN-10。亳州职业技术学院图书馆的馆藏图书书号就有ISBN-13和ISBN-10两种,其中ISBN-10的图书较少。该系统实现了EAN-13到ISBN-13的转换[9],ISBN-10与ISBN-13的互换。

②正题名的处理。由于题名中的标点符号、数字、英文字母容易使用不同的格式,例如来自同一个供应商的图书《世界上最“恐怖”的地方》和图书《“中国服务”纵横谈》中的引号就不一样。该模块实现了将正题名中的标点符号和其他特殊符号去除;阿拉伯数字统一中文数字;英文字母统一成大写半角[6]。

③责任者名称的统一。删除了责任者名称中的责任方式和作者的限定词,如常见的责任方式“主编”“著”等,常见的限定词“(美)”等。

(4)查重条件设置。使用逻辑词“AND、OR”组合多个字段,构成多样化的查重条件。如可以使用“OR”把常使用的查重检索点“ISBN+正题名”和“正题名+责任者+出版时间”组合在一起,作为一个新的查重检索点。

图1 图书查重系统程序运行的主界面

(5)图书查重。根据源数据的选择,该模块采用了不同的方式进行图书查重。当源数据在数据库中时,使用SQL语言中的SELECT语句进行图书查重(SELECT语句由目标数据逐条生成);当源数据为单个文件时,先将源数据读入到内存中,之后,再逐条查看目标数据是否在源数据中重复。

(6)可视化界面。使用java swing组件实现系统的可视化界面,如图1所示。

2.2 查重流程

图书查重系统执行过程如下:

(1)字段映射表填写。映射表在系统启动时,自动加载默认的常用查重字段名称,如需变动,可在这里修改或添加映射的字段名称。

(2)设置检索点。默认选择的检索点为“ISBN and正题名”,还可进一步增加/删除检索字段,并选择合适的逻辑词组合所使用的检索字段名称。

(3)导入书目数据。目标数据通过定位的书目文件导入;源数据导入可以通过数据库导入或通过定位数据文件导入。使用数据库导入,需要详细地设置数据库的连接信息,具体到书目数据所在的表格名称。

(4)数据的预处理。预处理通过文件导入的书目数据,如源数据在数据库中,仅处理目标数据中的ISBN字段;如源数据通过文件导入,需处理目标文件和源文件中的ISBN、正题名、责任者字段。

(5)执行查重:系统根据输入的文件格式自动执行与之相对应的查重模块。

(6)保存查重结果:选择输出的文件位置后,即可输出查重的结果。详见图2。

图2 图书查重过程流程图

2.3 系统的特点

该系统采用了多样化的查重检索点,能适应书目数据的变化,为采访人员提供多个供选择的查重方案;支持常见格式的输入输出数据并保持原有数据的内容在查重后不被破坏,有利于下一步的人工筛选和采访者与图书供应商之间的数据交流;数据库的查重和文件查重可以在程序中一次性完成,仅仅需要采访者修改字段名称映射表,无需修改文件数据;该系统既可以通过互联网链接到远程服务器数据库,又可以通过本地的数据库获取源数据,还可以直接导入源数据文件,保证了源数据的时效性,能进一步提高批量查重的灵活性和效率。

3 系统实现

该系统的开发使用java语言,在myEclipse平台上实现。

数据输入输出功能的实现。系统中数据的载入通过两种方式:文件载入、接入数据库,文件输入输出的抽象类:

标准化处理模块的实现。EAN-13到ISBN-13的转换采用文献[9]的方法实现,标题的标准化处理代码如:

文件查重和数据库查重方法的统一,其抽象类为:

其他代码略。

系统建成后,在图书采访应用中得到较好的效果,如图书馆分两批收集图书书目时,在收集第一批图书书目中,供应商提供的书目和该馆数据库中的书目数据对比,查出了103个重复目录;在收集第二批图书书目中,和该馆数据库中的书目数据对比,查出了78个重复目录,而与第一批的书目对比查出了783个重复目录,整个过程完全在本系统中一次性完成,无需采访者去修改原始的书目文件以及其中的字段名称。若使用本馆图书管理系统中的批量查重工具,则不支持书目文件间的相互查重,可能造成重复订购。同时,不同格式的书目数据都需要转化成统一的marc格式,这些需要人工参与,增加了工作的复杂度。

4 结束语

本系统的可移植性高,能适应移动查重的需求,为图书外采工作中的书目查重提供了一个实现途径。数据库查重和文件查重的统一,方便了图书采访者选购书目,减轻了工作量,提高了工作效率。系统在实际应用中获得了很好的效果,为图书管理系统中批量查重功能的完善提供了一定参考,推动了图书管理系统自动化的发展。

该系统还存在不足,支持的文件格式需要进一步扩大,查重方法只能通过检索点进行简单比对,不能智能地判断图书内容是否重复。另外,不重复的图书不一定就适合购买,如何判断一本书在本馆的可购买性?希望在下一步工作中,把图书可购买性的评价指标整合到该系统中。

[1]周爱莲.计算机编目查重探讨[J].图书馆学研究,2004(1):64-66

[2]王春秀,董民辉.计算机编目查重问题研究[J].图书馆学研究,2006(5):58-59

[3]李金庆,卓晓云.论采访查重的延伸与完善[J].图书馆界,2010(6):13-58

[4]陈秀红.浅谈怎样提高图书查重准确率[J].甘肃科技纵横,2013(2):88-89

[5]王文刚,贺轩.图书采访批量查重探析[J].山东图书馆季刊,2006(4):56-63

[6]余育仁,刘悦如,陈欣.电子书资源查重系统[J].图书馆杂志,2013(4):39-44

[7]史军绒.谈图书采访工作中的批查重问题——以ILAS系统为例[J].科技信息,2010(29):202-122

[8]孙浏毅.JAVA宝典[M].北京:电子工业出版社,2009:2-5

[9]李伟.EAN-13图书条码与ISBN-13互换、校验与图书查重[J].农业图书情报学刊,2011(3):61-67

猜你喜欢

查重批量书目
推荐书目《初春之城》
学位论文查重乱象引关注
批量提交在配置分发中的应用
学术论文该“查”什么?
论文查重别大意
学术论文该“查”什么?
在数控车床上批量钻铰孔类工件的实践
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改
考虑价差和再制造率的制造/再制造混合系统生产批量研究
本刊邮购书目