羅文森, 安春玲
(武漢輕工大學(xué)圖書館,湖北 武漢 430040)
OPAC(聯(lián)機(jī)公共檢索目錄系統(tǒng))采用簡單的關(guān)鍵詞匹配法來從數(shù)據(jù)庫中查詢目標(biāo)信息反饋給讀者,這種查詢方式已經(jīng)無法完美應(yīng)對現(xiàn)代圖書館所需求的多資源關(guān)聯(lián)查詢要求,更不能跟上圖書館利用各自優(yōu)勢開發(fā)具有針對性新功能的形式。武漢輕工大學(xué)圖書館針對迎藏文獻(xiàn)排架號(由《中圖分類法》來制定的分類號和由該館自定義的特殊字符和數(shù)字混合的方式制定的種次號所組成),自主研發(fā)基于文獻(xiàn)細(xì)粒度定位的實(shí)時書架熱力展示系統(tǒng),為館員合理分架策略提供科學(xué)支持。
實(shí)現(xiàn)圖書館OPAC實(shí)時書架熱力展示系統(tǒng)需解決的核心問題有兩點(diǎn):
a.全館書架的每一面圖書均可按架面統(tǒng)計其借閱量。
b.每架面圖書根據(jù)其借閱量實(shí)現(xiàn)紅綠色階梯漸變,并以顯著色差顯示。
針對問題a采用的設(shè)計思路如下:
要計算出每個書架的每一面圖書總借閱量,那么必須定位每一本圖書所在的具體書架的架面。為此文設(shè)計后臺書架定位系統(tǒng),該系統(tǒng)有書架定位設(shè)置和書架定位管理兩大核心功能。
實(shí)現(xiàn)錄入每一面書架的起止碼即可監(jiān)控全架面圖書借閱動態(tài)的解決方案是:排架號以字符串存儲于OPAC匯文oracle數(shù)據(jù)庫中,比如《中國輕工業(yè)產(chǎn)供銷信息大全:食品卷·焙烤食品糖制品分卷》這本書的排架號為F426.8-63/Z488:1,其中含有/.:-字母和數(shù)字六種字符。采用逐個替換排架號中特殊字符使其既符合本館自定義館藏編號的排序規(guī)則,又符合計算機(jī)可讀的ASCII編碼順序規(guī)則的算法使得復(fù)雜字符型排架號可以按照真實(shí)館藏排序順序逐一在計算機(jī)端排列實(shí)現(xiàn),這就提供了控制每面書架的起止碼即可監(jiān)控全架面文獻(xiàn)的可能。南京師范大學(xué)圖書館也對該算法有所研究[1],不過使用場景不盡相同,整體設(shè)計方案如下圖1所示。
圖1 OPAC實(shí)時書架熱力展示系統(tǒng)方案設(shè)計圖
針對問題b采取的解決方案如下:
實(shí)現(xiàn)每書架隨著總借閱量的大小而呈現(xiàn)紅色到綠色的階梯變色,則需要用到RGB色彩模式,該模式包含人類視力所能感知的所有色彩,它是通過對紅、綠、藍(lán)三色分別調(diào)整其亮度,三種亮度值最終組合而成一種顏色。將紅色色值用R表示,綠色色值用G表示,藍(lán)色色值用B表示。將該面顏色的每一種色值與該面文獻(xiàn)總借閱量建立一種對應(yīng)關(guān)系,使得每一種色值均隨著借閱量不同而產(chǎn)生對應(yīng)的變化,即可形成每書架總借閱量不同顏色可以呈現(xiàn)階梯變換的效果[2]。具體的借閱量與具體顏色之間建立的對應(yīng)關(guān)系,稱之為rgb色域編碼算法。
系統(tǒng)采用當(dāng)下較為流行的B/S瀏覽器服務(wù)器的組合開發(fā)模式,C#語言和sql server數(shù)據(jù)庫的環(huán)境,配置在虛擬機(jī)服務(wù)器上,操作系統(tǒng)為windows 2008服務(wù)器版。根據(jù)不同的使用場景,也可方便與其他系統(tǒng)集成,也可單獨(dú)使用。系統(tǒng)實(shí)現(xiàn)的兩個關(guān)鍵算法即為排架號可計算算法與RGB色域編碼算法。前者輔助完成全館實(shí)體文獻(xiàn)與書架排面在電腦端一一對應(yīng)關(guān)系,后者輔助完成在電腦端以紅綠漸變色的方式實(shí)時展現(xiàn)書架熱力。
2.1.1 字符排架號的數(shù)據(jù)轉(zhuǎn)化算法
文獻(xiàn)排架號有前部分類號和后部種次號構(gòu)成。兩部分均有以下字符部分構(gòu)成:數(shù)字0-9,大寫字母A-Z,小寫字母a-z,特殊字符/-.(=。分類號部分排序順序為: / : - ( = .該順序在ascii中的十進(jìn)制順序為47、58、45、40、61、46,顯然不符合計算機(jī)排序。為了解決此問題,采用逐個替換方法,將不符合計算機(jī)排序的特殊字符逐一挑出,按照從小到大的序列替代為符合ascii碼表的特殊字符。以分類號部分的特殊字符替換為例,如下表1所示。
表1 排架號中分類號特殊字符替換表
首先從起始排架號中提取起始分類號:
update booklocation set cnstart=left(snstart,charindex('/',snstart+'/')-1),cnend=left(snend,charindex('/',snend+'/')-1)
將提起的分類號中特殊字符按照表1中分類號替換規(guī)則進(jìn)行字符變更處理,語句如下:
update booklocation set cnstart=upper(replace(replace(replace(replace(cnstart,'/','!'),':','#'),'-','$'),'=','*')), cnend=upper(replace(replace(replace(replace(cnend,'/','!'),':','#'),'-','$'),'=','*'))
至此,分類號中的特殊字符替換完成,種次號中的特殊字符也按照相同原理進(jìn)行替換。最終將匯文OPAC系統(tǒng)的oracle數(shù)據(jù)庫中字符型排架號轉(zhuǎn)換為既符合計算機(jī)運(yùn)算規(guī)則同時也符合館藏規(guī)則的排架號存儲于文獻(xiàn)定位系統(tǒng)的sql server數(shù)據(jù)庫中,為書架定位設(shè)置與管理系統(tǒng)提供支持。
2.1.2 書架定位設(shè)置與管理系統(tǒng)
為使實(shí)體文獻(xiàn)館藏地址與書架定位系統(tǒng)中的文獻(xiàn)地址一致,圖書館需在第一次搭建該系統(tǒng)時,圖書館員需為全館每一書架制作架標(biāo),張貼于每一書架側(cè)面。架標(biāo)中標(biāo)注該架圖書所在區(qū)域、架號、起止分類號、二維碼等信息,方便讀者通過在線顯示的地址直接定位該書架查找目標(biāo)書目,同時也方便圖書館員根據(jù)實(shí)地架標(biāo)來維護(hù)書架定位系統(tǒng)。圖書館員需要根據(jù)每一書架的實(shí)地架標(biāo),在書架定位系統(tǒng)中設(shè)置該書架的位置,包括添加、刪除、修改分館、樓層、分區(qū)、書架號和架面,使書架定位系統(tǒng)中的每一書架與實(shí)地書架兩邊均一一對應(yīng)。做完該工作之后,則為系統(tǒng)中全館每一書架的每一面添加文獻(xiàn)起止碼。由于sql server數(shù)據(jù)庫中已經(jīng)存儲了按照正確館藏順序排列的排架號,則每架面的起止碼一旦固定,該架的全部圖書和圖書順序均已確定。至此,該系統(tǒng)的搭建工作已經(jīng)完成,如果匯文OPAC系統(tǒng)中有新書添加進(jìn)來,則定時更新整個sqlserver數(shù)據(jù)庫,使得該庫圖書總量與匯文數(shù)據(jù)庫一致[3]。如果圖書館員根據(jù)館藏需要進(jìn)行倒架、倒庫等操作,則館員根據(jù)倒架、倒庫實(shí)際情況實(shí)時更新書架定位系統(tǒng)??傊?,時刻保證書架定位系統(tǒng)與oracle數(shù)據(jù)庫和實(shí)際館藏一致,才能保證前臺書架熱力圖的展示是實(shí)時性、真實(shí)性。
2.2.1 RGB色域編碼算法
熱力圖中每架面的顏色隨著借閱量呈紅綠色動態(tài)漸變,給人非常直觀的感受。要實(shí)現(xiàn)顏色漸變與架面文獻(xiàn)借閱量之間關(guān)聯(lián),則需要了解RGB色彩模式。人類視力所能感知的所有顏色,均由紅、綠、藍(lán)三色的明暗強(qiáng)度不同而組合成的。明暗強(qiáng)度用0-255的十進(jìn)制表示。設(shè)其中一種顏色為C,在、則C顏色定義公式如下:
C=RGB(Red As integer,Green As integer,Blue As integer)
(1)
其中: RGB為顏色函數(shù); Red為紅色明暗強(qiáng)度,其取值范圍0-255; Green為綠色明暗強(qiáng)度,其取值范圍0-255; Blue為藍(lán)色明暗強(qiáng)度,其取值范圍0-255;Integer為整數(shù)類型,取值范圍0-255。比如,C=RGB(255,255,0)表示黃色。
設(shè)某層樓某區(qū)m排面總借閱數(shù)為Sm。Sm的計算表達(dá)式如下:
(2)
其中:{Si}是一個序列,它表示本架面第i本書在某段時間內(nèi)的借閱量總和的序列i=1,2,3,…,n,S1為架面第一本書借閱量,Sn為本架面最后一本書的借閱量;m取值為A,B代表書架的A面,B面。
定義
(3)
(4)
Blue=51
(5)
其中:Smax表示全館書架的架面中借閱量最大的峰值。
公式(5)表示Blue取常數(shù)51,這是因為本系統(tǒng)所需要的核心顏色是紅綠色之間的漸變而非藍(lán)色,經(jīng)過多次系統(tǒng)調(diào)試發(fā)現(xiàn),取51色值可以使得系統(tǒng)整體顏色較為飽滿,更加美觀。
至此,每一面書架應(yīng)該表現(xiàn)的顏色與該面借閱量之間建立一一對應(yīng)的聯(lián)系,這種算法可以實(shí)現(xiàn)面架顏色隨著借閱量呈現(xiàn)紅綠色階梯漸變的效果。
2.2.2 實(shí)時區(qū)域虛擬書架熱力展示模塊
熱力圖界面采用簡單易上手的C#語言,sql server數(shù)據(jù)庫,B/S模式自主研發(fā)完成,最終效果如圖2所示。
圖2 實(shí)時書架借閱熱力圖界面
在界面的前端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)表示該架借閱總量查詢結(jié)果,RsSQL(max)表示全館架面借閱量最大值查詢結(jié)果。
從圖中可以清晰的看到,顏色越紅表明借閱量越大,顏色越綠表明借閱量越小,這樣的表達(dá)方式給人以更加直觀和專業(yè)的感受。該系統(tǒng)成為一支獨(dú)立的系統(tǒng)運(yùn)行在圖書館的虛擬機(jī)中。同時該系統(tǒng)的數(shù)據(jù)庫部分也經(jīng)常被其他相關(guān)系統(tǒng)調(diào)用,或者借助該系統(tǒng)做成各種插件應(yīng)用與其他系統(tǒng)輔助顯示,這充分表明該系統(tǒng)存在的價值。
該實(shí)時書架熱力展示系統(tǒng)則能提供每層樓每架的科學(xué)定量的精準(zhǔn)數(shù)據(jù)指導(dǎo)文獻(xiàn)管理、制定館員合理分架策略,為每一位責(zé)任館員提供更加公平的分配方式。該系統(tǒng)運(yùn)行四年以來,得到好評。
圖書館由于場地限制,一個書庫中可能有多類圖書。在上圖2的借閱熱力圖中,清晰可見部分書架是區(qū)域的“寵兒”,則另一些區(qū)域則備受冷落。管理員則可根據(jù)區(qū)域借閱熱力圖,對借閱量較少且文獻(xiàn)價值較高的綠色區(qū)域文獻(xiàn)進(jìn)行區(qū)域性推廣,對借閱量特別高的區(qū)域進(jìn)行虛擬端熱力展示、將此架部分圖書單列宣傳、書架旁邊樹立海報、放上閱讀圓桌等。
此外該系統(tǒng)可以集成OPAC文獻(xiàn)檢索系統(tǒng)中輔助文獻(xiàn)精準(zhǔn)定位并運(yùn)用在移動端館藏檢索中,也可以集成在圖書館FRID系統(tǒng)中彌補(bǔ)其文獻(xiàn)空間信息應(yīng)用拓展受限的缺陷,進(jìn)一步實(shí)現(xiàn)虛擬空間到實(shí)體文獻(xiàn)的互饋展示功能,或者利用系統(tǒng)中文獻(xiàn)在計算中便捷重組的功能協(xié)助圖書館提供專題虛擬書架特色服務(wù)。系統(tǒng)小而精,方便與其他大系統(tǒng)集成或者獨(dú)立成小系統(tǒng),運(yùn)用于圖書館的各個方面。
實(shí)時書架熱力圖展示系統(tǒng)作為圖書館工作的輔助工具為圖書館帶來便捷與精確的服務(wù)。這種低成本自主研發(fā)系統(tǒng)為各位讀者與館員帶來意想不到的便捷效果,希望文中系統(tǒng)的設(shè)計研發(fā)能為圖書館界其他亟待解決的問題提供借鑒意義。