馆藏书目信息自助短信推送服务的设计与实现
周虹, 张蓓, 姜爱蓉, 张成昱
清华大学图书馆 北京 100084
摘要

清华大学图书馆为了更好地利用新技术服务读者,推出馆藏书目信息自助短信推送服务。该服务通过在OPAC网页上进行信息抽取,自建网页采集读者手机号码,建立结构化数据库,利用“企信通”短信平台的数据库同步功能,实现将读者需要的书目信息发送到指定的手机终端的功能。

关键词: 信息抽取; 信息推送; 短信服务; 读者服务
中图分类号:TP393
Design and Implementation of Library Bibliography Information Self SMS Push Service
Zhou Hong, Zhang Bei, Jiang Airong, Zhang Chengyu
Tsinghua University Library,Beijing 100084,China
Abstract

In order to give a better service to patrons by new technologies, Tsinghua University Library supplies library bibliography information self SMS push service, which is based on the information extraction of OPAC,the collection of patrons’mobile phone number by self-building Web page, the building of structured database, and the database synchronization feature of “Qixintong” SMS system.

Keyword: Information extraction; Information push; SMS service; Patron service
1 引言

在书库主要为闭架管理的时代,抄写了书籍信息的索书单是让管理员入库寻找图书的依据[ 1]。到了大量图书开架管理、书目信息通过书目联机查询系统(OPAC)提供查询和浏览的今天,读者自己入库提取书籍时,也需要抄写或打印纸质的索书单以方便查找。但是,这种抄写或打印索书单的方式费时费力,如何利用现有的先进技术,设计出符合读者需求的服务功能,是图书馆工作人员思考的问题。

对读者抄写或者打印索书单的行为进行分析,该行为完全可以抽象成一个信息抽取的过程,能够由机器模拟产生。近几年,与信息抽取技术密切相关的信息推送服务正在兴起,具体表现为根据用户的兴趣和需求,利用网络、通信等技术手段,将用户订制的信息主动推送给用户的服务[ 2]。社会网站中这样的应用很多,例如搜房网[ 3]等房地产信息网站,提供用户自助推送房源信息短信到指定手机的功能。然而根据调研,国内图书馆在OPAC服务方面还没有实现类似的应用。因此,基于上述分析、结合现有技术条件,清华大学图书馆率先推出了馆藏书目信息自助短信推送服务,用来取代人工抄写或打印索书单的操作,旨在更方便、快捷地满足读者的需要。这种利用现有网络通信技术进行的特定信息推送服务,与OPAC相结合,也是将Mashup理念引入图书馆系统,更好地促进图书馆主动服务开展的具体体现[ 4]

2 设计思路和方案

典型的信息抽取系统包括三大过程:预处理过程、命名实体探测过程和事件探测过程[ 5]。其中预处理过程是信息抽取的前提,通过预处理,可以将文本分解成有一定意义的语言片段,并对这些语言片段进行标记,使文本能够被转换成为更易于信息抽取系统处理的模式。命名实体探测过程实现对命名实体的探测,并建立起实体之间的联系。事件探测过程是在命名实体探测过程基础之上,抽取某一事件中的事件信息,并将事件信息与实体相关联,构造出事件的概貌。

具体到馆藏书目信息自助短信推送服务,参照信息抽取系统原型,首先要解决模拟人工抄写或打印索书单的信息抽取问题,然后再实现利用短信推送抽取信息的操作。具体的设计方案包括三个环节,如图1所示:

图1 馆藏书目信息自助短信推送服务实现过程

(1)对OPAC书目信息进行提取并生成触发后续操作的网页链接;

(2)建立Web服务,通过网页形式采集接收推送短信的手机终端号码,并且将OPAC信息与手机号码进行信息整合,生成结构化的数据内容,为短信推送做准备;

(3)短信推送部分,建立短信发送队列,定时发送短信。

通常对于特定的书目信息提取,一般使用书目数据库提供的API抽取信息,或者采取直接从网页进行信息提取的方式。由于本馆使用的INNOPAC/Millennium系统不支持通过API方式提供书目信息的功能,因此需要采用基于网页页面分析技术,从OPAC页面提取所需书目信息的方式。对于读者接收短信的手机号码则通过单独建立网页,让读者自助填写的方式来采集。

对于短信推送环节,本馆采用了中国移动信息机提供的“企信通”平台来实现。自2007年开始,清华大学图书馆通过“企信通”平台实现了流通通知短信提醒、服务热线短信查询等一系列业务,积累了一定的工作基础。在提出要实现馆藏书目信息自助短信推送服务的想法时,考虑到保护信息机底层数据的安全和未来原始数据在WAP、彩信等服务中的可复用性,确定采用数据同步获取短信推送列表的方案,即分别建立远程数据库和本地数据库,通过“企信通”平台的“数据同步”功能,按照既定的同步策略,实现抽取信息到短信推送列表的数据同步。最后建立短信发送业务,将数据定向发送到指定的手机终端。

3 具体实现

根据设计思路和方案,馆藏书目信息自助短信推送服务功能的实现包括三个模块:OPAC信息提取模块、待发短信采集模块以及短信推送模块。其具体实现如下:

3.1 OPAC信息提取模块

本馆使用的INNOPAC/Millennium系统不提供可由其他程序调用的书目记录输出API,要获取OPAC上的书目信息只能采取页面分析方式进行。OPAC检索结果页面的显示由动态输出和静态页面元素两者构成,并不是单纯的动态生成页面,可以对动态输出结果的位置进行调整或者预测。但是,OPAC查询结果最终生成的是HTML页面,不具备可扩展标记语言(XML)那样严格、清晰的文件结构。因此在生成检索结果页面的过程中,需要针对各项书目信息预先设置提取操作开始和结束的标记。通过对这些标记和页面样式的分析,利用正则表达式,完成对书名、作者、馆藏地点和索书号等书目信息的提取。

当书目信息提取完成后,还需要一个触发机制来实现后续的服务。具体实现方式是在OPAC检索结果页面上加入一个“发送短信”链接,通过点击链接,发起一个HTTP请求,将已经分析提取出来的书目信息传递给下一个模块。OPAC书目信息提取及触发超链接形成过程如图2所示。

图2 OPAC信息提取模块实现流程图

整个过程采用了在网页上嵌入JavaScript脚本来实现,具体的代码如下:

需要注意的是,目前广泛使用的各种浏览器对正则表达式的理解有微小的差异,因此为了适用于各主流浏览器,需要对各浏览器都进行测试,调试出通用于各浏览器的代码,以免造成部分用户无法使用的情况。

3.2 待发短信采集模块

待发短信采集模块是连接OPAC信息提取和短信推送模块的桥梁,通过建立独立的Web服务实现。该模块主要实现手机号码采集和待发短信内容整理两部分功能。手机号码采集是通过网页让读者自助填写实现的。由于手机号码采集页面已经独立于INNOPAC/Millennium系统,在页面的实现过程中需要重点考虑应用的安全性,确保短信服务的合规使用。在采集页面打开之前,通过调用request.getHeader("Referer"),对是否确实是来自于INNOPAC/Millennium系统的请求进行校验,屏蔽不合规范的请求。

采集页面响应OPAC信息提取模块的请求后,展示从OPAC页面中提取出来的书目信息,使读者对所需书目信息进行确认。但是为了防止信息篡改、利用信息机发送垃圾短信等行为的出现,采集页面不提供书目信息的编辑功能。当然,使用某些高级的网页分析工具还是可以修改网页信息,会给推送服务带来风险,因此最终提交的书目信息并不来源于采集页面上的书目信息展示元素,而是使用了服务器端的Session传递参数的机制,这样可以保证从采集页面提交上来的数据确实是来自INNOPAC/Millennium系统的书目数据。同时,自助填写手机号码为读者提供了灵活性,当然也带来了数据注入的风险,因此,在手机号码采集过程中,程序通过正则表达式匹配的方式,对其合法性进行了校验,正则表达式为:

/^[1]([3][0-9]{1}|50|51|52|53|55|56|57|58|59|80|82|85|86|87|88|89)[0-9]{8}$/g

待发短信内容整理是将书目数据和手机号码对应起来,经过整理,放入结构化的远程数据库中,为后续短信推送环节准备适合发送的数据列表,如表1所示:

表1 远程数据库的数据源格式

由于每条短信仅能容纳70个字,考虑到服务成本,在数据入库过程中需要对书目信息进行精简。以ISBN=9787121039751的图书为例,从信息抽取模块获得到的书目信息为“.NET 2.0面向对象编程揭秘.NET 2.0 mian xiang dui xiang bian cheng jie mi / 金旭亮著;中文科技图书借阅区;TP393.09 J813”。其中包含书名、作者、馆藏地和索书号,并以“;”分割。短信在发送时系统会自动增加短信发送时间、短信签名等内容,这样,大多数书目推送信息的长度都将远远超出70个字,短信发送条数以及由此产生的服务费用都会成倍增加,因此信息精简是必须进行的一项工作。考虑到读者入库提取书籍行为对于馆藏地和索书号的需求最为迫切,因此,在信息精简过程中重点保留了这两个字段的信息,以及部分书名信息给读者简单的提示。在具体实现上待发短信采集模块在获得书目信息之后,通过Java String类的indexOf、lastIndexOf、substring等方法,重新拼装信息,然后将精简信息存入远程数据库。精简信息如下:

精简信息=原始信息.substring(0,15)+"…"+馆藏地+索书号;

此外,网络传输速度、通讯信号等受环境影响,会导致短信延迟大约1分钟发送。为了避免读者在短时间内频繁提交请求、重复发送短信,在数据入库之前,基于数据比对完成数据校验,并给读者相应的提示,使其合理使用短信推送服务。主要代码如下:

//判断新提交的数据是否重复

select * from ms_book where number=@number and info=@info and datediff(s,inserttime,getDate())<60

// 如果重复,提示读者等待

strScript = "";

out.print(strScript);

3.3 短信推送模块

短信推送模块的功能是从待发短信采集模块获取短信推送列表,然后将短信发送到特定读者手机上。这一模块的功能实现都是基于中国移动信息机完成的。信息机上预装的“企信通”平台提供了较为丰富的功能和接口,可以实现逻辑较为复杂的短信业务。而信息机通过互联网与电信运营商的统一通信服务器连接,能够轻松实现大量短信的发送,如图3所示:

图3 短信推送模块实现流程图

本服务中短信推送的关键环节之一是产生短信推送列表。为了保证信息机底层数据的安全,同时考虑到书目信息将来以WAP、彩信等其他形式复用,因此短信推送模块没有直接操作信息机的本地数据库,而是以远程数据库作为中转,采用数据同步的方案产生短信推送列表。

在“企信通”平台上,首先应用“本地数据库”建立目的数据库;然后应用“数据库连接”建立数据源,实现与远程数据库的连接;最后通过数据同步功能,设置数据同步策略,包括设置同步字段对应关系、设置同步时间等,使得远程数据库的源数据字段和本地数据库的目的数据字段建立一一对应的关系,每分钟同步新的数据到信息机,建立短信发送队列,如图4所示:

图4 数据同步设置

建立了短信推送列表,还需要实现对短信发送动作的触发,这就涉及第二个关键环节——模板业务的定制。具体的模板业务定制过程如下:

(1)为新模板业务选择业务类型,这里选择“发送类”,即该业务是用于发送短信的。

(2)填写业务名称、业务说明、业务代码及维护用户等基本信息。

(3)将该业务与指定数据库进行连接,可以是本地数据库,也可以是远程数据库。这里连接到已经实现数据同步的本地数据库上。

(4)设置该业务的发送对象,这里的发送对象指定为当前业务连接的数据库中的number字段,即同步过来的手机号码。

(5)选择短信发送触发模式,这里选择有新的记录加入立即发送。

(6)设置短信发送内容的格式,这里要发送的内容就是精简后的书目信息。

4 应用效果展示

馆藏书目信息自助短信推送服务采用JSP、JavaScript等技术实现。当读者从INNOPAC/Millennium系统中查询到需要的馆藏,点击OPAC页面上的“发送短信”链接,数据经处理后会自动同步到信息机,推送服务将把动态生成的短信发送到读者指定的手机终端上,效果如图5所示:

图5 书目信息自助短信推送服务效果图

该服务于2010年10月正式发布,一经推出,受到广大师生好评,日平均使用量超过700人次,目前累积使用量近6万人次。

5 结语

清华大学图书馆馆藏书目信息自助短信推送服务是在馆内立项实验项目的基础上实现。由于是免费服务,出于对服务成本的考虑,目前通过IP限制,仅面向校内所有读者提供服务。该服务将OPAC书目信息与手机服务结合,替代了抄写或打印索书单来定位图书的行为,为读者带来更为环保、便捷的图书馆服务体验。未来本馆将不断完善该服务,例如实现服务与校外访问系统的链接,使得更多的图书馆读者可以享受到图书馆的新服务。

参考文献
[1] 王永胜, 赵庆禹. 图书馆应用索书单的思考[J]. 图书馆学研究, 1990(2): 67-68. [本文引用:1]
[2] 邱亚娜. 信息抽取在图书馆信息推送服务中的应用研究[J]. 图书馆工作与研究, 2011(1): 46-47, 55. [本文引用:1]
[3] 搜房网发送房源到手机[OL]. [ 2011-06-03]. 搜房网发送房源到手机[OL]. [2011-06-03]. http://esf.soufun.com/newsecond/Phone/fasong.aspx?. [本文引用:1]
[4] 姚飞, 窦天芳. 基于Mashup理念开展主动服务的探索与实践[J]. 图书馆建设, 2009(9): 57-60. [本文引用:1]
[5] 张智雄. 信息抽取技术及其在数字图书馆中的应用前景分析[J]. 现代图书情报技术, 2004(6): 1-5, 23. [本文引用:1]