三大索引收录论文邮件推送服务系统的设计与实现
李晶, 谭英, 师俏梅
西北工业大学图书馆 西安 710072
摘要

针对传统的三大索引收录论文查证方式被动、实时性差以及效率低的现状,提出建立三大索引收录文献邮件推送服务系统。对系统设计思路和实现进行详细的介绍,包括如何导入原始记录数据文件、如何逐条读取记录将英文姓名翻译为中文姓名、记录数据格式的统一以及如何进行邮件推送。

关键词: 科学引文索引; 工程索引; 科学技术会议录索引; VBA; 邮件合并; 邮件推送
中图分类号:G250.7
Design and Implementation of E-mail Pushing Service System for Paper Indexed by Three Famous Indexes
Li Jing, Tan Ying, Shi Qiaomei
Northwestern Polytechnical University Library, Xi’an 710072, China
Abstract

Aiming at the status of passive check mode, poor real-time and low efficiency in the traditional methods of papers indexed by three famous indexes,the E-mail pushing service system is established. This paper describes the system design ideas and implementation in detail, including how to import data, read records, change English name to Chinese name, uniform data format and push E-mails.

Keyword: SCI; EI; ISTP; VBA; Mail merge; E-mail pushing
1 引 言

国内越来越多的高校将论文被SCI、 EI、ISTP等国外著名数据库收录和引用的情况作为衡量相关人员科研成果水平的一项重要评价指标。目前,国内高校图书馆普遍提供三大索引(SCI、 EI、ISTP)收录论文的查收查引服务,通常需要作者亲自到图书馆或通过邮件方式办理查证事宜,每年教师职称评定和学生毕业答辩前这项服务最为频繁。虽然很多图书馆定期在本馆网站上公布三大索引收录本校论文的情况,或者指导师生进行三大索引收录的检索,但都难免存在滞后、遗漏和重复劳动的问题。为减轻图书馆工作人员的劳动强度,提高广大师生获取收录信息的效率,西北工业大学图书馆自2008年开始为本校博士生导师开展论文收录情况的邮件推送服务,使收录查证工作由被动向主动方式转变。

这种推送服务的大部分工作环节由手工完成,不可避免地存在实时性差、工作效率低、服务面窄以及准确率低等问题。2010年初,西北工业大学图书馆自主开发了三大索引收录论文邮件推送服务系统,以保证全校读者及

时准确地获得论文被三大索引收录的情况。

2 系统总体设计

在原有的模式下,三大索引收录论文邮件推送的具体步骤如下:

(1)馆员每周定制下载本校师生论文被三大索引收录情况的文本文件。

(2)馆员逐条将每篇文章的作者姓名翻译为中文,并提取题名、来源、作者姓名、Accession Number(EI)、UT ISI(SCI、ISTP)等字段,将记录逐条整理并按学院形成Word文档。

(3)每季度末,馆员整理本季度的所有记录数据,按学院和作者姓名的字母排序形成本季度三大索引收录统计文档,并将结果发布在本馆图书情报工作通讯和图书馆网站主页上,随后将本校师生论文被三大索引收录的情况推送到其邮箱中。

三大索引收录论文邮件推送工作环节中存在很多费时费力的简单重复劳动,随着三大索引收录本校论文数量的逐年上升,这个缺点显得尤为突出。因此实现邮件推送服务自动化是系统的设计目标。通过分析优化以上工作,三大索引收录论文邮件推送服务系统流程如图1所示:

图1 三大索引收录文献邮件推送服务系统流程

3 系统功能

系统按业务功能可分为5大基本模块:系统数据维护模块、记录数据浏览模块、记录数据处理模块、统计模块以及记录数据输出模块,如图2所示:

图2 三大索引收录文献邮件推送服务系统功能模块

各模块详细功能如下:

(1)系统数据维护模块实现对读者数据的批量导入、删除等操作;对读者中文姓名翻译为英文姓名,支持中文姓名全拼翻译和简拼翻译两种模式;可依据读者信息的变化,每学期执行该模块功能,以保证读者数据的完整性,提高匹配作者中文姓名的准确率。

(2)数据浏览模块可以逐条浏览原始数据或根据需求快速定位,便于馆员查看和浏览原始数据。

(3)记录数据处理模块提供原始记录数据的批量导入、作者英文姓名模糊匹配中文姓名、以及记录数据的增加、删除、修改功能。针对SCI数据可实现SCI分区自动匹配功能。

(4)记录数据输出模块完成记录数据格式转换、Word文件输出以及邮件推送等功能。邮件推送实现将记录数据的关键字段内容以文本形式向论文作者发送E-mail,其中字段内容可依据需求任意增减;可依据馆刊、主页数据要求进行格式统一后生成对应的Word文档;可生成三大索引收录本校论文检索系统数据库装库文件。

(5)统计模块实现按作者单位统计记录数据、错误数据及发送邮件数据的功能。

4 系统功能实现

考虑到系统的易用性和可维护性,系统开发采用基于Microsoft Excel 2003的VBA[ 1, 2]语言。系统无需安装任何程序,界面设计简单,操作方便,如图3所示:

图3 三大索引收录文献邮件推送服务系统界面

4.1 系统数据维护模块的实现

为了提高作者英文姓名模糊匹配中文姓名的准确率,必须保证读者数据的完整性,因此建立了“读者信息表”用来保存读者的个人信息,字段如表1所示:

表1读者信息表字段

读者信息表的数据维护包含两种方式:从图书馆自动化管理系统提取后批量导入;单条增加记录。读者信息导入后,在将读者中文姓名翻译为英文姓名时,需要考虑多音字情况。为了提高系统的匹配速度,将英文全拼姓名、英文简拼姓名分别存放在两个字段中。

4.2 记录数据浏览模块的实现

依据原始记录索引数据将记录的记录号、收录号、题名、作者姓名、作者单位、来源、期刊年卷期字段内容提取并显示在程序主窗口。

4.3 记录数据处理模块的实现

该模块是邮件推送服务系统的核心模块,其中的数据流以记录形式存在,如图4所示:

图4 系统的记录数据流

系统建立“原始数据记录表”用来保存原始记录数据,将定制下载的TXT文件导入系统中。为了实现数据记录的快速定位,在该工作表中建立记录数据的索引数据,即建立每条数据的记录号和该记录第一个字段所在行号的一一对应关系。

为了提高作者英文姓名匹配中文姓名的速度,将该模块分为全拼转换和缩写拼音,从而转换两个模块。在程序运行时,馆员可以通过作者英文姓名判断该姓名为缩写拼音或全拼拼音,从而选择相应的匹配模块。作者英文姓名匹配中文姓名需要调用正则表达式[ 3]过滤掉“名”中的非字母字符,如“.”和“-”等,然后以逗号为分隔符进行“姓,名”或者“名,姓”两种形式组合形成待检索英文姓名,从“读者信息表”中查找该姓名,并将其对应的中文姓名、作者以及E-mail信息显示在“可选中文姓名”文本框中。同时对于《科学引文索引》记录,按期刊ISSN号在SCI分区表中查找该期刊的SCI分区。部分关键代码如下:

myStrings = result(1) '过滤姓名中的非字母字符

With myReg

.IgnoreCase = False

.Global = True

.Pattern = "[a-zA-Z]"

Set Matches =.Execute(myStrings)

End With

Set myReg = Nothing

If Matches.Count = 0 Then

MsgBox "未找到匹配项!", vbInformation, "Excelhome"

Else

For Each oMatch In Matches

a1 = a1 & ch & oMatch

Next

End If

为了保证数据记录的输出和统计,建立以作者单位命名的“记录信息表”,增加记录后存放在作者单位对应的记录信息表中。建立作为邮件推送数据源的“邮件数据表”。“系统数据表”用于已处理记录数据的删除功能、记录数据增加的查重功能相关的系统数据存放。各数据表的字段如表2所示:

表2系统数据表、记录数据表、邮件数据表的字段

“邮件数据表”将一条记录以作者中文姓名拆分为多条记录。邮件数据表数据写入结果如图5所示:

图5 邮件数据表结果示意图

4.4 记录数据输出模块的实现

记录数据输出模块将转换后的记录数据以作者中文姓名排序后,实现从Excel文件转换为Word文件。具体实现中需要添加“Microsoft Word 11.0 Object Library”库的引用,声明与Word相关的对象变量,新建Word文档,调用Selection.TypeText方法将Excel文件中的选定内容写入Word文档。部分关键代码如下:

Set objWord = GetObject("Word.Application")

If Error Then Set objWord = CreateObject("Word.Application")

With objWord

.Visible = True

.Documents.Add

For i = 4 To 32

.Selection.TypeText Text:=Sheets("统计数据").Range("A" & i) & Sheets("统计数据").Range("B" & i) & Chr(10)

Next i

For j = 0 To 19 '写入各学院记录信息

If Sheets(Authoraffiliation(j)).Cells(1, 2).Value > 0 Then

.Selection.Font.Bold = True

.Selection.TypeText Text:=Chr(10) & Authoraffiliation(j) & "(" & Sheets(Authoraffiliation(j)).Cells(1, 2) & "篇)" & Chr(10)

.Selection.Font.Bold = False

For i = 2 To Sheets(Authoraffiliation(j)).Cells(65536, 1).End(xlUp).Row

Sheets(Authoraffiliation(j)).Activate

.Selection.TypeText Text:=Sheets(Authoraffiliation(j)).Range("A" & i) & Sheets(Authoraffiliation(j)).Range("B" & i) & Chr(10)

Next i

4.5 邮件推送模块的实现

邮件推送模块将记录数据的关键字段内容以文本形式向论文作者发送E-mail。邮件推送模块需借助Word邮件合并[ 4]功能实现,具体步骤如下:

(1)新建一空文档,点击菜单“工具”中“信函与邮件”的“邮件合并”命令项,打开该对话框。

(2)在邮件合并向导中的“选择文档类型”选项中选择“信函”项。

(3)在“选择开始文档中”选项中选择“当前文档项”。

(4)在“选择收件人”选项中选择“浏览”选项,选择系统中的“邮件数据表”作为收件人列表文件。

(5)撰写信函,即撰写邮件推送主文档,邮件推送主文档是一种特殊的Word文档,它决定着数据源生成推送邮件的输出格式,包括版面格式及字段输出等设置。邮件推送主文档除了包含日常邮件的常规内容外,还需要在文档的合适位置选择“其他项目”插入合并域,这些合并域可以是“邮件数据表”中包含的任何字段,如题名、作者以及单位等。

(6)预览信函,在配置完成Outlook后,选择“邮件合并”工作栏中的“合并到电子邮件”选项,Word启动Outlook发送邮件。邮件推送工作如图6所示:

图6 邮件推送工作示意图

5 结 语

高校图书馆作为学校的文献信息中心,服务模式已由传统的被动式服务,转变为“以读者为中心”、主动的、个性化的服务模式。三大索引收录文献邮件推送服务系统是西北工业大学图书馆实践主动服务和个性化服务的重点项目。系统建立后,邮件推送服务周

期从每季度缩短至每周,有效地节约了师生的查证时间,提高了馆员的工作效率,同时还扩大了图书馆的服务范围,为提升图书馆的整体服务品质做出了贡献。

除了已实现的功能外,系统还存在一些有待完善和扩展的地方,主要包括以下方面:

(1)提高查找速度,随着读者信息表数量的增大,为读者信息表建立索引数据,以保证匹配速度。

(2)保证“读者信息表”中读者信息的全面和准确是整个系统的关键,最有效的解决方法是将本系统与图书馆自动化管理系统的读者信息数据进行关联。

参考文献
[1] Excel Home. Excel VBA 实战技巧精粹[M]. 北京: 人民邮电出版社, 2008. [本文引用:1]
[2] 李政, 梁海英, 李昊. VBA应用基础与实例教程[M]. 北京: 国防工业出版社, 2005. [本文引用:1]
[3] Liger F, McQueen C, Wilton P. VB. NET字符串和正则表达式参考手册[M]. 康博译. 北京: 清华大学出版社, 2002. [本文引用:1]
[4] 邮件合并全攻略[EB/OL]. [2010-03-20]. http://club.excelhome.net/viewthread.php?tid=41488. [本文引用:1]