,,,,,
隨著科學的發(fā)展,科研合作在知識共享、學術(shù)交流、提升科研成果質(zhì)量等方面的作用日益顯著。科研合作對促進知識交流與科研創(chuàng)新具有重要意義,如跨機構(gòu)、跨國別、跨學科、跨領(lǐng)域的各類科研合作極大地推動了科研創(chuàng)新,成為當前科研機構(gòu)開展科學研究的重要組織形式。因此,人們開始關(guān)注、研究科研合作過程中所形成的關(guān)系網(wǎng)絡,探究其形成機理、合作模式、運行機制及其對科研績效所產(chǎn)生的影響等。科研合作者往往將其合作研究成果以共同署名的方式發(fā)表學術(shù)論文,因此普遍認為論文合著現(xiàn)象是科研合作的真實反映與直接表現(xiàn)。合著網(wǎng)絡作為合著者及其合著關(guān)系的集合,本質(zhì)上反映的是科研人員之間的合作關(guān)系,并日益成為國內(nèi)外學者對科研合作網(wǎng)絡研究的主要內(nèi)容之一[1]。由此可見,合著網(wǎng)絡作為社交關(guān)系網(wǎng)絡的一種,是用人和人之間的關(guān)系進行表征。通過構(gòu)建合著關(guān)系,圖譜可以很方便地描述作者間的合著關(guān)系。用圖形理論研究分析合著網(wǎng)絡成為合著關(guān)系分析的新方法、新熱點。
關(guān)系數(shù)據(jù)庫經(jīng)過數(shù)十年的發(fā)展,形成了一整套完備的體系,技術(shù)成熟、安全可靠,但其嚴格的模式使數(shù)據(jù)庫擴展變得困難,其靜態(tài)、剛性、不靈活的特質(zhì)不適合表達非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù),遍歷網(wǎng)絡抽取信息能力弱[2]。當處理類似合著關(guān)系這樣的數(shù)據(jù)對象間存在內(nèi)在關(guān)聯(lián)或關(guān)系復雜、容易動態(tài)變化時,都會導致數(shù)據(jù)冗余、占用系統(tǒng)資源多、關(guān)系計算時間長等問題,甚至一個小的改變也會導致整個數(shù)據(jù)庫的重構(gòu)。隨著數(shù)據(jù)庫應用領(lǐng)域的延伸擴展,加上關(guān)系數(shù)據(jù)庫本身固有的缺陷,導致其應用到某些領(lǐng)域時會產(chǎn)生各種各樣的問題。隨著不同的方法、技術(shù)的涌現(xiàn),它們或與關(guān)系數(shù)據(jù)庫配合使用,或直接被代替,如面向?qū)ο髷?shù)據(jù)庫、層次數(shù)據(jù)庫等。
近年來,隨著Web2.0、社交網(wǎng)絡的飛速發(fā)展,非關(guān)系型、分布式數(shù)據(jù)存儲需求快速增長,數(shù)據(jù)庫替代品層出不窮,被統(tǒng)稱為NoSQL數(shù)據(jù)庫。NoSQL數(shù)據(jù)庫作為一類應用范圍廣的持久化解決方案,它們不遵循關(guān)系數(shù)據(jù)庫模型,也不使用SQL作為查詢語言。按照其數(shù)據(jù)模型的不同,NoSQL數(shù)據(jù)庫可以分為鍵值存儲庫、列存儲庫、文檔庫和圖形數(shù)據(jù)庫等四大類[3]。
圖形數(shù)據(jù)庫源起歐拉和圖理論,用圖結(jié)構(gòu)存儲和查詢數(shù)據(jù)。應用圖形理論存儲實體之間的關(guān)系信息,包括節(jié)點、關(guān)系和屬性3個基本要素,將數(shù)據(jù)存儲在圖結(jié)構(gòu)中特別適合路徑查詢和模式發(fā)現(xiàn)[4]。與其他數(shù)據(jù)庫相比,它更擅長描述數(shù)據(jù)之間的關(guān)系,適合處理大量復雜、互連接、低結(jié)構(gòu)化的數(shù)據(jù),被用于構(gòu)建關(guān)系圖譜的系統(tǒng),解決復雜的圖形問題。其無模式的特性可以在不影響原有業(yè)務邏輯的情況下任意添加節(jié)點、關(guān)系、屬性甚至子網(wǎng),對具有復雜、變化關(guān)聯(lián)關(guān)系的數(shù)據(jù)處理高效、準確、擴展性強。大數(shù)據(jù)時代對海量數(shù)據(jù)、關(guān)聯(lián)數(shù)據(jù)進行分析、處理和知識挖掘的廣泛需求促使圖形數(shù)據(jù)庫快速成長。目前,圖形數(shù)據(jù)庫已廣泛應用于社交網(wǎng)絡、推薦系統(tǒng)等大規(guī)模復雜合作關(guān)系和圖數(shù)據(jù)的存儲、管理和分析。
Neo4J是目前流行的圖形數(shù)據(jù)庫。它基于java設計,遵循屬性圖形數(shù)據(jù)模型,包括節(jié)點和邊兩個基本概念,其中節(jié)點表示實體,邊表示實體之間的關(guān)系,節(jié)點和邊都具有屬性,不同實體通過各種不同關(guān)系關(guān)聯(lián)起來形成網(wǎng)絡。節(jié)點可以隨時增、刪、改,有效解決存儲半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)時內(nèi)存浪費問題。通過給邊賦予屬性,Neo4J可以靈活擴展網(wǎng)絡模型[5];通過深度遍歷接口,Neo4J可以相同的速度遍歷節(jié)點與關(guān)系,解決了出現(xiàn)大量連接查詢時性能衰退的問題,且遍歷速度與構(gòu)成圖形的數(shù)據(jù)量無關(guān)。
合著網(wǎng)絡是科研人員合作發(fā)表論文而形成的。以發(fā)文作者為節(jié)點,節(jié)點間連線表示兩位作者之間存在合著關(guān)系,且合著關(guān)系不分方向,將多次合著簡記為一次就可以構(gòu)建合著網(wǎng)絡[6]。
根據(jù)圖形理論,合著網(wǎng)絡可以定義為:合著網(wǎng)絡G由一組節(jié)點N={n1,n2,…,nn} 和一組鏈接L={l1,l2,…,lm} 組成。其中節(jié)點n表示科學論文的作者,N表示所有作者的集合,如果作者ni與作者nj合著一篇論文,則兩者之間存在一條鏈接
如4位作者A、B、C、D共同發(fā)表了1篇論文,則其合著網(wǎng)絡是以A、B、C、D為頂點的全連通子網(wǎng)。相同的作者會與不同的科研人員合作發(fā)表不同的論文。通過這些相同的作者,多個全連通子網(wǎng)融合構(gòu)成合著網(wǎng)絡。如作者A和作者E合作撰寫了一篇論文,則A、B、C、D、E的合著網(wǎng)絡如圖1所示。
圖1 作者A、B、C、D、E的合著網(wǎng)絡
由此可見,合著網(wǎng)絡數(shù)據(jù)間存在大量關(guān)聯(lián)關(guān)系。采用關(guān)系數(shù)據(jù)庫存儲、構(gòu)建,必須將其數(shù)據(jù)模型轉(zhuǎn)換為關(guān)系結(jié)構(gòu),轉(zhuǎn)換代價高,而且會產(chǎn)生大量的數(shù)據(jù)冗余,存儲效果差、查詢效率低,更難以進行動態(tài)更新。
圖形數(shù)據(jù)庫是基于圖模型的,它使用圖狀結(jié)構(gòu)存儲數(shù)據(jù)和模式,用基于圖形的操作表達數(shù)據(jù)操作,比較適合對合著網(wǎng)絡這樣的圖狀結(jié)構(gòu)數(shù)據(jù)進行表示和存儲。
以作者為節(jié)點,作者間合著關(guān)系為關(guān)系,可以將合著者關(guān)系抽象為節(jié)點-關(guān)系數(shù)據(jù)模型,從而快速、準確地對合著網(wǎng)絡進行數(shù)據(jù)建模。該數(shù)據(jù)模型能夠有效支持合著者關(guān)聯(lián)關(guān)系的動態(tài)增刪、多階查詢、深度遍歷、廣度遍歷等操作,有效解決了合著網(wǎng)絡復雜關(guān)聯(lián)關(guān)系的數(shù)據(jù)存儲問題,且存儲、查詢效率高,后期維護成本低。
例如,作者A與作者B合著了一篇論文,其合著關(guān)系數(shù)據(jù)模型如圖2所示。
在該數(shù)據(jù)模型中,節(jié)點為作者,包含作者姓名、作者ID標識屬性;邊為他們之間的合著關(guān)系, 包含關(guān)系描述和資源ID標識屬性。
圖2 數(shù)據(jù)模型
筆者在開發(fā)構(gòu)建軍事醫(yī)學科學院的機構(gòu)知識庫系統(tǒng)時,在合著網(wǎng)絡分析方面進行了有益的探索。該系統(tǒng)利用機構(gòu)庫收錄的文獻數(shù)據(jù)資源,在系統(tǒng)后端設計了語義分析模塊,對軍事醫(yī)學科研人員發(fā)表文獻的合著關(guān)系進行推算與分析,并通過前端Flash模塊展示合著網(wǎng)絡分析結(jié)果。
軍事醫(yī)學科學院機構(gòu)知識庫系統(tǒng)采用開源的DSpace,運用Java開發(fā)建設。Neo4J作為一種目前流行的較為成熟的開源圖形數(shù)據(jù)庫,也采用Java開發(fā),且完全支持節(jié)點-關(guān)系模型的存儲和檢索,支持服務器模式和基于java的內(nèi)嵌式應用模式,可以完美地嵌入到我們的機構(gòu)庫開發(fā)系統(tǒng)中。
因此,我們在機構(gòu)庫語義分析模塊采用Neo4J作為合著關(guān)系挖掘展示模塊的數(shù)據(jù)庫引擎,利用Neo4J數(shù)據(jù)庫完成機構(gòu)庫內(nèi)收錄數(shù)據(jù)的合著關(guān)系的建模、搜索。該系統(tǒng)將Neo4J作為獨立的子系統(tǒng),采用內(nèi)嵌應用模式,運用事件機制嵌入系統(tǒng)。系統(tǒng)工作方式如圖3所示。
圖3 軍事醫(yī)學科學院機構(gòu)知識庫系統(tǒng)工作方式
系統(tǒng)在DSpace事件機制中注冊了事件“Consumer”,當機構(gòu)庫內(nèi)收錄的數(shù)字資源發(fā)生變化時(發(fā)布、撤銷、刪除、更新等)會觸發(fā)相關(guān)事件,實現(xiàn)對Neo4J數(shù)據(jù)庫內(nèi)相關(guān)數(shù)據(jù)的創(chuàng)建、刪除及更新等操作。
Neo4J提供有圖數(shù)據(jù)庫查詢語言Cypher,它是一種聲明式、類SQL、靈活且表達力強的查詢語言,且應用較為廣泛[6]。
利用Cypher,通過結(jié)點的屬性和關(guān)系可以簡潔明了地實現(xiàn)圖的遍歷和滿足各種數(shù)據(jù)、關(guān)系的查詢。
在機構(gòu)知識庫系統(tǒng)中,當用戶在使用“相關(guān)作者關(guān)系查詢”功能的時候,系統(tǒng)會自動調(diào)用Neo4J查詢模塊。該模塊將用戶的“相關(guān)作者”查詢條件轉(zhuǎn)換為Neo4J的Cypher查詢語言,然后Neo4J根據(jù)條件執(zhí)行相關(guān)查詢后,再返回節(jié)點和關(guān)系結(jié)果集合。
例如,對于作者(id1)和相關(guān)作者(id2),可通過以下Cypher語句找到這兩位作者合著文章的數(shù)量。
START n=node({id1}), m=node({id2})
MATCH n-[r:COAUTHOR]->m
RETURN count(r) AS total
實踐證明,Cypher語句不需要編寫圖形結(jié)構(gòu)的遍歷代碼就可以實現(xiàn)SQL所不能實現(xiàn)的遍歷搜索,且無需對結(jié)果進行處理,關(guān)系查詢高效、快捷、準確,具有強大的廣度及深度搜索查詢能力。Cypher查詢中存在路徑級數(shù)。
在圖4所示的合著網(wǎng)絡中,Node A的直接相關(guān)節(jié)點Node B和C都是Node A的1級路徑,而與1級路徑中Node C相關(guān)的Node D就是Node A的2級路徑。以此類推,就可以查找合著網(wǎng)絡中任意級路徑節(jié)點間的關(guān)系。
圖4 路徑級數(shù)
通過1級查詢,可以得到一個作者的射線關(guān)系圖(圖5);通過多級的查詢,可以得到一個作者的網(wǎng)狀關(guān)系圖(圖6)。
圖5 射線關(guān)系圖
圖6 網(wǎng)狀關(guān)系圖
圖形數(shù)據(jù)庫Neo4J作為一款開源的、支持億級節(jié)點規(guī)模的圖形數(shù)據(jù)庫,相對而言,技術(shù)成熟、應用廣泛。它用圖形的概念構(gòu)建數(shù)據(jù)模型,其內(nèi)在索引機制與優(yōu)化查詢策略善于處理大量復雜、互連接、低結(jié)構(gòu)化的數(shù)據(jù),在存儲如社交網(wǎng)絡中人物關(guān)系這樣關(guān)聯(lián)性復雜的數(shù)據(jù)時優(yōu)勢明顯。使用Neo4J對合著網(wǎng)絡這種圖狀結(jié)構(gòu)數(shù)據(jù)進行存儲,可以有效克服傳統(tǒng)關(guān)系數(shù)據(jù)庫的動態(tài)更新能力弱、無法有效處理數(shù)據(jù)間復雜關(guān)系等弊端,以網(wǎng)絡圖的形式全面展現(xiàn)科研人員及其合著情況,實現(xiàn)對合著網(wǎng)絡進行高效存儲、有效管理。通過執(zhí)行多層復雜操作,可以快速識別合著網(wǎng)絡個體及其和其他成員之間的關(guān)聯(lián)關(guān)系。
國內(nèi)外學者運用科學計量法、數(shù)理統(tǒng)計法以及組合數(shù)字模型等對論文合著進行了大量的定量分析[8],得出利用Neo4J對合著網(wǎng)絡進行研究、分析,是對合著網(wǎng)絡科學計量分析的重要補充和有效提升,可以從多維度、多層面研究合著網(wǎng)絡,更全面、廣泛地分析、挖掘出科研合作網(wǎng)絡的形成機制、影響因素和潛在趨勢等。
此外,Neo4J還是一個面向分析的圖形數(shù)據(jù)庫,可提供較快的圖形算法、推薦系統(tǒng)和OLAP風格的分析[9],通過對合著數(shù)據(jù)網(wǎng)絡數(shù)據(jù)進行分析實現(xiàn)中心作者發(fā)現(xiàn)、合作關(guān)系分析、未來趨勢預測等數(shù)據(jù)分析功能。
本文針對軍事醫(yī)學科學院機構(gòu)知識庫系統(tǒng)建設中,利用圖形數(shù)據(jù)庫Neo4J對機構(gòu)庫內(nèi)收錄文獻作者的合著網(wǎng)絡進行存儲、構(gòu)建,實現(xiàn)對機構(gòu)內(nèi)作者間合著關(guān)系的高效查詢和可視化展示等。
實踐證明,與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫內(nèi)存表方式相比較,圖形數(shù)據(jù)庫Neo4J在滿足合著網(wǎng)絡中關(guān)系數(shù)據(jù)的存儲、管理、查詢和計算等方面的優(yōu)勢明顯。下一步,我們將利用Neo4J高效的圖形算法、推薦系統(tǒng)和LOAP風格的分析等功能,對合著網(wǎng)絡圖數(shù)據(jù)進行合著關(guān)系分析、預測等更深層次的數(shù)據(jù)挖掘與分析。