,,,,,
隨著科學(xué)的發(fā)展,科研合作在知識(shí)共享、學(xué)術(shù)交流、提升科研成果質(zhì)量等方面的作用日益顯著。科研合作對(duì)促進(jìn)知識(shí)交流與科研創(chuàng)新具有重要意義,如跨機(jī)構(gòu)、跨國(guó)別、跨學(xué)科、跨領(lǐng)域的各類科研合作極大地推動(dòng)了科研創(chuàng)新,成為當(dāng)前科研機(jī)構(gòu)開(kāi)展科學(xué)研究的重要組織形式。因此,人們開(kāi)始關(guān)注、研究科研合作過(guò)程中所形成的關(guān)系網(wǎng)絡(luò),探究其形成機(jī)理、合作模式、運(yùn)行機(jī)制及其對(duì)科研績(jī)效所產(chǎn)生的影響等。科研合作者往往將其合作研究成果以共同署名的方式發(fā)表學(xué)術(shù)論文,因此普遍認(rèn)為論文合著現(xiàn)象是科研合作的真實(shí)反映與直接表現(xiàn)。合著網(wǎng)絡(luò)作為合著者及其合著關(guān)系的集合,本質(zhì)上反映的是科研人員之間的合作關(guān)系,并日益成為國(guó)內(nèi)外學(xué)者對(duì)科研合作網(wǎng)絡(luò)研究的主要內(nèi)容之一[1]。由此可見(jiàn),合著網(wǎng)絡(luò)作為社交關(guān)系網(wǎng)絡(luò)的一種,是用人和人之間的關(guān)系進(jìn)行表征。通過(guò)構(gòu)建合著關(guān)系,圖譜可以很方便地描述作者間的合著關(guān)系。用圖形理論研究分析合著網(wǎng)絡(luò)成為合著關(guān)系分析的新方法、新熱點(diǎn)。
關(guān)系數(shù)據(jù)庫(kù)經(jīng)過(guò)數(shù)十年的發(fā)展,形成了一整套完備的體系,技術(shù)成熟、安全可靠,但其嚴(yán)格的模式使數(shù)據(jù)庫(kù)擴(kuò)展變得困難,其靜態(tài)、剛性、不靈活的特質(zhì)不適合表達(dá)非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù),遍歷網(wǎng)絡(luò)抽取信息能力弱[2]。當(dāng)處理類似合著關(guān)系這樣的數(shù)據(jù)對(duì)象間存在內(nèi)在關(guān)聯(lián)或關(guān)系復(fù)雜、容易動(dòng)態(tài)變化時(shí),都會(huì)導(dǎo)致數(shù)據(jù)冗余、占用系統(tǒng)資源多、關(guān)系計(jì)算時(shí)間長(zhǎng)等問(wèn)題,甚至一個(gè)小的改變也會(huì)導(dǎo)致整個(gè)數(shù)據(jù)庫(kù)的重構(gòu)。隨著數(shù)據(jù)庫(kù)應(yīng)用領(lǐng)域的延伸擴(kuò)展,加上關(guān)系數(shù)據(jù)庫(kù)本身固有的缺陷,導(dǎo)致其應(yīng)用到某些領(lǐng)域時(shí)會(huì)產(chǎn)生各種各樣的問(wèn)題。隨著不同的方法、技術(shù)的涌現(xiàn),它們或與關(guān)系數(shù)據(jù)庫(kù)配合使用,或直接被代替,如面向?qū)ο髷?shù)據(jù)庫(kù)、層次數(shù)據(jù)庫(kù)等。
近年來(lái),隨著Web2.0、社交網(wǎng)絡(luò)的飛速發(fā)展,非關(guān)系型、分布式數(shù)據(jù)存儲(chǔ)需求快速增長(zhǎng),數(shù)據(jù)庫(kù)替代品層出不窮,被統(tǒng)稱為NoSQL數(shù)據(jù)庫(kù)。NoSQL數(shù)據(jù)庫(kù)作為一類應(yīng)用范圍廣的持久化解決方案,它們不遵循關(guān)系數(shù)據(jù)庫(kù)模型,也不使用SQL作為查詢語(yǔ)言。按照其數(shù)據(jù)模型的不同,NoSQL數(shù)據(jù)庫(kù)可以分為鍵值存儲(chǔ)庫(kù)、列存儲(chǔ)庫(kù)、文檔庫(kù)和圖形數(shù)據(jù)庫(kù)等四大類[3]。
圖形數(shù)據(jù)庫(kù)源起歐拉和圖理論,用圖結(jié)構(gòu)存儲(chǔ)和查詢數(shù)據(jù)。應(yīng)用圖形理論存儲(chǔ)實(shí)體之間的關(guān)系信息,包括節(jié)點(diǎn)、關(guān)系和屬性3個(gè)基本要素,將數(shù)據(jù)存儲(chǔ)在圖結(jié)構(gòu)中特別適合路徑查詢和模式發(fā)現(xiàn)[4]。與其他數(shù)據(jù)庫(kù)相比,它更擅長(zhǎng)描述數(shù)據(jù)之間的關(guān)系,適合處理大量復(fù)雜、互連接、低結(jié)構(gòu)化的數(shù)據(jù),被用于構(gòu)建關(guān)系圖譜的系統(tǒng),解決復(fù)雜的圖形問(wèn)題。其無(wú)模式的特性可以在不影響原有業(yè)務(wù)邏輯的情況下任意添加節(jié)點(diǎn)、關(guān)系、屬性甚至子網(wǎng),對(duì)具有復(fù)雜、變化關(guān)聯(lián)關(guān)系的數(shù)據(jù)處理高效、準(zhǔn)確、擴(kuò)展性強(qiáng)。大數(shù)據(jù)時(shí)代對(duì)海量數(shù)據(jù)、關(guān)聯(lián)數(shù)據(jù)進(jìn)行分析、處理和知識(shí)挖掘的廣泛需求促使圖形數(shù)據(jù)庫(kù)快速成長(zhǎng)。目前,圖形數(shù)據(jù)庫(kù)已廣泛應(yīng)用于社交網(wǎng)絡(luò)、推薦系統(tǒng)等大規(guī)模復(fù)雜合作關(guān)系和圖數(shù)據(jù)的存儲(chǔ)、管理和分析。
Neo4J是目前流行的圖形數(shù)據(jù)庫(kù)。它基于java設(shè)計(jì),遵循屬性圖形數(shù)據(jù)模型,包括節(jié)點(diǎn)和邊兩個(gè)基本概念,其中節(jié)點(diǎn)表示實(shí)體,邊表示實(shí)體之間的關(guān)系,節(jié)點(diǎn)和邊都具有屬性,不同實(shí)體通過(guò)各種不同關(guān)系關(guān)聯(lián)起來(lái)形成網(wǎng)絡(luò)。節(jié)點(diǎn)可以隨時(shí)增、刪、改,有效解決存儲(chǔ)半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)時(shí)內(nèi)存浪費(fèi)問(wèn)題。通過(guò)給邊賦予屬性,Neo4J可以靈活擴(kuò)展網(wǎng)絡(luò)模型[5];通過(guò)深度遍歷接口,Neo4J可以相同的速度遍歷節(jié)點(diǎn)與關(guān)系,解決了出現(xiàn)大量連接查詢時(shí)性能衰退的問(wèn)題,且遍歷速度與構(gòu)成圖形的數(shù)據(jù)量無(wú)關(guān)。
合著網(wǎng)絡(luò)是科研人員合作發(fā)表論文而形成的。以發(fā)文作者為節(jié)點(diǎn),節(jié)點(diǎn)間連線表示兩位作者之間存在合著關(guān)系,且合著關(guān)系不分方向,將多次合著簡(jiǎn)記為一次就可以構(gòu)建合著網(wǎng)絡(luò)[6]。
根據(jù)圖形理論,合著網(wǎng)絡(luò)可以定義為:合著網(wǎng)絡(luò)G由一組節(jié)點(diǎn)N={n1,n2,…,nn} 和一組鏈接L={l1,l2,…,lm} 組成。其中節(jié)點(diǎn)n表示科學(xué)論文的作者,N表示所有作者的集合,如果作者ni與作者nj合著一篇論文,則兩者之間存在一條鏈接
如4位作者A、B、C、D共同發(fā)表了1篇論文,則其合著網(wǎng)絡(luò)是以A、B、C、D為頂點(diǎn)的全連通子網(wǎng)。相同的作者會(huì)與不同的科研人員合作發(fā)表不同的論文。通過(guò)這些相同的作者,多個(gè)全連通子網(wǎng)融合構(gòu)成合著網(wǎng)絡(luò)。如作者A和作者E合作撰寫(xiě)了一篇論文,則A、B、C、D、E的合著網(wǎng)絡(luò)如圖1所示。

圖1 作者A、B、C、D、E的合著網(wǎng)絡(luò)
由此可見(jiàn),合著網(wǎng)絡(luò)數(shù)據(jù)間存在大量關(guān)聯(lián)關(guān)系。采用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)、構(gòu)建,必須將其數(shù)據(jù)模型轉(zhuǎn)換為關(guān)系結(jié)構(gòu),轉(zhuǎn)換代價(jià)高,而且會(huì)產(chǎn)生大量的數(shù)據(jù)冗余,存儲(chǔ)效果差、查詢效率低,更難以進(jìn)行動(dòng)態(tài)更新。
圖形數(shù)據(jù)庫(kù)是基于圖模型的,它使用圖狀結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)和模式,用基于圖形的操作表達(dá)數(shù)據(jù)操作,比較適合對(duì)合著網(wǎng)絡(luò)這樣的圖狀結(jié)構(gòu)數(shù)據(jù)進(jìn)行表示和存儲(chǔ)。
以作者為節(jié)點(diǎn),作者間合著關(guān)系為關(guān)系,可以將合著者關(guān)系抽象為節(jié)點(diǎn)-關(guān)系數(shù)據(jù)模型,從而快速、準(zhǔn)確地對(duì)合著網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)建模。該數(shù)據(jù)模型能夠有效支持合著者關(guān)聯(lián)關(guān)系的動(dòng)態(tài)增刪、多階查詢、深度遍歷、廣度遍歷等操作,有效解決了合著網(wǎng)絡(luò)復(fù)雜關(guān)聯(lián)關(guān)系的數(shù)據(jù)存儲(chǔ)問(wèn)題,且存儲(chǔ)、查詢效率高,后期維護(hù)成本低。
例如,作者A與作者B合著了一篇論文,其合著關(guān)系數(shù)據(jù)模型如圖2所示。
在該數(shù)據(jù)模型中,節(jié)點(diǎn)為作者,包含作者姓名、作者ID標(biāo)識(shí)屬性;邊為他們之間的合著關(guān)系, 包含關(guān)系描述和資源ID標(biāo)識(shí)屬性。

圖2 數(shù)據(jù)模型
筆者在開(kāi)發(fā)構(gòu)建軍事醫(yī)學(xué)科學(xué)院的機(jī)構(gòu)知識(shí)庫(kù)系統(tǒng)時(shí),在合著網(wǎng)絡(luò)分析方面進(jìn)行了有益的探索。該系統(tǒng)利用機(jī)構(gòu)庫(kù)收錄的文獻(xiàn)數(shù)據(jù)資源,在系統(tǒng)后端設(shè)計(jì)了語(yǔ)義分析模塊,對(duì)軍事醫(yī)學(xué)科研人員發(fā)表文獻(xiàn)的合著關(guān)系進(jìn)行推算與分析,并通過(guò)前端Flash模塊展示合著網(wǎng)絡(luò)分析結(jié)果。
軍事醫(yī)學(xué)科學(xué)院機(jī)構(gòu)知識(shí)庫(kù)系統(tǒng)采用開(kāi)源的DSpace,運(yùn)用Java開(kāi)發(fā)建設(shè)。Neo4J作為一種目前流行的較為成熟的開(kāi)源圖形數(shù)據(jù)庫(kù),也采用Java開(kāi)發(fā),且完全支持節(jié)點(diǎn)-關(guān)系模型的存儲(chǔ)和檢索,支持服務(wù)器模式和基于java的內(nèi)嵌式應(yīng)用模式,可以完美地嵌入到我們的機(jī)構(gòu)庫(kù)開(kāi)發(fā)系統(tǒng)中。
因此,我們?cè)跈C(jī)構(gòu)庫(kù)語(yǔ)義分析模塊采用Neo4J作為合著關(guān)系挖掘展示模塊的數(shù)據(jù)庫(kù)引擎,利用Neo4J數(shù)據(jù)庫(kù)完成機(jī)構(gòu)庫(kù)內(nèi)收錄數(shù)據(jù)的合著關(guān)系的建模、搜索。該系統(tǒng)將Neo4J作為獨(dú)立的子系統(tǒng),采用內(nèi)嵌應(yīng)用模式,運(yùn)用事件機(jī)制嵌入系統(tǒng)。系統(tǒng)工作方式如圖3所示。

圖3 軍事醫(yī)學(xué)科學(xué)院機(jī)構(gòu)知識(shí)庫(kù)系統(tǒng)工作方式
系統(tǒng)在DSpace事件機(jī)制中注冊(cè)了事件“Consumer”,當(dāng)機(jī)構(gòu)庫(kù)內(nèi)收錄的數(shù)字資源發(fā)生變化時(shí)(發(fā)布、撤銷、刪除、更新等)會(huì)觸發(fā)相關(guān)事件,實(shí)現(xiàn)對(duì)Neo4J數(shù)據(jù)庫(kù)內(nèi)相關(guān)數(shù)據(jù)的創(chuàng)建、刪除及更新等操作。
Neo4J提供有圖數(shù)據(jù)庫(kù)查詢語(yǔ)言Cypher,它是一種聲明式、類SQL、靈活且表達(dá)力強(qiáng)的查詢語(yǔ)言,且應(yīng)用較為廣泛[6]。
利用Cypher,通過(guò)結(jié)點(diǎn)的屬性和關(guān)系可以簡(jiǎn)潔明了地實(shí)現(xiàn)圖的遍歷和滿足各種數(shù)據(jù)、關(guān)系的查詢。
在機(jī)構(gòu)知識(shí)庫(kù)系統(tǒng)中,當(dāng)用戶在使用“相關(guān)作者關(guān)系查詢”功能的時(shí)候,系統(tǒng)會(huì)自動(dòng)調(diào)用Neo4J查詢模塊。該模塊將用戶的“相關(guān)作者”查詢條件轉(zhuǎn)換為Neo4J的Cypher查詢語(yǔ)言,然后Neo4J根據(jù)條件執(zhí)行相關(guān)查詢后,再返回節(jié)點(diǎn)和關(guān)系結(jié)果集合。
例如,對(duì)于作者(id1)和相關(guān)作者(id2),可通過(guò)以下Cypher語(yǔ)句找到這兩位作者合著文章的數(shù)量。
START n=node({id1}), m=node({id2})
MATCH n-[r:COAUTHOR]->m
RETURN count(r) AS total
實(shí)踐證明,Cypher語(yǔ)句不需要編寫(xiě)圖形結(jié)構(gòu)的遍歷代碼就可以實(shí)現(xiàn)SQL所不能實(shí)現(xiàn)的遍歷搜索,且無(wú)需對(duì)結(jié)果進(jìn)行處理,關(guān)系查詢高效、快捷、準(zhǔn)確,具有強(qiáng)大的廣度及深度搜索查詢能力。Cypher查詢中存在路徑級(jí)數(shù)。
在圖4所示的合著網(wǎng)絡(luò)中,Node A的直接相關(guān)節(jié)點(diǎn)Node B和C都是Node A的1級(jí)路徑,而與1級(jí)路徑中Node C相關(guān)的Node D就是Node A的2級(jí)路徑。以此類推,就可以查找合著網(wǎng)絡(luò)中任意級(jí)路徑節(jié)點(diǎn)間的關(guān)系。

圖4 路徑級(jí)數(shù)
通過(guò)1級(jí)查詢,可以得到一個(gè)作者的射線關(guān)系圖(圖5);通過(guò)多級(jí)的查詢,可以得到一個(gè)作者的網(wǎng)狀關(guān)系圖(圖6)。

圖5 射線關(guān)系圖

圖6 網(wǎng)狀關(guān)系圖
圖形數(shù)據(jù)庫(kù)Neo4J作為一款開(kāi)源的、支持億級(jí)節(jié)點(diǎn)規(guī)模的圖形數(shù)據(jù)庫(kù),相對(duì)而言,技術(shù)成熟、應(yīng)用廣泛。它用圖形的概念構(gòu)建數(shù)據(jù)模型,其內(nèi)在索引機(jī)制與優(yōu)化查詢策略善于處理大量復(fù)雜、互連接、低結(jié)構(gòu)化的數(shù)據(jù),在存儲(chǔ)如社交網(wǎng)絡(luò)中人物關(guān)系這樣關(guān)聯(lián)性復(fù)雜的數(shù)據(jù)時(shí)優(yōu)勢(shì)明顯。使用Neo4J對(duì)合著網(wǎng)絡(luò)這種圖狀結(jié)構(gòu)數(shù)據(jù)進(jìn)行存儲(chǔ),可以有效克服傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的動(dòng)態(tài)更新能力弱、無(wú)法有效處理數(shù)據(jù)間復(fù)雜關(guān)系等弊端,以網(wǎng)絡(luò)圖的形式全面展現(xiàn)科研人員及其合著情況,實(shí)現(xiàn)對(duì)合著網(wǎng)絡(luò)進(jìn)行高效存儲(chǔ)、有效管理。通過(guò)執(zhí)行多層復(fù)雜操作,可以快速識(shí)別合著網(wǎng)絡(luò)個(gè)體及其和其他成員之間的關(guān)聯(lián)關(guān)系。
國(guó)內(nèi)外學(xué)者運(yùn)用科學(xué)計(jì)量法、數(shù)理統(tǒng)計(jì)法以及組合數(shù)字模型等對(duì)論文合著進(jìn)行了大量的定量分析[8],得出利用Neo4J對(duì)合著網(wǎng)絡(luò)進(jìn)行研究、分析,是對(duì)合著網(wǎng)絡(luò)科學(xué)計(jì)量分析的重要補(bǔ)充和有效提升,可以從多維度、多層面研究合著網(wǎng)絡(luò),更全面、廣泛地分析、挖掘出科研合作網(wǎng)絡(luò)的形成機(jī)制、影響因素和潛在趨勢(shì)等。
此外,Neo4J還是一個(gè)面向分析的圖形數(shù)據(jù)庫(kù),可提供較快的圖形算法、推薦系統(tǒng)和OLAP風(fēng)格的分析[9],通過(guò)對(duì)合著數(shù)據(jù)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分析實(shí)現(xiàn)中心作者發(fā)現(xiàn)、合作關(guān)系分析、未來(lái)趨勢(shì)預(yù)測(cè)等數(shù)據(jù)分析功能。
本文針對(duì)軍事醫(yī)學(xué)科學(xué)院機(jī)構(gòu)知識(shí)庫(kù)系統(tǒng)建設(shè)中,利用圖形數(shù)據(jù)庫(kù)Neo4J對(duì)機(jī)構(gòu)庫(kù)內(nèi)收錄文獻(xiàn)作者的合著網(wǎng)絡(luò)進(jìn)行存儲(chǔ)、構(gòu)建,實(shí)現(xiàn)對(duì)機(jī)構(gòu)內(nèi)作者間合著關(guān)系的高效查詢和可視化展示等。
實(shí)踐證明,與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)內(nèi)存表方式相比較,圖形數(shù)據(jù)庫(kù)Neo4J在滿足合著網(wǎng)絡(luò)中關(guān)系數(shù)據(jù)的存儲(chǔ)、管理、查詢和計(jì)算等方面的優(yōu)勢(shì)明顯。下一步,我們將利用Neo4J高效的圖形算法、推薦系統(tǒng)和LOAP風(fēng)格的分析等功能,對(duì)合著網(wǎng)絡(luò)圖數(shù)據(jù)進(jìn)行合著關(guān)系分析、預(yù)測(cè)等更深層次的數(shù)據(jù)挖掘與分析。