基于图形数据库Neo4J的合著网络研究与实践
2016-03-21,,,,,
,,,,,
随着科学的发展,科研合作在知识共享、学术交流、提升科研成果质量等方面的作用日益显著。科研合作对促进知识交流与科研创新具有重要意义,如跨机构、跨国别、跨学科、跨领域的各类科研合作极大地推动了科研创新,成为当前科研机构开展科学研究的重要组织形式。因此,人们开始关注、研究科研合作过程中所形成的关系网络,探究其形成机理、合作模式、运行机制及其对科研绩效所产生的影响等。科研合作者往往将其合作研究成果以共同署名的方式发表学术论文,因此普遍认为论文合著现象是科研合作的真实反映与直接表现。合著网络作为合著者及其合著关系的集合,本质上反映的是科研人员之间的合作关系,并日益成为国内外学者对科研合作网络研究的主要内容之一[1]。由此可见,合著网络作为社交关系网络的一种,是用人和人之间的关系进行表征。通过构建合著关系,图谱可以很方便地描述作者间的合著关系。用图形理论研究分析合著网络成为合著关系分析的新方法、新热点。
1 图形数据库和Neo4J
关系数据库经过数十年的发展,形成了一整套完备的体系,技术成熟、安全可靠,但其严格的模式使数据库扩展变得困难,其静态、刚性、不灵活的特质不适合表达非结构化、半结构化数据,遍历网络抽取信息能力弱[2]。当处理类似合著关系这样的数据对象间存在内在关联或关系复杂、容易动态变化时,都会导致数据冗余、占用系统资源多、关系计算时间长等问题,甚至一个小的改变也会导致整个数据库的重构。随着数据库应用领域的延伸扩展,加上关系数据库本身固有的缺陷,导致其应用到某些领域时会产生各种各样的问题。随着不同的方法、技术的涌现,它们或与关系数据库配合使用,或直接被代替,如面向对象数据库、层次数据库等。
近年来,随着Web2.0、社交网络的飞速发展,非关系型、分布式数据存储需求快速增长,数据库替代品层出不穷,被统称为NoSQL数据库。NoSQL数据库作为一类应用范围广的持久化解决方案,它们不遵循关系数据库模型,也不使用SQL作为查询语言。按照其数据模型的不同,NoSQL数据库可以分为键值存储库、列存储库、文档库和图形数据库等四大类[3]。
图形数据库源起欧拉和图理论,用图结构存储和查询数据。应用图形理论存储实体之间的关系信息,包括节点、关系和属性3个基本要素,将数据存储在图结构中特别适合路径查询和模式发现[4]。与其他数据库相比,它更擅长描述数据之间的关系,适合处理大量复杂、互连接、低结构化的数据,被用于构建关系图谱的系统,解决复杂的图形问题。其无模式的特性可以在不影响原有业务逻辑的情况下任意添加节点、关系、属性甚至子网,对具有复杂、变化关联关系的数据处理高效、准确、扩展性强。大数据时代对海量数据、关联数据进行分析、处理和知识挖掘的广泛需求促使图形数据库快速成长。目前,图形数据库已广泛应用于社交网络、推荐系统等大规模复杂合作关系和图数据的存储、管理和分析。
Neo4J是目前流行的图形数据库。它基于java设计,遵循属性图形数据模型,包括节点和边两个基本概念,其中节点表示实体,边表示实体之间的关系,节点和边都具有属性,不同实体通过各种不同关系关联起来形成网络。节点可以随时增、删、改,有效解决存储半结构化、非结构化数据时内存浪费问题。通过给边赋予属性,Neo4J可以灵活扩展网络模型[5];通过深度遍历接口,Neo4J可以相同的速度遍历节点与关系,解决了出现大量连接查询时性能衰退的问题,且遍历速度与构成图形的数据量无关。
2 基于图形数据库的合著网络研究
合著网络是科研人员合作发表论文而形成的。以发文作者为节点,节点间连线表示两位作者之间存在合著关系,且合著关系不分方向,将多次合著简记为一次就可以构建合著网络[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 数据模型
3 基于Neo4J的合著网络实例分析
笔者在开发构建军事医学科学院的机构知识库系统时,在合著网络分析方面进行了有益的探索。该系统利用机构库收录的文献数据资源,在系统后端设计了语义分析模块,对军事医学科研人员发表文献的合著关系进行推算与分析,并通过前端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 网状关系图
4 基于Neo4J的合著网络分析的优势
图形数据库Neo4J作为一款开源的、支持亿级节点规模的图形数据库,相对而言,技术成熟、应用广泛。它用图形的概念构建数据模型,其内在索引机制与优化查询策略善于处理大量复杂、互连接、低结构化的数据,在存储如社交网络中人物关系这样关联性复杂的数据时优势明显。使用Neo4J对合著网络这种图状结构数据进行存储,可以有效克服传统关系数据库的动态更新能力弱、无法有效处理数据间复杂关系等弊端,以网络图的形式全面展现科研人员及其合著情况,实现对合著网络进行高效存储、有效管理。通过执行多层复杂操作,可以快速识别合著网络个体及其和其他成员之间的关联关系。
国内外学者运用科学计量法、数理统计法以及组合数字模型等对论文合著进行了大量的定量分析[8],得出利用Neo4J对合著网络进行研究、分析,是对合著网络科学计量分析的重要补充和有效提升,可以从多维度、多层面研究合著网络,更全面、广泛地分析、挖掘出科研合作网络的形成机制、影响因素和潜在趋势等。
此外,Neo4J还是一个面向分析的图形数据库,可提供较快的图形算法、推荐系统和OLAP风格的分析[9],通过对合著数据网络数据进行分析实现中心作者发现、合作关系分析、未来趋势预测等数据分析功能。
5 结语
本文针对军事医学科学院机构知识库系统建设中,利用图形数据库Neo4J对机构库内收录文献作者的合著网络进行存储、构建,实现对机构内作者间合著关系的高效查询和可视化展示等。
实践证明,与传统的关系型数据库内存表方式相比较,图形数据库Neo4J在满足合著网络中关系数据的存储、管理、查询和计算等方面的优势明显。下一步,我们将利用Neo4J高效的图形算法、推荐系统和LOAP风格的分析等功能,对合著网络图数据进行合著关系分析、预测等更深层次的数据挖掘与分析。