路瑩 郝繼英 王紅軍
〔摘 要〕文章簡要介紹了開源軟件及其發(fā)展優(yōu)勢,分析并例舉了開源軟件在圖書館的典型應(yīng)用,指出開源軟件在圖書館應(yīng)用中應(yīng)注意的問題,并就如何選擇符合需求的開源軟件進(jìn)行了初步的分析。
〔關(guān)鍵詞〕開源軟件;數(shù)字圖書館;應(yīng)用
1 開源軟件及優(yōu)勢
1.1 開源軟件
開源軟件即開放源代碼軟件。區(qū)別于商業(yè)軟件和免費(fèi)軟件,開源軟件是基于通用性公開許可證(GPL,General Public License)等各種相關(guān)許可協(xié)議規(guī)范發(fā)布的軟件。其顯著特性是任何人不僅可以免費(fèi)自由獲得軟件的源代碼,還可以根據(jù)自身需要不同程度、不同方式地使用、復(fù)制、研究、改進(jìn)并重新發(fā)布源代碼[1]。
開源軟件起源于上世紀(jì)90年代,它倡導(dǎo)的是“自由、開放、共享”的開源精神。其低成本、開放自由、可靈活定制、公開透明、可消除軟件“后門”隱患等特點(diǎn),正好克服了成熟商業(yè)軟件購買費(fèi)用高、源代碼封閉、后續(xù)開發(fā)困難、可擴(kuò)展性差、不能滿足個(gè)性化需求的弊端,具有強(qiáng)大的創(chuàng)新性和發(fā)展動(dòng)力。隨著開源運(yùn)動(dòng)的深入,人們開始認(rèn)識(shí)與認(rèn)可開源理念,并積極投身于開源運(yùn)動(dòng)。他們關(guān)注開源、研究開源,并為開源軟件的發(fā)展做出自己的貢獻(xiàn),開源軟件項(xiàng)目的數(shù)量和開源系統(tǒng)的規(guī)模也隨之呈指數(shù)增長。其典型代表是Linux操作系統(tǒng),自1991年由芬蘭赫爾辛基大學(xué)的林納斯·托瓦茲開發(fā)以來,經(jīng)眾多軟件精英修改、完善,以其低成本、高品質(zhì)、安全穩(wěn)定等特性,形成對微軟視窗系統(tǒng)強(qiáng)有力的挑戰(zhàn),并已成功應(yīng)用于各個(gè)領(lǐng)域。
1.2 開源軟件獨(dú)特優(yōu)勢
1.2.1 節(jié)約軟件開發(fā)成本、縮短開發(fā)周期
開源軟件零許可證費(fèi)用,直接降低了軟件整體擁有成本。且開源軟件共享開發(fā)成果,避免重復(fù)建設(shè),能極大地縮短軟件系統(tǒng)開發(fā)實(shí)施周期。
1.2.2 軟件質(zhì)量性能優(yōu)越
開源軟件雖然免費(fèi),但優(yōu)秀的開源軟件往往能吸引大量的軟件高手,聚集群體的力量,使軟件性能不斷提升,保證了軟件的適用性和先進(jìn)性。
1.2.3 公開透明,安全性強(qiáng)
開源軟件開放、共享。能充分接受軟件使用者們的評(píng)審。軟件的漏洞、缺陷能夠被及時(shí)發(fā)現(xiàn)并進(jìn)行修補(bǔ),還可避免軟件“后門”的發(fā)生,具有比一般商業(yè)軟件更高的可靠性和安全性。
1.2.4 標(biāo)準(zhǔn)規(guī)范、可靈活定制
開源軟件開發(fā)、擴(kuò)展都必須遵循開放規(guī)范標(biāo)準(zhǔn),兼容性和互操作性強(qiáng)??筛鶕?jù)自己的實(shí)際情況進(jìn)行定制開發(fā)和功能擴(kuò)展。還可以進(jìn)行軟件本地化,以滿足特定區(qū)域的需求。
1.2.5 可學(xué)習(xí)性、創(chuàng)新性強(qiáng)
最流行的和被廣泛認(rèn)可的開源軟件往往是最有創(chuàng)意的軟件,社區(qū)化開發(fā)環(huán)境下,好的想法被大家共享。閱讀源代碼可了解軟件工作原理,豐富軟件開發(fā)經(jīng)驗(yàn),激發(fā)自主創(chuàng)新熱情。開發(fā)效率比在集中開發(fā)環(huán)境下反而要高許多。
2 圖書館開源軟件典型應(yīng)用
開源軟件打破組織邊界,徹底改變了軟件的開發(fā)模式,使持續(xù)創(chuàng)造出高品質(zhì)、安全、易用的軟件成為可能,是當(dāng)代信息技術(shù)產(chǎn)業(yè)發(fā)展的源動(dòng)力。如今開源軟件已不再僅限于Linux環(huán)境,基本上能跨躍所有操作系統(tǒng)的界限,遍布Web服務(wù)器、操作系統(tǒng)、瀏覽器、數(shù)據(jù)庫、電子郵件等諸多方面。使得軟件業(yè)經(jīng)歷著從技術(shù)、應(yīng)用到服務(wù)模式的深刻變革,連微軟也推出了自己的開源實(shí)驗(yàn)室。
不可避免,開源軟件也同樣深刻地影響著圖書館的發(fā)展建設(shè)。其中既包括Linux操作系統(tǒng)、Apache服務(wù)、MySQL數(shù)據(jù)庫、PHP程序設(shè)計(jì)語言等通用基本軟件;也包括Koha、OpenBiblio、Learning Access ILS等開源圖書館自動(dòng)化管理軟件;還包括知識(shí)倉儲(chǔ)、數(shù)字對象長期保存等數(shù)字圖書館專用軟件,比較典型的應(yīng)用有:
Dspace是由美國麻省理工學(xué)院圖書館與惠普實(shí)驗(yàn)室經(jīng)過2年多的合作研究,于2002年10月開發(fā)完成的[2]。旨在為麻省理工學(xué)院的教學(xué)科研人員提供保存、共享和檢索數(shù)字研究成果的平臺(tái),實(shí)現(xiàn)本校的電子研究成果穩(wěn)定長期地保存和共享。
DSpace遵循Mozilla協(xié)議基于BSD開放源代碼許可,是一個(gè)專門的數(shù)字資產(chǎn)管理系統(tǒng),是目前國內(nèi)外用于機(jī)構(gòu)存儲(chǔ)的比較成熟的、代表性創(chuàng)建工具。DSpace系統(tǒng)定義了社區(qū)、合集、條目、數(shù)字包和比特流5種數(shù)據(jù)模型,并采用DC元數(shù)據(jù)標(biāo)引數(shù)據(jù)模型為數(shù)字信息資源的存儲(chǔ)、索引、檢索、定位和利用提供良好的數(shù)據(jù)基礎(chǔ)。此外,DSpace系統(tǒng)支持OAI-PMH協(xié)議,通過OAI接口,可以實(shí)現(xiàn)系統(tǒng)元數(shù)據(jù)定期或不定期收割,加快數(shù)字資源傳播與利用。
DSpace系統(tǒng)結(jié)構(gòu)合理、標(biāo)準(zhǔn)規(guī)范、具有較為完善的功能和實(shí)用性、可擴(kuò)展性強(qiáng),不僅適用于單一數(shù)據(jù)庫建設(shè),也適用于跨組織的機(jī)構(gòu)存儲(chǔ),利用虛擬存儲(chǔ)技術(shù),還可以實(shí)現(xiàn)虛擬館藏等。是國內(nèi)外學(xué)術(shù)機(jī)構(gòu)普遍采用的機(jī)構(gòu)知識(shí)庫系統(tǒng)平臺(tái)。截止目前,在全球著名的開放獲取倉儲(chǔ)檢索網(wǎng)站OpenDOAR上登記收錄的2 000多個(gè)知識(shí)庫系統(tǒng)中,采用Dspace構(gòu)建的就有890多個(gè)。除麻省理工大學(xué)圖書館、紐約大學(xué)圖書館、美國國家航空和航天局外,我國被OpenDOAR收錄的中國科學(xué)院知識(shí)網(wǎng)格、中國西部環(huán)境及生態(tài)數(shù)據(jù)中心、廈門大學(xué)學(xué)術(shù)典藏庫都是采用DSpace構(gòu)建的[3]。
2.2 Lucene
Lucene是由Apache軟件基金會(huì)提供的一個(gè)開放源代碼的全文檢索開發(fā)包,包括完整的查詢引擎、索引引擎和部分文種的分析引擎。作為一個(gè)高性能的全文檢索引擎架構(gòu),Lucene為數(shù)據(jù)分析、管理、查詢、獲取提供了簡單、通用的應(yīng)用程序接口,便于嵌入各種系統(tǒng),使用戶在實(shí)際應(yīng)用中能快速建立起一整套全文檢索機(jī)制,實(shí)現(xiàn)全文索引和檢索[4]。
Lucene采用面向?qū)ο蟮脑O(shè)計(jì),體系架構(gòu)開放、藕合度低,易于二次開發(fā)。支持字段檢索、停用詞、詞干等多模式檢索,可跨平臺(tái)調(diào)用,支持多種語言環(huán)境。Lucene對數(shù)據(jù)源格式?jīng)]有特定的要求,它采用一個(gè)通用的Docuemen對象來接受索引。不管要建立索引的數(shù)據(jù)源是什么格式,只要調(diào)用相應(yīng)的解析轉(zhuǎn)換器將數(shù)據(jù)源構(gòu)造成Docuement對象,映射到Lucene的存儲(chǔ)結(jié)構(gòu)或接口中。就可以被Lucene分析利用,經(jīng)語法分析、內(nèi)容提取和詞語切分后后,建立倒排索引。常見的文件格式Word、PDF、Html甚至數(shù)據(jù)庫等等都可以是數(shù)據(jù)源,實(shí)現(xiàn)全文檢索。
信息技術(shù)的發(fā)展,一方面極大豐富了現(xiàn)代讀者的信息資源需求,另一方也使他們面臨無法快速、準(zhǔn)確、全面地獲取需要信息資源的難題。傳統(tǒng)的以題名、著者、出版社等關(guān)鍵詞進(jìn)行檢索的方式顯然已不能滿足讀者的需求, 建立數(shù)字資源全文信息索引, 實(shí)現(xiàn)基于內(nèi)容的全文檢索已成為當(dāng)前數(shù)字圖書館建設(shè)的重要課題。Lucene以其優(yōu)異的架構(gòu)設(shè)計(jì)、開放共享的特性和卓越你的全文索引、檢索性能得到全世界范圍的廣泛認(rèn)可。利用Lucene構(gòu)建全文檢索系統(tǒng)在國內(nèi)外圖書館界已得到廣泛應(yīng)用。
2.3 Drupal
Drupal是2000年發(fā)布的開放源碼內(nèi)容管理框架,包括內(nèi)核、模塊、主題3個(gè)部分,并通過Hook機(jī)制緊密相連。由于它整體設(shè)計(jì)思想先進(jìn)、架構(gòu)靈活,擴(kuò)展方便且源碼開放,吸引了全世界數(shù)以萬計(jì)的WEB開發(fā)專家,經(jīng)過他們不斷地修改、完善,如今Drupal已經(jīng)發(fā)展成為一套強(qiáng)大的內(nèi)容管理系統(tǒng),支持從個(gè)人博客到大型社區(qū)等各種不同應(yīng)用的網(wǎng)站項(xiàng)目,具有業(yè)界頂級(jí)的網(wǎng)站開發(fā)能力[5]。
Drupal的定制開發(fā)能力、靈活擴(kuò)展性、代碼安全性和系統(tǒng)健壯性等方面都具備世界最高水平。這使得它成為眾多有技術(shù)實(shí)力的網(wǎng)站建設(shè)公司優(yōu)先選用的網(wǎng)站開發(fā)平臺(tái),包括聯(lián)合國、美國白宮、法國政府、哈佛大學(xué)等著名政府和機(jī)構(gòu)紛紛采用采用基于Drupal的框架建站。
2011年,Drupal7把RDF 相關(guān)模塊作為Drupal的核心。作為一個(gè)內(nèi)容管理系統(tǒng)平臺(tái),Drupal對關(guān)聯(lián)數(shù)據(jù)的支持把Drupal帶入一個(gè)全面應(yīng)用RDF的富語義時(shí)代,為Web20時(shí)代的遺留系統(tǒng)向語義網(wǎng)進(jìn)化做出了貢獻(xiàn)。2005年7月,美國密歇根州安阿伯市地區(qū)圖書館率先開通了基于Drupal的新網(wǎng)站,隨后Simon Fraser University Learning Commons、University of Alaska Fairbanks Libraries等紛紛利用Drupal進(jìn)行圖書館門戶網(wǎng)站建設(shè)、圖書館原有系統(tǒng)整合和圖書館20化,提高用戶參與度,改善用戶體驗(yàn)。
Drupal聚集了全世界WEB專家的智慧,任何一個(gè)公司自己開發(fā)的系統(tǒng),在技術(shù)上都無法達(dá)到Drupal水平。相反,是否具有Drupal技術(shù)的開發(fā)能力已成為鑒別網(wǎng)站建設(shè)公司實(shí)力的試金石。Drupal的學(xué)習(xí)曲線相對漫長和陡峭,只有精通XHTML、CSS、Javascript、PHP、MySql的開發(fā)人員,經(jīng)過長期刻苦的學(xué)習(xí),才有可能真正的駕馭Drupal,這也給在圖書館的普及應(yīng)用帶來一定的挑戰(zhàn)。
3 圖書館界應(yīng)用開源軟件應(yīng)注意的問題
開源軟件給圖書館建設(shè)帶來機(jī)遇也帶來挑戰(zhàn)。開發(fā)、利用、共享開源軟件提高了數(shù)字圖書館建設(shè)的起點(diǎn)和層次、避免了重復(fù)勞動(dòng)、提高了效率。但國內(nèi)外可供圖書館界開發(fā)、利用的開放源碼軟件有上千種之多,幾乎遍布數(shù)字圖書館各業(yè)務(wù)領(lǐng)域。這一方面滿足豐富的應(yīng)用需要,另一方面也給如何有效地選擇、科學(xué)評(píng)估、合理利用開放源碼軟件提出了更高的要求。
雖然遍歷自由軟件基金會(huì)等綜合性開源軟件登記門戶網(wǎng)站、查看國內(nèi)外數(shù)字圖書館項(xiàng)目介紹等能一定程度地幫助我們找到適合自己功能目標(biāo)的開源軟件。但開源軟件的非組織性更要求我們在選擇評(píng)價(jià)開放源碼軟件時(shí)必須從軟件質(zhì)量、生命力等多方面全面衡量考察。而開源軟件技術(shù)方案和源代碼的公開性,其開發(fā)過程的開放性也為我們了解軟件技術(shù)架構(gòu)、實(shí)施方案等各種指標(biāo),評(píng)估開源軟件質(zhì)量特性等提供了便利。直接閱讀、分析開源軟件源代碼,可以對代碼的質(zhì)量做出準(zhǔn)確的、公正的判定。此外,由于大多開源軟件是依托社區(qū)而建立并發(fā)展的,所以社區(qū)建設(shè)和社區(qū)參與就成為衡量該軟件開發(fā)活躍程度以及軟件應(yīng)用支持力度的重要指標(biāo)。
此外,針對不同的應(yīng)用目標(biāo)考察評(píng)價(jià)開放源碼軟件側(cè)重的重點(diǎn)也不同。例如內(nèi)容管理系統(tǒng)軟件要將涉及文件、表格、圖片、數(shù)據(jù)庫中的數(shù)據(jù)甚至音、視頻等各種格式的信息數(shù)據(jù)集成在一個(gè)平臺(tái)下,統(tǒng)一管理。其難點(diǎn)是要在解決各種非結(jié)構(gòu)化或半結(jié)構(gòu)化的數(shù)字資源的采集、管理、發(fā)布、檢索和利用的同時(shí),將其有機(jī)集成到結(jié)構(gòu)化數(shù)據(jù)的系統(tǒng)環(huán)境中。所以選取開源內(nèi)容管理系統(tǒng),除要考察上述技術(shù)架構(gòu)、代碼質(zhì)量、社區(qū)活躍度外還要從以下幾方面進(jìn)行考察:
31 元數(shù)據(jù)
對內(nèi)容數(shù)據(jù)的查詢、修改和檢索,必須以元數(shù)據(jù)為依托。系統(tǒng)對DC、EAD、MARC、LOM、METS、MODS等元數(shù)據(jù)架構(gòu)的支持,是否支持Unicode字符集和特定元數(shù)據(jù)字段的增刪及元數(shù)據(jù)缺省值設(shè)置等,都將直接影響軟件最終質(zhì)量。
3.2 內(nèi)容數(shù)據(jù)管理
內(nèi)容數(shù)據(jù)管理包括提交管理、提交查看、內(nèi)容發(fā)布等。涉及數(shù)據(jù)提交權(quán)限管理;提交表單的自定義生產(chǎn);提交內(nèi)容數(shù)據(jù)的自動(dòng)轉(zhuǎn)換、元數(shù)據(jù)抽取、對接、索引和存儲(chǔ);發(fā)布格式的自定義確立等等。
3.3 檢索支持
系統(tǒng)是否支持全文檢索和特定元數(shù)據(jù)字段檢索,及檢索點(diǎn)瀏覽檢索。檢索結(jié)果相關(guān)度排序。
3.4 權(quán)限控制
用戶權(quán)限管理是否可限制不同的訪問層次,對用戶角色管理、加密、數(shù)字簽名等安全措施的支持。
3.5 I/O管理
對結(jié)構(gòu)化、非結(jié)構(gòu)化文檔格式、元數(shù)據(jù)格式、圖像格式和多媒體格式等多種形式、多種格式內(nèi)容的輸入/輸出管理,系統(tǒng)能自動(dòng)生成使用統(tǒng)計(jì),支持個(gè)性化使用報(bào)表生成。
3.6 標(biāo)準(zhǔn)規(guī)范互操作性
系統(tǒng)能支持OAI-PMH、兼容Z3950協(xié)議以及其它研究協(xié)議。具有跨平臺(tái)操作能力。
4 結(jié) 語
數(shù)字圖書館建設(shè)集網(wǎng)絡(luò)、通訊、信息技術(shù)為一體,一個(gè)完整的數(shù)字圖書館信息系統(tǒng)往往是集成多個(gè)開源軟件的綜合應(yīng)用平臺(tái)。而開源軟件不是由一個(gè)統(tǒng)一的組織進(jìn)行開發(fā)的,所以不同的軟件之間沒有整體性,雖然各自有標(biāo)準(zhǔn)的開發(fā)接口,但多個(gè)開源軟件間整合開發(fā)必不可少。這對長期在Windows平臺(tái)體系中學(xué)習(xí)、工作的軟件開發(fā)人員也是一個(gè)挑戰(zhàn)。作為數(shù)字時(shí)代圖書館人,必須緊緊跟上信息領(lǐng)域發(fā)展潮流,積極學(xué)習(xí)開源軟件新理念、新知識(shí)、新技術(shù),并投身于開源軟件應(yīng)用與開發(fā)中,促進(jìn)和推動(dòng)開源軟件在圖書館中的應(yīng)用。
參考文獻(xiàn)
[1]耿慶軍,王朋,孫華瑋.開源軟件在教育信息化中的應(yīng)用研究[J].軟件導(dǎo)刊,2010,(4):26-28.
[2]李師龍.開源軟件Dspace的本地化及開發(fā)探討[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2011,(35 ):65-67.
[3]http:∥www.opendoar.org[EB].
[4]孫西全,馬瑞芳,李燕靈.基于Lucene的信息檢索的研究與應(yīng)用[J].情報(bào)理論與實(shí)踐,2006,(1):125-128.
[5]馬建玲.開放源代碼的內(nèi)容管理系統(tǒng)Drupal[J].現(xiàn)代情報(bào),2007,(2):50-52.
(本文責(zé)任編輯:孫國雷)