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