孫 發,曾為眾,葉 蔚
大多數讀者對館藏圖書分布和排架規則缺乏了解,單憑索書號比對無法快速定位圖書,利用圖書定位系統能有效解決讀者找書難的問題[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節精度圖書定位顯示界面
國內圖書館仍以條形碼管理模式為主,定位數據采集系統存在圖書定位數據人工采集總量過大和圖書定位顯示高準確率難保持等問題,使圖書定位系統在條形碼圖書館難以推廣應用。為此,通過軟件技術,從降低人工采集精度、二次虛擬采集和定位顯示精度調整等方面進行系統整體優化,通過系統測試和數據分析,證明了系統優化的有效性,能有效解決當前圖書定位系統的應用推廣主要障礙。文章進一步探討采集精度和定位顯示精度方案選擇路徑、采集更新采集操作時機判斷和定位顯示精度調整方法等應用細節。在下一步研究工作中,將在圖書定位數據采集方式方面作進一步研究,以進一步提升系統采集效率。