李海燕 吴元业 崔一鸣
摘要:机构学者库受到越来越多图书馆和科研机构的关注,文章构建了一个基于微服务架构的机构学者库平台,依托成熟的开源框架,采用Spring Boot框架搭建后端微服务,前端基于React,采用Ant Design框架,实现平台的高度可扩展及敏捷开发,并就平台建设中的姓名消歧问题进行设计,系统运行良好,可为机构学者库建设提供借鉴和参考。
关键词:微服务;机构学者库;姓名消歧;Spring Boot;Dubbo
中图分类号:TP311;G251 文献标识码:A 文章编号:2096-4706(2021)07-0010-04
Design and Implementation of the Institutional Scholar Base Platform Based on Microservice Architecture
LI Haiyan,WU Yuanye,CUI Yiming
(Shenzhen University Library,Shenzhen 518060,China)
Abstract:The scholar base has received the attention of more and more libraries and scientific research institutions,and the article has built a institutional scholar base platform based on microservice architecture,relying on mature open source framework,using the Spring Boot framework to build back-end microservice,front-end based on React and uses Ant Design framework,and the platform can implement agile development and be highly scalable. Then,designing algorithm of name disambiguation for the platform,the system is well operating,and can provide experience and reference for the construction of institutional scholar base.
Keywords:microservice;institutional scholar base;name disambiguation;Spring Boot;Dubbo
收稿日期:2021-03-09
基金项目:深圳大学校级青年扶持项目(Q NFC1948)
0 引 言
机构学者库以机构学者为中心,对学者的研究成果、学术活动等结构化数据进行收集、存储和管理,旨在以各种方式将分布在不同系统的数据进行整合,并通过可视化的统计及分析功能满足众多个性化需求[1]。机构学者库的建立有利于高校图书馆或科研部门对学术数据进行长久存储,并在此基础上,按学院、学者、成果类型、时间等维度进行成果统计,分析各学科的科研趋势,提供精准的学科服务,更长远的目标是通过展示学者的研究成果提升学者的影响力,进而促进学者间的合作。
在当前学者库建设过程中,学者成果数据往往由学者自主提交,学者参与感不强,即使有政策鼓励,也难以保证时效性[2]。部分支持管理员批量导入,系统自动或人工匹配后发给学者认领,但是受学者姓名歧义问题困扰,工作量较大。特别是英文文献,存在同一作者对应多个英文名,不同的学者有同样的英文名等问题,系统辅助消歧显得尤为重要。学者成果除论文、专著外,开始向专利倾斜,并考虑将专题讲座、课程教学演示文稿等阶段性成果纳入学者的个人成果,故机构学者库平台应灵活可扩展,能敏捷开发,迅速迭代,满足边建设、边使用、边完善的要求。
综合以上问题,笔者提出了基于微服务架构的机构学者库平台建设,并针对平台建设中的姓名消歧问题进行设计,系统具有高可扩展性、可为其他圖书馆和科研机构提供建设参考。
1 微服务开发框架搭建
微服务架构是一种把单体应用拆分成各种独立可运行服务的架构方式,这些服务通过轻量级协议通信。其有以下优点[3]:
(1)服务粒度小,聚焦解决具体业务,业务清晰,易于开发与维护。
(2)每个服务独立部署,松耦合,能持续交付和优化。对某个微服务进行修改,只需要重新部署这个服务即可,不影响整体框架。
(3)按需收缩,可根据需要实现粒度扩展,如某个服务吞吐量较大,可增加内存或升级CPU等。
使用微服务架构,可以使平台更加灵活,易于持续维护和扩展。
1.1 相关框架介绍
本平台采用开源框架Spring Boot、Duboo、Ant Design来搭建,各框架特点如下:
(1)Spring Boot。Spring Boot[4]继承了Spring框架优势,帮助开发者更容易创建基于Spring的应用程序和服务,拥有良好的可扩展性。Spring Boot提供spring-boot-starter-web.jar,嵌入了Tomcat,简化了项目的部署,同时可以支持使用Spring MVC的注解。实现自动配置,不用进行复杂的xml配置。
(2)Dubbo。Dubbo[5]是阿里巴巴公司开源出来的一款轻量级、高性能的Java RPC框架,能与Spring框架无缝对接。
(3)Ant Design。基于React的Ant Design[6]提供的组件构建,React使代码呈现模块化,可维护性高。Ant Design是蚂蚁金服开发和正在使用的一套服务于企业级产品的界面设计组件,通过模块化的解决方案,降低生产成本,让设计者专注于更好的用户体验。
1.2 基于微服务架构的机构学者库平台搭建
本平台依托于成熟的开源技术,采用Spring Boot+Dubbo搭建微服务架构,基于React的Ant Design用于搭建界面,实现多层设计,业务分割。逻辑架构图如图1所示。系统的前端使用Ant Design,拥有开箱即用的高质量React组件,界面设计快捷,分层清晰,易学易用。与传统的B/S单体架构相比,基于微服务架构的机构学者库平台,将系统分成应用层、服务层、数据持久层、数据层四层。将具体的业务需求抽象成逻辑服务,如学者信息管理、论文作者核对、论文地址核对等,这些业务服务基于Dubbo形成微服务,注册到Zookeeper中,应用层借助Spring Boot开发框架,将抽象出的服务以Rest API或WebService的方式提供给第三方系统对接,便于定制开发,使系统具有高可扩展性。
2 平台建设内容
2.1 基本功能
经过需求收集和分析,本平台建设基本功能如下:
(1)登录认证体系。通过标准化接口,对接机构统一身份认证体系,实现校园卡号/工号登录。
(2)用户管理。增加、禁用用户;设置角色,用于设置用户模块访问的权限;设置审校权限,用于审校其他用户的工作等。
(3)参数设置。设置系统参数如服务站点、文件存放路径、登录失效锁定次数、锁定周期等。
(4)机构学者库主要业务模块。
文件上传模块:分为导入文献数据平台下载的文件和导入已知的收录号两种导入模式,并设置收录类型、收录时间。文献数据平台文件导入后,可先进行系统的自动清洗、查重等,并完成系统的自动消歧。导入已知收录号,可处理该批次的统计结果。
文件管理模块:已上传文件的查看、打标签、分配给其他馆员处理、导出该批次的统计结果等。
核对模块:分未核对列表、部分核对列表、核对完成列表、所有核对列表、核对存疑列表等子模块,支持按序号、收录号、作者名、导入文件名、学者核对等信息检索;上次核对即为详细的核对页面,包括核对地址和核对作者,核对地址支持查相似地址、学者单位,用于辅助地址核对;核对作者支持按作者模糊查询,并支持按作者全称和简称查询,大大地提高了人工核对效率。核对存疑列表用于存疑数据的备注、统计及导出。
日志服务模块:按核对人、核对类型、时间区间,统计个人的完成数量及完成时间。
统计服务模块:支持按导入的文件统计、按第一作者统计、按通讯作者统计、按所在引文数据库等等,根据需要进行筛选,并生成统计报告。支持按需导入,如学科CNCI和FWCI文件等。
2.2 主要数据库表设计
经过对系统平台功能进行分析,系统配置及权限相关表:系统权限表sys_permission、系统配置项表sys_parm、菜单表sys_menu、菜单角色关联表sys_menu_role、角色表sys_role、角色权限表sys_role_permission、用戶表sys_user、用户角色关联表sys_user_role等。
业务相关表:学者信息表szu_hrinfo、学者机构表szu_org、机构类型表szu_orgtype、学者别名表szu_hrinfo_alias、文献信息表p_articleinfo、文献详情表p_articledetail、文献作者表p_author、文献批量文件p_file、文献地址表p_org、文献地址作者关联表p_org_author、工作日志表p_work_log等,数据库采用MySQL,主要业务数据库表详情见有表1、表2、表3。
2.3 作者姓名消歧
针对成果里英文作者对应的中文学者消歧困难的问题,设计学者消歧算法,实现系统辅助消歧。本系统以Web of Science数据库数据为深圳大学科研处及各学院提供数据分析。
作者姓名消歧分为先验数据处理、待消歧数据预处理、作者姓名消歧流程三个阶段,具体如下:
(1)先验数据处理。对接本单位的人事接口,获取学者的基本信息如:校园卡号、姓名、性别、单位、出生日期、入职日期、在岗状态等存入本系统的学者信息表,并通过汉语拼音著者号码表,将学者的姓名转成对应的拼音,生成“姓全拼+‘,+名全拼”格式及“姓全拼+‘,+名首字母”格式存入学者别名表,作为学者匹配的先验数据,符合大部分期刊英文文献命名规则。
(2)待消歧数据预处理。先根据文献地址获取属于本机构的作者姓名;然后进行作者数据清洗,处理数据中“-”“.”空格等特殊情况,标准化后作者名存入文献作者表。
(3)作者姓名消歧流程。消歧过程如图2所示,系统消歧成功后,系统自动填入消歧数据,由人工核对确认无误后,修改核对状态,并将作者名补充到学者别名表;对于系统消歧失败的,由人工核对,利用地址相似性匹配单位,利用作者名进行模糊查询,匹配成功则修改核对状态,并将作者名补充到学者别名表;否则标注存疑信息,导出与各单位核对。
3 实施情况与效果
深圳大学图书馆机构学者库自2020年8月份上线以来,运行稳定,效果图如图3所示,处理Web of Science数据库收录的发文单位为“Shenzhen Univ”和“Shen zhen Univ”的文献,共完成26 785篇论文的核对(截至2021-01-10),为学校及各学院提供了多份数据报告,大大提高了馆员的工作效率。
本系统处理数据年份从2020年开始处理,并陆续回溯旧数据,如表4所示,按处理次序从左至右列出数据,通过作者姓名消歧算法,随着存量数据的增加,自动消歧的成功率逐步提高,经过相似单位及模糊学者查询辅助人工核对,作者消歧成功率在97.8%以上。
4 结 论
机构学者库的建设与应用是循序渐进、相辅相成的动态过程,本平台基于微服务的架构,可以满足“边建设、边使用、边完善”原则,实现机构学者库的构建与应用同步进行。同时为姓名消歧设计切实可行的算法,实现自动消歧,并辅助人工核对,完成学者成果的归属,为其他图书馆和科研机构提供可借鉴的方案。
未来在数据建设方面,支持多种成果类型的抓取、录入,并开放学者自主填报及认领功能,协同实现数据的高质量建设。支持与第三方对接,与查收查引平台对接,完成学术数据的同步更新;与职称申报平台对接,完成学者的学术成果补充。
进一步完善学者姓名消歧算法,在本算法的基础上,利用二三级机构、合著者、研究方向等特征,进行深度的自动消歧,进一步提高自动消歧的成功率。
参考文献:
[1] 闫伟东.学者知识库建设探究——以深圳学者知识库为例 [J].图书馆建设,2018(12):57-62.
[2] 郑昂,曾建勋.数字图书馆学者库构建方式研究 [J].图书情报工作,2020,64(5):133-140.
[3] 林伟明,杨巍.基于微服务构建的新一代图书馆服务平台 [J].图书馆杂志,2020,39(8):66-74.
[4] Spring. Spring Boot [EB/OL].[2021-3-26].https://spring.io/projects/spring-boot.
[5] gitee. Apache/Dubbo [EB/OL].[2021-3-25].https://gitee.com/apache/dubbo.
[6] Ant Design. Ant Design of React [EB/OL].[2021-53-28].https://ant.design/docs/react/introduce-cn.
作者简介:李海燕(1988—),女,汉族,湖北孝感人,助理馆员,硕士,研究方向:计算机应用、数据分析等;吴元业(1984 —),男,汉族,广西合浦人,館员,硕士,研究方向:计算机应用、图书情报;崔一鸣(1993—),男,汉族,广东深圳人,助理馆员,本科,研究方向:系统开发及应用。