改进的RFID图书定位系统①
2021-08-02沈静萍孟文杰王政凯
沈静萍,孟文杰,王政凯
(中国石油大学(华东) 图书馆,青岛 266580)
RFID 盘点定位系统通过图书盘点来采集每本图书在书架上的位置信息,再将书架位置以图形的方式展示给读者,从而解决读者找书难的问题.目前采用RFID 技术的盘点定位系统有3 种方式,分别是动态智能RFID 书架、静态盘点机器人和静态人工盘点[1–5].鉴于智能RFID 书架和盘点机器人的高成本、高投入,高校图书馆基本上都采用静态的人工盘点定位模式.静态定位的准确性需要借助初次定位、馆藏盘点和图书顺架等工作来保证[6].需要投入大量的人力和时间来维护该系统精准有效的运行,因此在该模式下,图书的定位准确率会随着使用时间和书架的调整变得越来越低,用户体验感降低,而海量的图书重新定位又耗时耗力[7].这使得RFID 图书定位系统的应用和维护成本过高,很难将其应用到实际工作中.随着RFID 技术在高校的应用普及,RFID 定位系统的实际应用问题也成为一种普遍的存在,不仅没有解决读者找书难的问题,还造成了该项投资的浪费.为此,笔者深入研究本馆的RFID 图书定位系统,结合流通排架整架实操规程,对该系统的定位数据采集、数据库结构、定位计算方法进行二次开发改造,增加程序自动处理流程,减少人工参与度,大大降低了人工定位成本,取得了良好的实际应用效果.
1 RFID 图书定位流程和方法分析
以中国石油大学(华东)图书馆的RFID 图书定位系统为例.RFID 图书定位系统的流程与定位信息采集方法如图1.层架标编码如图2.
图1 RFID 图书定位系统定位流程
图2 层架标编码
1)定位数据采集
RFID 图书定位系统首先要进行图书定位信息的采集,通过扫描层架标读取层架标数据编码,再扫描该层架上的每一本图书,由此获得每一本在架图书的书架位置信息并写入数据采集终端数据库,人工核对无误后继续扫描下一个层架标和图书,直到整个书库采集完成,采集终端上传定位数据到定位服务器数据库中,同步更新数据,整个定位数据采集更新工作完成.每次倒架整架后都要重复该采集流程以保证图书定位数据的准确性.
2)定位信息查询显示
读者通过OPAC 检索页面检索到某图书,在检索结果页面的位置链接请求中发送该图书的条形码给图书定位服务应用程序,定位程序根据图书条形码找到图书的层架标位置编码,发送给图形显示模块进行3D 立体定位路线图的显示.如图3.
图3 3D 立体定位路线图
3)定位方法分析
定位数据的采集在RFID 定位系统中发挥着至关重要的作用,采集速度、采集精度和成本投入是图书定位数据采集系统可行性的关键指标[8].在首次完成图书定位数据采集后,为了确保图书定位数据的准确率,每次倒架、整架后需要重新进行定位数据的采集.这种“全书采集”的方法和手动同步更新数据的方式,造成了定位数据采集工作量大、系统维护困难.
2 RFID 图书定位系统改造设计
在分析RFID 定位系统流程和方法的基础上,结合实际工作规程,对原系统定位数据的采集方法、后台数据结构、同步更新数据等方面进行改造.改造后的RFID 图书定位系统如图4所示.
图4 改造后的RFID 定位系统
1)将全书定位改为首尾书区间定位
首尾书区间定位只需采集定位精度内的首书和尾书信息.比如,目前的RFID 定位系统能达到的最小精度是精确到一个书架的某一列的某一行,采用首尾书区间定位,只需用盘点定位终端扫描该层上的第一本书和最后一本书,不存在识别不到的问题,扫描的同时完成校准工作(确保下一个精度区间的最小索书号大于相邻的上一个精度区间的最大索书号),大大减少了定位数据采集工作量;如果定位精度扩大为一个书架的某一列,则只需要扫描该列的第一本书和最后一本书,定位数据采集的工作量可极大的降低.
2)改进图书定位映射方式
将以条形码为定位查询基准,改为以条形码为查询关键词,以索书号为定位计算基准.在研究RFID 图书定位数据库的时候发现数据库的图书定位信息表中只有条形码字段而没有索书号字段,定位数据的采集和查询全部通过条形码作为标识和检索关键字来实现.但是在实际的排架工作中,基本都是按照中图分类法从上到下从左到右按照索书号由小到大的顺序排列,因此只要确定层架定位精度要求内的首、尾索书号,在这段首尾闭区间内的索书号都位于该精度范围内,不需要采集该范围内的所有图书.索书号的比较和架位信息的更新工作都可交由程序来自动完成.
索书号的排序比较需要考察本馆的实际排架操作规程,我馆是按照中图分类法来排架的,在索书号中使用了字母和数字以及‘/’、‘-’、‘.’、‘(’、‘)’、‘#’几个常用的特殊字符,‘#’是我馆自己用的特殊标识,对排架不产生影响,因此除了需要对‘/’进行转换外,其他的字母、数字和特殊字符与二进制ASCII 表基本一致(如图5),计算机按照ASCII 表的顺序由小到大排序,因此不需要进行特殊处理.
图5 特殊字符处理
由图5可见‘/’符号与ASCII 表的排序顺序不符,因此在程序中将‘/’用‘!’来替换即可解决该问题.在Python 环境中进行验证,如图6.
图6 程序验证特殊字符排序
将索书号作为定位计算关键字,可以突破目前完全依赖盘点定位设备采集数据的限制,增加手动图书定位基准的增、删、改、查操作,平时小范围的整架、倒架操作之后,可以及时将变化的数据提交到图书定位系统的书架定位基准表,程序会自动更新图书定位信息,实时保持图书定位信息的准确性.
3)每天定时更新索书号和定位信息
为保证定位系统数据的准确性,程序每天定时更新索书号和定位信息.编写存储过程,每天把新入库的图书信息更新到定位数据库中,再与定位基准表的首尾书索书号比对,将书架定位数据添加到新入库图书的书架编号字段中.数据的更新全部由程序自动完成,不需要工作人员对新增图书做定位扫描工作.
3 RFID 定位系统改造实现
RFID 定位系统的改造采用B/S 模式,使用Python、Django 框架和Oracle 数据库开发Web 页面和后台改造程序.通过前端Web 页面对后台数据和程序的运行进行管理.
1)数据库表改造
① 创建定位基准信息表book_stan,如表1.
表1 定位基准信息表book_stan
② 创建书架区域信息表bookcats,我馆采用书库名称对书架区域进行分类,表结构如表2.
表2 书架区域信息表bookcats
③ 在RFID 定位系统定位信息表
BOOK_TRANSFORM中增加索书号字段CallNo,如果原BOOK_TRANSFORM 表中有冗余字段,可以直接把字段改为索书号字段.改造后的定位信息表包含的主要字段如表3.
表3 定位信息表BOOK_TRANSFORM
编写程序连接数据库,按照馆藏地点(把不需要盘点定位的图书排除,减少更新数据量,提高效率)把汇文数据库INDI_ACCT 表中的索书号和条码号取出放入临时表中,再将临时表和定位信息表BOOK_TRANSFORM合并更新定位信息表中CallNo 字段的值,条件是两表中的条码号相同.程序流程和运行结果如图7.
此程序只需要在改造初期运行一次,以后每天由存储过程自动更新当天新增加的数据即可.
2)定位基准表的数据导入
盘点定位终端的定位信息表是从RFID 定位系统数据库的定位信息表中同步过来的数据,数据表结构和定位系统数据库的表结构相同.
通过首尾书定位法对图书进行定位数据采集后,从盘点定位终端的定位信息表中读取属于同一个层架标的索书号,最大索书号用来更新book_stan 表的maxCallNo的值,最小索书号则用来更新minCallNo的值,同时更新Book_Location 字段的值为层架标位置编码,取层架标编码的前两位作为更新book_floor_ id 字段的值.定位基准表如图8.
图8 定位基准表
3)更新RFID 定位系统定位信息表BOOK_TRANSFORM
通过与定位基准表中的最大最小索书号比较,在这个闭区间之内并且位置信息字段BOOK_INDEX 与定位基准表中的BOOK_FLOOR_ID 属于同一个定位地点的索书号,将其对应的书架位置编号更新为定位基准表中该区间对应的书架位置编号.同样,使用合并记录的方法提高程序效率,数据库语句为:"MERGE INTO BOOK_TRANSFORM A USING (SELECT BOOK_LOCATION,MINCallNO,MAXCallNO,BOOK_FLOOR_ID AS LOCNAME FROM book_stan) B on(A.BOOK_INDEX=B.LOCNAME AND replace(A.BOOK_ISBN,'/','!') BETWEEN replace(B.MINCallNO,'/','!') and replace(B.MAXCallNO,'/','!')) WHEN MATCHED THEN UPDATE SET A.BOOK_PLACE=B.BOOK_LOCATION.
4)Web 网页制作
网页采用Python的Web 框架Django和Oracle 数据库开发.通过MVT 模型,创建数据库modles,前台页面模板html 文件以及Python 应用程序views.初始页面展示图书定位基准查询表,登录后可通过“修改”链接手工进行定位基准的增、删、改、查操作.如图9、图10和图11.
图9 定位系统后台管理页面
图10 在汇文搜索结果页嵌入定位系统
图11 系统3D 图形定位导航页面
4 结语
随着信息技术在社会各领域应用的不断深入,越来越多的高校图书馆应用RFID 技术为读者提供更加便捷的服务、为图书馆员提供更加高效的管理手段.RFID 图书定位系统由于定位方法设计建立在理想条件下,使得维护工作量巨大,极大增加了馆员管理的负担,在实际应用中难以持续.然而RFID 技术在图书定位方面有着极大的潜力和优势,其现有的前后台程序都比较完善,只需对数据库设计和定位方法根据各馆实际进行改造就可重新焕发生机,开发周期短又避免重复建设.在RFID 盘点效率没有得到根本性改善、盘点机器人和智能书架无法全馆普及的当下,对现有定位系统进行改造无疑是最经济有效的选择.笔者本文中介绍的改造方法,在实际应用中运行稳定,效果良好,希望能给已经建设和将要建设RFID 项目的图书馆提供借鉴和参考.