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

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

圖2 數據模型
筆者在開發構建軍事醫學科學院的機構知識庫系統時,在合著網絡分析方面進行了有益的探索。該系統利用機構庫收錄的文獻數據資源,在系統后端設計了語義分析模塊,對軍事醫學科研人員發表文獻的合著關系進行推算與分析,并通過前端Flash模塊展示合著網絡分析結果。
軍事醫學科學院機構知識庫系統采用開源的DSpace,運用Java開發建設。Neo4J作為一種目前流行的較為成熟的開源圖形數據庫,也采用Java開發,且完全支持節點-關系模型的存儲和檢索,支持服務器模式和基于java的內嵌式應用模式,可以完美地嵌入到我們的機構庫開發系統中。
因此,我們在機構庫語義分析模塊采用Neo4J作為合著關系挖掘展示模塊的數據庫引擎,利用Neo4J數據庫完成機構庫內收錄數據的合著關系的建模、搜索。該系統將Neo4J作為獨立的子系統,采用內嵌應用模式,運用事件機制嵌入系統。系統工作方式如圖3所示。

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

圖4 路徑級數
通過1級查詢,可以得到一個作者的射線關系圖(圖5);通過多級的查詢,可以得到一個作者的網狀關系圖(圖6)。

圖5 射線關系圖

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