孙 发,曾为众,叶 蔚
大多数读者对馆藏图书分布和排架规则缺乏了解,单凭索书号比对无法快速定位图书,利用图书定位系统能有效解决读者找书难的问题[1]。图书定位系统由定位数据采集系统和定位显示系统组成,前者负责完成图书定位数据采集和定位数据库构建;后者通过对定位数据库的查询,将返回的目标图书定位数据作可视化定位显示输出。
定位数据采集系统是图书定位系统构建的关键,决定了定位显示的精准度。根据采集输入方式,可分为RFID定位数据采集系统和条形码定位数据采集系统。RFID采集一般采取“静态采集”方式对架位RFID标签和图书RFID标签进行非接触式捆绑读取,并通过采集系统将定位数据存入数据库,其采集速度快,是当前最有效的图书定位数据采集方式[2-3]。而条形码采集通常以“架节首书”方式对在架图书进行条形码扫描,并通过采集系统将图书分类号及位置数据等定位数据存入数据库,其采集过程包括取书、翻页、条形码扫描和图书归架等人工操作环节,采集速度相对较慢,但不需要其他额外成本投入[4]。
然而,上述两种定位数据采集系统都存在人工采集总量过大、定位显示高准确率难保持等问题,使得图书定位系统未能被广泛应用推广,其定位服务难以持续开展。而以条形码管理模式为主的国内图书馆,由于采集效率较低,其问题更为突出。为此,笔者以条形码图书定位系统为主要研究对象,在前期研究应用的基础上[5],从降低系统人工采集精度、定位数据二次虚拟采集和定位显示精度调整等三个方面进行系统整体优化,最终实现定位数据的高效采集和图书定位的精准显示,以解决条形码管理模式下的图书定位系统应用推广障碍,同时该优化方案也适用于RFID图书定位系统。
(1)定位显示精度需求。读者找书是通过图书索书号的比对,依次确定图书所在楼层、书架、书架正反面、架节和架格位置,其中架节和架格定位环节最为费时,仅限于书架导航的图书定位系统不能完全满足读者的图书定位精度需求,图书定位显示精度需要达到架节级别[6-7]。为确保用户良好体验,定位显示精度应在3节以内,读者无需移步即可在定位区域内找到图书。
(2)定位显示准确度需求。书库图书存在借阅、新增和剔旧等情况,为保证排架质量,工作人员会进行顺架、倒架等日常操作,图书位置会不断发生变化。因此,采集人员还需要及时进行图书定位数据的采集更新,使得定位数据与实际位置相一致,以确保图书定位系统保持较高的定位显示准确率。
在当前图书定位应用实践中,为尽量满足读者图书定位需求,定位数据采集普遍将书架每节首书作为人工采集点(即人工采集精度为“单节”),通过采集系统将图书分类号和位置数据等定位数据存入定位数据库(即定位数据精度等于人工采集精度,精度为“单节”),并以“单节”精度作图书定位显示。系统设计遵循“人工采集精度=定位数据精度=定位显示精度=单架节”的数据采集与定位显示模式。该模式能满足读者的图书定位精度需求,但存在两个问题:(1)采集工作总量大。“单节”人工采集精度产生巨大的采集工作量。以笔者单位茶山校区为例,校区馆藏图书总共79万余册,书架652排,共计4394列架节,完成一次馆藏图书定位数据采集需要对8788点进行采集(书架为双面,故N节书架需人工采集2N点)。由于条形码定位数据采集速度慢,采集总耗时长。以笔者单位原有采集系统为例,完成一次馆藏图书定位数据采集大约需要6个标准工作日。(2)定位显示高准确率难保持。相对于“2节”“3节”较低的图书定位显示精度,“单节”精度下的图书定位准确率下降速度更快,及时更新采集才能保持较高的图书定位数据准确率,而“单节”精度下的人工采集工作总量大,提高更新采集频次方案实施难度大。在实际应用中,常以牺牲定位显示准确率为代价,通过延长更新采集周期来减少更新采集次数,最终影响了图书定位服务的用户体验。
为解决当前系统所存在的采集工作总量大和定位显示高准确率难保持两大问题,本文打破“人工采集精度=定位数据精度=定位显示精度=单架节”的数据采集与定位显示模式,通过软件技术,围绕着保持定位数据的高精准度和减缓定位显示准确率下降速度两大目标,从降低人工采集精度、系统二次虚拟采集和定位显示精度调整等三个方面进行系统整体优化,最终实现较高的图书定位显示精准度。系统优化设计思路如图1所示。
“单节”精度下的人工采集工作总量过大,定位数据更新采集实施难度大。为此,新系统增加“隔节”“首中”“首书”等多个低精度采集选项,通过降低采集精度来减少人工采集工作量,让提高更新采集频次方案具有实际可操作性,以保持定位数据的高准确率。其中,“单节”精度是指对每列架节最上层架格的第一本书(下称“架节首书”)进行定位数据采集;“隔节”精度则隔空一列进行架节首书定位数据采集;“首中”精度是指对第一列架节首书和书架中间位置的架节首书进行定位数据采集;“首书”精度只对书架第一列架节首书进行定位数据采集。以N架节书架的一面为例,各精度采集点分布及总数如表1所示。
图1 系统优化设计思路
表1 各精度采集点分布及总数
由表1数据可知,人工采集工作量随采集精度降低而快速减少。此外,系统需支持精度切换功能,即采集人员在采集过程中可根据书库类型和书架架节数量等情况切换到合适精度。例如,对于样本书库等不流通书库,图书排架操作较少,采集人员可选择“单节”“隔列”等较高采集精度;对于流通书库,采集人员根据预期采集总量和更新周期等情况,酌情选择“隔列”“首中”“首书”等低采集精度;对于较多节数书架组成的书库,采集精度可选择“首中”“首书”等低采集精度。
现有模式下,人工采集精度决定了定位数据精度,单方面降低人工采集精度会同时降低定位数据精度和定位显示精度。为此,新系统设计增加了系统“二次虚拟采集”功能模块,即对“隔节”“首中”“首书”的非“单节”精度定位数据进行系统二次模拟采集,生成“单节”精度的图书定位数据。
图书定位系统性能优劣取决于图书定位的精度和准确率,系统设计应综合考虑定位显示的精度和准确率,从总体上提升用户体验。现有模式在定位显示精度上采用了较高的“单节”精度,但由于人工更新采集工作量过大,最终无法同时保持较高的定位显示准确率。
在满足读者对图书定位精度需求的前提下,为减缓定位显示准确率下降速度和弥补系统“二次虚拟采集”产生的数据误差,优化系统将定位显示精度由“单节”扩展为“2节”或“3节”,以实现较高的图书定位精准度。
图书定位数据采集系统由Flash图书定位数据采集界面、ASP后台页面、SQL程序和数据库组成,其中,“精度选择”“二次虚拟采集”为新增功能。系统结构如图2所示,系统业务流程图如图3所示。
图3 系统流程图
采集系统界面由Adobe Flash Professional CS5.5设计软件制作,新增“精度”组件,并对采集界面进行了布局优化。采集界面如图4所示。
图4 Flash图书定位数据采集界面
系统数据库采用Microsoft SQL Server,包含“采集书架”“图书定位”“图书简表”等表。“采集书架”表用于存储书架类型数据,“采集序号”字段定义书架采集顺序,系统管理员根据馆藏书架排架顺序依次赋值书架采集序号;“图书定位”表用于存储馆藏图书定位采集数据;“图书简表”用于计算虚拟采集点位置,数据从图书管理数据库中抽取,为了提高表数据更新效率,后续更新可根据历史数据导入时间追加新数据。表2和表3中的转换分类号是将图书分类号中的“/”“=”“-”“:”“.”“(”等字符依次替换为“!”“#”“$”“&”“,”“+”等字符而形成,目的是实现图书分类号排架顺序和ASCII值大小顺序相一致。
表2 采集书架
表3 图书定位
表4 图书简表
系统业务逻辑由Flash动态脚本程序、ASP后台页面程序和SQL程序共同实现。新系统对原有图书定位数据采集系统进行业务流程优化,新增“采集精度设置”“二次虚拟采集”“上一采集点”“下一采集点”等业务逻辑实现。其中,“采集精度设置”由采集界面组件及Flash动态脚本编程实现;“二次虚拟采集”是通过SQL SERVER查询分析器编写而成;“上一采集点”“下一采集点”为ASP后台页面程序。
3.3.1 ASP后台页面
在ASP后台页面的编程中,通过Request对象接收数据、SQL语句读写数据库和Response.Write对象方法返回数据。采集系统包含六个ASP后台页面,页面传入参数、返回参数和主要功能见表5。其中,“上一采集点”“下一采集点”为系统优化新增内容,其具体功能如下:(1)“上一采集点”ASP后台页面。当完成一面书架采集且不是首面书架时,通过该ASP后台页面将架面首节首书的分类号数据赋值给前一采集架面末节末格采集点,使得系统在减少一个人工采集点的同时,还让每面书架定位数据形成一个包含首节首书和末节末书的闭区间,以方便图书定位数据处理。以6层8节类型书架为例,当完成“floor_01._003._0._043”(1楼层3号架正面43架格)采集最后一个架格首书采集后,ASP后台页面会在数据库表中添加一条location为“floor_01._002._1._048”的新记录,并将“floor_01._003._0._001”首书分类号、转换分类号、采集时间等定位数据复制给该新记录。(2)“下一采集点”ASP后台页面。在完成一面书架采集时,该ASP后台页面被调用,查询返回下一个采集点位置数据给Flash采集界面动态脚本,并更新采集界面。
表5 ASP后台页面说明
3.3.2 低精度设置
在Flash动态脚本程序中,定义一个4维数组来存储在各个采集精度、书架层数和书架节数下的采集架格位置,架格分布规则如表1所示。精度为“单节”“隔节”“首中”“首书”等采集精度;书架层数分5层和6层两种;书架节数为1节到馆藏书架最大节数;在书架节数一维数组中存储着该书架采集架格位置数据,其中最后一个架格为非人工采集点,通过“上一采集点”ASP页面实现定位数据的系统自动赋值。以3节数书架为例,在各精度、层数下的采集架格分布如下:
例如,在“首书”精度下,6层3节类型书架首书进行采集时(即MODE为“603”),其首节首书架格采集位置的数组引用格式是JD_ARRAY[3][1][2][0](即“_001”)。
当采集人员切换精度时,系统会触发组件监听函数,根据当前采集书架类型和架面采集进度自动调取JD_ARRAY数组中相应的值,并更新采集界面。
3.3.3 二次虚拟采集
在完成馆藏图书定位数据的人工采集后,需要对非“单节”精度定位数据进行系统二次虚拟采集。“二次虚拟采集”程序由SQL SERVER查询分析器编写而成,以SQL文件形式保存在数据库服务器上,以备调用执行。
程序总体设计思路是依次对各楼层、架号和架面下的采集定位数据进行低精度识别和系统二次虚拟采集,其处理最小单位为架面定位数据。其总体流程如下代码所示:
其中,“架面定位数据二次虚拟采集”是整个程序设计实现的关键,其设计思路是依次对架面先后两条记录的位置数据作列差计算,当列差数大于1时(即精度大于1节),查询两条记录转换分类号之间的馆藏图书数据,并以图书均匀分布排架为计算模型,计算获得两条记录之间的虚拟采集点位置和分类号等定位数据。具体设计实现如图5所示。
图5 二次虚拟采集关键设计
图书定位系统由定位数据采集系统和定位显示系统组成,系统部署环境主要包括IIS服务器(供ASP文件和SWF文件网络访问)和SQL SERVER数据库服务器。定位数据采集系统为相对独立的软件系统,以可执行文件或Web访问方式运行;定位显示系统则以Flash OBJECT和EMBED标签代码形式嵌套到OPAC检索系统图书显示页面中。
选取类型为6层9节类型和6层7节类型组成的20排书架为采集样本,共计5万册图书,由一位采集人员分别在各精度下分别完成图书定位数据采集,并经系统“二次虚拟采集”处理后,生成“单节”精度的图书定位数据。
相关数据如表6所示,其中,“2节”是指将精度由单节扩展为2节,末节向左扩展1节,其余向右扩展1节;“3节”是指将精度由单节扩展为3节,首节向左、末节向右扩展2节,其余向左右各扩展1节;平均准确率计算公式如下:
其中,a为书架数量,j代表架面,b为架节数量,COUNTE(i,j,k)为单节精度下i排、j面、k列书架区间的图书数量,COUNTS(i,j,k)为其他低精度采集下i排、j面、k列书架区间图书与单节精度下图书相一致的图书数量。
表6 实验数据分析
通过表6数据分析可见,对照“单节”精度采集,低精度采集能成倍提高采集速度,精度越低采集速度越快;在定位数据准确度方面,“二次虚拟采集”会导致定位数据准确率有所下降,采集精度越低,定位数据准确率下降幅度越大;在定位显示精度调整方面,当定位显示精度扩展为“2节”时,定位数据平均准确率最低为92.64%,当定位显示精度扩展为“3节”时,定位数据平均准确率最低为99.48%。可见,通过调整定位显示精度,能有效弥补“二次虚拟采集”造成的定位数据准确率下降。
从采集速度、定位数据准确率和定位显示精度等因素综合考虑,测试书库存在六个可行性方案能同时满足较快的采集速度和较高定位显示精准度,即表6中标注序号所对应的采集精度与定位显示精度组合方案。其中,方案①(“隔节采集精度+单节精度定位显示”)定位显示精度最高,方案⑥(“首书采集精度+3节精度定位显示”)人工采集速度最快。
4.2.1 采集精度和定位显示精度方案选择
由表1数据和系统测试数据可知,当架节数N>3,“单节”“隔列”“首中”“首书”等精度的采集点数量比例为N∶N/2∶2∶1。书架节数越大,低精度采集速度提升越显著,但会造成定位数据准确率的下降。为此,针对类型差异书架书库,可依据4.1节中的实验方案,选取样本书架进行测试,在数据分析基础上,选出可行的采集精度和定位显示精度方案,并根据书库日常排架情况和采集人员精力等现实因素,进一步选择最佳方案。以笔者单位为例,测试书架书库排架、倒架操作比较频繁,更新采集频次较高,因此,选取表6中方案⑥作为该区域书库的最终执行方案。
4.2.2 书库更新采集操作
书库实施细排架和精排架是图书定位系统的应用前提条件,排架质量决定了定位数据和定位显示的实际准确度。无论是人工采集还是虚拟二次采集,其产生的定位数据都基于人工采集点数据。因此,书库、书架或架面的更新采集时机选择,需要根据排架引发的人工采集点变化情况总体而定,其与采集精度密切相关。以“首书”精度采集为例,定位数据准确度取决于架面首末图书分类号,只有架面第一本和最后一本书发生排架变化时(即架面或架间倒架操作),才需要进行更新采集操作。由于“首书”采集精度一般采用“3节”定位显示精度,架面中间图书排架移位对定位显示精准度影响很小。
4.2.3 定位显示精度调整
根据实验测试和方案选择,图书馆书库或书库区域存在不同的定位显示精度,为此,需优化图书定位显示系统,具体方法是:(1)“采集书架”表中新增“定位显示精度”字段,见表2;(2)定位数据查询ASP后台页面中,将原有“查询取得图书所落入书架架层区间的起止两条定位数据”业务逻辑实现的基础上,截取起止任意一条记录的书架位置数据,并查询“采集书架”表获取书架的定位显示精度,根据定位显示精度值,通过记录集指针移动,调整起止记录并返回。以笔者单位“首书人工采集精度+图书定位显示3节精度”方案为例,其定位显示系统显示界面如图6所示。
图6 3节精度图书定位显示界面
国内图书馆仍以条形码管理模式为主,定位数据采集系统存在图书定位数据人工采集总量过大和图书定位显示高准确率难保持等问题,使图书定位系统在条形码图书馆难以推广应用。为此,通过软件技术,从降低人工采集精度、二次虚拟采集和定位显示精度调整等方面进行系统整体优化,通过系统测试和数据分析,证明了系统优化的有效性,能有效解决当前图书定位系统的应用推广主要障碍。文章进一步探讨采集精度和定位显示精度方案选择路径、采集更新采集操作时机判断和定位显示精度调整方法等应用细节。在下一步研究工作中,将在图书定位数据采集方式方面作进一步研究,以进一步提升系统采集效率。