基于文献定位的OPAC实时书架热力展示系统设计与实现①
2019-02-15罗文森安春玲
罗文森, 安春玲
(武汉轻工大学图书馆,湖北 武汉 430040)
0 引 言
OPAC(联机公共检索目录系统)采用简单的关键词匹配法来从数据库中查询目标信息反馈给读者,这种查询方式已经无法完美应对现代图书馆所需求的多资源关联查询要求,更不能跟上图书馆利用各自优势开发具有针对性新功能的形式。武汉轻工大学图书馆针对迎藏文献排架号(由《中图分类法》来制定的分类号和由该馆自定义的特殊字符和数字混合的方式制定的种次号所组成),自主研发基于文献细粒度定位的实时书架热力展示系统,为馆员合理分架策略提供科学支持。
1 设计思路和方案
实现图书馆OPAC实时书架热力展示系统需解决的核心问题有两点:
a.全馆书架的每一面图书均可按架面统计其借阅量。
b.每架面图书根据其借阅量实现红绿色阶梯渐变,并以显著色差显示。
针对问题a采用的设计思路如下:
要计算出每个书架的每一面图书总借阅量,那么必须定位每一本图书所在的具体书架的架面。为此文设计后台书架定位系统,该系统有书架定位设置和书架定位管理两大核心功能。
实现录入每一面书架的起止码即可监控全架面图书借阅动态的解决方案是:排架号以字符串存储于OPAC汇文oracle数据库中,比如《中国轻工业产供销信息大全:食品卷·焙烤食品糖制品分卷》这本书的排架号为F426.8-63/Z488:1,其中含有/.:-字母和数字六种字符。采用逐个替换排架号中特殊字符使其既符合本馆自定义馆藏编号的排序规则,又符合计算机可读的ASCII编码顺序规则的算法使得复杂字符型排架号可以按照真实馆藏排序顺序逐一在计算机端排列实现,这就提供了控制每面书架的起止码即可监控全架面文献的可能。南京师范大学图书馆也对该算法有所研究[1],不过使用场景不尽相同,整体设计方案如下图1所示。
图1 OPAC实时书架热力展示系统方案设计图
针对问题b采取的解决方案如下:
实现每书架随着总借阅量的大小而呈现红色到绿色的阶梯变色,则需要用到RGB色彩模式,该模式包含人类视力所能感知的所有色彩,它是通过对红、绿、蓝三色分别调整其亮度,三种亮度值最终组合而成一种颜色。将红色色值用R表示,绿色色值用G表示,蓝色色值用B表示。将该面颜色的每一种色值与该面文献总借阅量建立一种对应关系,使得每一种色值均随着借阅量不同而产生对应的变化,即可形成每书架总借阅量不同颜色可以呈现阶梯变换的效果[2]。具体的借阅量与具体颜色之间建立的对应关系,称之为rgb色域编码算法。
2 系统设计与实现
系统采用当下较为流行的B/S浏览器服务器的组合开发模式,C#语言和sql server数据库的环境,配置在虚拟机服务器上,操作系统为windows 2008服务器版。根据不同的使用场景,也可方便与其他系统集成,也可单独使用。系统实现的两个关键算法即为排架号可计算算法与RGB色域编码算法。前者辅助完成全馆实体文献与书架排面在电脑端一一对应关系,后者辅助完成在电脑端以红绿渐变色的方式实时展现书架热力。
2.1 后台书架定位功能设计与实现
2.1.1 字符排架号的数据转化算法
文献排架号有前部分类号和后部种次号构成。两部分均有以下字符部分构成:数字0-9,大写字母A-Z,小写字母a-z,特殊字符/-.(=。分类号部分排序顺序为: / : - ( = .该顺序在ascii中的十进制顺序为47、58、45、40、61、46,显然不符合计算机排序。为了解决此问题,采用逐个替换方法,将不符合计算机排序的特殊字符逐一挑出,按照从小到大的序列替代为符合ascii码表的特殊字符。以分类号部分的特殊字符替换为例,如下表1所示。
表1 排架号中分类号特殊字符替换表
首先从起始排架号中提取起始分类号:
update booklocation set cnstart=left(snstart,charindex('/',snstart+'/')-1),cnend=left(snend,charindex('/',snend+'/')-1)
将提起的分类号中特殊字符按照表1中分类号替换规则进行字符变更处理,语句如下:
update booklocation set cnstart=upper(replace(replace(replace(replace(cnstart,'/','!'),':','#'),'-','$'),'=','*')), cnend=upper(replace(replace(replace(replace(cnend,'/','!'),':','#'),'-','$'),'=','*'))
至此,分类号中的特殊字符替换完成,种次号中的特殊字符也按照相同原理进行替换。最终将汇文OPAC系统的oracle数据库中字符型排架号转换为既符合计算机运算规则同时也符合馆藏规则的排架号存储于文献定位系统的sql server数据库中,为书架定位设置与管理系统提供支持。
2.1.2 书架定位设置与管理系统
为使实体文献馆藏地址与书架定位系统中的文献地址一致,图书馆需在第一次搭建该系统时,图书馆员需为全馆每一书架制作架标,张贴于每一书架侧面。架标中标注该架图书所在区域、架号、起止分类号、二维码等信息,方便读者通过在线显示的地址直接定位该书架查找目标书目,同时也方便图书馆员根据实地架标来维护书架定位系统。图书馆员需要根据每一书架的实地架标,在书架定位系统中设置该书架的位置,包括添加、删除、修改分馆、楼层、分区、书架号和架面,使书架定位系统中的每一书架与实地书架两边均一一对应。做完该工作之后,则为系统中全馆每一书架的每一面添加文献起止码。由于sql server数据库中已经存储了按照正确馆藏顺序排列的排架号,则每架面的起止码一旦固定,该架的全部图书和图书顺序均已确定。至此,该系统的搭建工作已经完成,如果汇文OPAC系统中有新书添加进来,则定时更新整个sqlserver数据库,使得该库图书总量与汇文数据库一致[3]。如果图书馆员根据馆藏需要进行倒架、倒库等操作,则馆员根据倒架、倒库实际情况实时更新书架定位系统。总之,时刻保证书架定位系统与oracle数据库和实际馆藏一致,才能保证前台书架热力图的展示是实时性、真实性。
2.2 前台实时书架热力展示功能设计与实现
2.2.1 RGB色域编码算法
热力图中每架面的颜色随着借阅量呈红绿色动态渐变,给人非常直观的感受。要实现颜色渐变与架面文献借阅量之间关联,则需要了解RGB色彩模式。人类视力所能感知的所有颜色,均由红、绿、蓝三色的明暗强度不同而组合成的。明暗强度用0-255的十进制表示。设其中一种颜色为C,在、则C颜色定义公式如下:
C=RGB(Red As integer,Green As integer,Blue As integer)
(1)
其中: RGB为颜色函数; Red为红色明暗强度,其取值范围0-255; Green为绿色明暗强度,其取值范围0-255; Blue为蓝色明暗强度,其取值范围0-255;Integer为整数类型,取值范围0-255。比如,C=RGB(255,255,0)表示黄色。
设某层楼某区m排面总借阅数为Sm。Sm的计算表达式如下:
(2)
其中:{Si}是一个序列,它表示本架面第i本书在某段时间内的借阅量总和的序列i=1,2,3,…,n,S1为架面第一本书借阅量,Sn为本架面最后一本书的借阅量;m取值为A,B代表书架的A面,B面。
定义
(3)
(4)
Blue=51
(5)
其中:Smax表示全馆书架的架面中借阅量最大的峰值。
公式(5)表示Blue取常数51,这是因为本系统所需要的核心颜色是红绿色之间的渐变而非蓝色,经过多次系统调试发现,取51色值可以使得系统整体颜色较为饱满,更加美观。
至此,每一面书架应该表现的颜色与该面借阅量之间建立一一对应的联系,这种算法可以实现面架颜色随着借阅量呈现红绿色阶梯渐变的效果。
2.2.2 实时区域虚拟书架热力展示模块
热力图界面采用简单易上手的C#语言,sql server数据库,B/S模式自主研发完成,最终效果如图2所示。
图2 实时书架借阅热力图界面
在界面的前端css文件中控制架面颜色的style中,将背景色做出如下定义:
style='background-color:rgb("&iif(Int(RsSQL(6)/ RsSQL(max)*255)>0,Int(RsSQL(6)/ RsSQL(max)*255),0)&","&iif(Int(RsSQL(6)/ RsSQL(max)*255)>0,255-Int(RsSQL(6)/ RsSQL(max)*255),255)&",51)'
其中,RsSQL(6)表示该架借阅总量查询结果,RsSQL(max)表示全馆架面借阅量最大值查询结果。
从图中可以清晰的看到,颜色越红表明借阅量越大,颜色越绿表明借阅量越小,这样的表达方式给人以更加直观和专业的感受。该系统成为一支独立的系统运行在图书馆的虚拟机中。同时该系统的数据库部分也经常被其他相关系统调用,或者借助该系统做成各种插件应用与其他系统辅助显示,这充分表明该系统存在的价值。
3 系统应用效果分析与推广
该实时书架热力展示系统则能提供每层楼每架的科学定量的精准数据指导文献管理、制定馆员合理分架策略,为每一位责任馆员提供更加公平的分配方式。该系统运行四年以来,得到好评。
图书馆由于场地限制,一个书库中可能有多类图书。在上图2的借阅热力图中,清晰可见部分书架是区域的“宠儿”,则另一些区域则备受冷落。管理员则可根据区域借阅热力图,对借阅量较少且文献价值较高的绿色区域文献进行区域性推广,对借阅量特别高的区域进行虚拟端热力展示、将此架部分图书单列宣传、书架旁边树立海报、放上阅读圆桌等。
此外该系统可以集成OPAC文献检索系统中辅助文献精准定位并运用在移动端馆藏检索中,也可以集成在图书馆FRID系统中弥补其文献空间信息应用拓展受限的缺陷,进一步实现虚拟空间到实体文献的互馈展示功能,或者利用系统中文献在计算中便捷重组的功能协助图书馆提供专题虚拟书架特色服务。系统小而精,方便与其他大系统集成或者独立成小系统,运用于图书馆的各个方面。
4 结 语
实时书架热力图展示系统作为图书馆工作的辅助工具为图书馆带来便捷与精确的服务。这种低成本自主研发系统为各位读者与馆员带来意想不到的便捷效果,希望文中系统的设计研发能为图书馆界其他亟待解决的问题提供借鉴意义。