作者贡献声明:
刘毅,汤怡洁:提出接口建设研究思路,设计研究方案;
周子健,杨锐:进行实验与接口实现;
李传席,张显峰,刘春江:参与接口应用场景设计与分析;
刘毅,汤怡洁:论文起草;
刘毅:论文最终版本修订。
【目的】通过科技知识组织体系共享服务平台的服务接口建设,有效帮助我国科技信息服务行业实现标引的语义化规范化流程、语义检索与浏览、知识关联与推理发现等服务。【应用背景】采用标准的接口规范构建开放接口是实现科技知识组织体系STKOS对外服务的重要途径之一。【方法】基于科技知识组织体系STKOS引擎API,提出开放查询和推理接口模块化设计方案和接口规范设计。【结果】在接口实现的基础上,通过各类接口方法集的模块化组合调用实现分类聚类、资源标引、智能检索三种典型的应用场景。【结论】通过对STKOS开放查询和推理接口的应用,达到利用科技知识组织体系提升第三方信息系统知识服务能力的目标。
[Objective] The construction of the service interface in STKOS sharing infrastructure can effectively help information services industry to achieve standardization semantic annotation process, semantic search and browsing, knowledge inference and discovery. [Context] Using a standard specification to build open interfaces is one of the important ways to implement services by STKOS. [Methods] Based on STKOS API, the modular design of STKOS query and inference interface are described, and the interface specification design is proposed. [Results] On the basis of the interface, various types of modular interface methods are combined and three types of demonstration scenarios are achieved, including taxonomic clustering, resource annotation, intelligent retrieval. [Conclusions] The objective of enhancing the third-party information systems knowledge service capabilities by STKOS is achieved.
随着大数据时代的来临,面对海量的组成结构、类型格式、存在形态各异的信息,如何进行知识组织以适应计算机的海量信息处理、分析、计算,如何利用知识组织体系进行知识的深度关联以提供深入知识内容的整合,成为当前图书馆和文献信息分析工作者共同面临的问题。
开放式服务环境“科技知识组织体系共享服务平台”使我国的科研机构、信息机构、相关系统、相关人员能够方便有效地利用“科技知识组织体系(STKOS)”[ 1]和相关的软件工具实现语义化标引、检索、浏览、关联、推理等知识发现服务。STKOS共享服务平台通过建立基于STKOS的知识查询和知识推理引擎,将知识组织体系变成一个能够有效对外提供服务的、开放的知识查询和推理引擎,使用户可以通过标准的接口协议,实现知识组织体系的深度开发和利用。STKOS引擎底层利用高效存储和索引技术实现科技知识组织体系的存储,开发的STKOS API满足系统对知识组织体系的各种操作请求。
为了更好地满足第三方应用系统对STKOS的深度开发和利用,在STKOS引擎开发的基础上建设了一系列标准化、集成化的开放查询和推理接口,为上层的各类应用提供语义支撑,使第三方信息服务机构可以通过模块化选择、集成方式,灵活地将科技知识组织体系的检索、查询和推理功能嵌入到自己的服务应用中。STKOS开放查询和推理接口通过对STKOS API的封装组配,实现了包括浏览、标引、检索、关联在内的多种服务流程。STKOS开放服务接口能够支持各种不同类型的平台需求,包括在标引过程中利用STKOS提高术语和概念的标引规范化、有序化;在检索过程中实现扩展检索和收缩检索,提高检索的查全率和查准率;支持语义关联检索,并利用STKOS实现检索结果的自动分面和自动聚类。
结合STKOS API提供的功能和第三方应用系统的应用场景,开展了STKOS开放查询和推理接口的建设与示范应用工作。
基于STKOS引擎建设的开放查询和推理接口是平台对外提供服务的重要途径之一。通过调研发现,国外类似的平台与系统已经形成了通过接口对外提供服务的模式,如UMLS[ 2, 3]采用Web Service技术的SOAP协议对外提供服务,实现涉及医学领域的100多个分类表、叙词表和术语表中概念、术语的浏览检索;HILT(High-Level Thesaurus)[ 4]提供基于SRU/W 协议的APIs 检索服务;由欧盟Neon项目资助的Watson引擎[ 5]分别提供使用SOAP协议和RESTful协议的Web Service,支持对底层本体的服务访问;Sindice在底层建立的2 000万篇RDF文献索引[ 6]的基础上实现了Search API。国内的知识组织体系数字化服务与国际上还存在一定的差距,其中中图是提供了数字化服务的知识组织体系,其他的叙词表、分类法等还未见提供基于Web的服务。STKOS超级词表的建设构建了跨领域的词表集合框架,在将词表数字化的过程中,通过Web Service技术对外提供开放接口服务。
根据不同的应用需求,STKOS开放查询和推理接口应该能够灵活配置、模块化集成,将知识组织体系有效集成到第三方知识服务应用中。因此,接口的设计遵循模块化、可重用原则,在设计时考虑到最大化的模块独立、逻辑清晰和简洁等各方面的问题。在接口方法的设计上从用户的角度出发,以用户的可理解性和接口的易用性为两大设计宗旨。接口方法设计的具体原则包括:
(1) 接口名称、参数和返回值的定义清晰体现接口功能;
(2) 根据应用场景划定接口的服务颗粒度;
(3) 以简单的接口参数为原则,避免设计有针对性的特殊功能规则的参数造成接口的紧耦合;
(4) 接口返回值以String等简单类型为主,并针对STKOS元数据定义几种复杂类型;
(5) 接口异常在服务器端进行设定,返回友好清晰的异常信息。
STKOS开放查询和推理接口整体设计如图1所示:
根据STKOS引擎API和第三方应用需求,STKOS接口整体设计严格按照模块化理念进行,将接口划分为不同类型的接口方法集,每类接口由一系列的接口方法组合而成,实现模块式组合调用。具体来说,采用两种划分模式:一种是以第三方应用流程为基础的功能模式;另一种是以STKOS超级词表为基础的元数据模式。
(1) 功能模式
通过对第三方的应用需求分析,将STKOS接口具体划分为4大功能:浏览服务接口(Browse Service)、检索服务接口(ConceptSearch Service; TermSearch Service)、关联推理服务接口(RelatedSearch Service)、通用服务接口(General Service)。接口采用SOAP协议实现,具体的接口服务功能描述与代表接口方法如下:
①浏览服务接口
针对超级词表中的范畴表和范畴类实现的接口方法,包括获取顶层范畴类、指定范畴类的上下位范畴类以及范畴类的层级结构等。具体含24个接口方法,如listRootCategory Class (string kui); getSubject(string sid); 等。
②检索服务接口
针对超级词表中的概念和术语、实现底层利用Solr索引查询的方法封装。包括获取上位、下位、相关等不同属性的概念和术语。具体含16个接口方法,如getConceptListByURI(string cuiList); queryBroaderTerm(string keyword, string subjectIds, int count); 等。
③关联推理服务接口
实现关联查询的接口,用于发现超级词表中概念或术语之间的关联关系。包括指定术语的相关术语、术语所属范畴类、指定概念的语义相关术语等。具体含41个接口方法,如isConceptURI (string uri); getConceptRelatedList(string cui); 等。
④通用服务接口
一系列通用接口,实现接口运行的状态、版本变更信息等以及STKOS超级词表的统计信息(范畴表、范畴类、概念、科技术语、来源术语的统计信息)。具体含13个接口方法,如getConceptCount(); getVersionChange(int verson); 等。
(2) 元数据模式
通过对STKOS超级词表的元数据规范进行分析,将STKOS接口具体划分为三大类:概念服务接口(/concept)、范畴服务接口(/class、/subject)、通用服务接口(/common)。接口采用RESTful协议实现,具体的接口服务功能描述与代表接口方法如下:
①概念服务接口
与STKOS超级词表中概念相关的获取方法集合,包括浏览、检索、关联推理等。具体含16个接口方法,如/concept/cui/{cui}?ak=&_type=; /concept/{cui}/altla-bels ?ak= &_type=;等。
②范畴服务接口
基于STKOS超级词表中范畴类、范畴表实现的接口方法。具体含24个接口方法,如/subject/id/{sid}? ak=&_type=; /class/ccui/more/{ccui}?ak=&_type=;等。
③通用服务接口
与SOAP接口中的通用服务接口类似,实现了接口运行状态、统计信息等方法。具体含7个接口方法,如/common/ metainfo?ak=&_type=;/common/error/{co-de}?ak=&_type= ;等。
为了使第三方应用系统能够更加灵活、便捷地调用接口,STKOS开放查询和推理接口除了在技术层面沿用Web Service的标准规范以外,根据STKOS引擎和科技知识组织体系元数据规范制定了一套相关的接口规范。规范指明STKOS引擎开放查询和推理接口为授权认证访问方式,在每次接口访问传递参数时,必须将用于安全验证的公钥和密钥同时传递到服务器端进行身份验证,通过验证后才能具体进行接口方法的调用。STKOS开放查询和推理接口规范着重说明三个方面的内容:
(1) 接口请求数据包格式规范
接口方法分为SOAP协议和RESTful协议两种,在发送请求时除了包含方法指定的输入参数以外,还需要包含系统级的安全认证参数。其中基于SOAP协议的接口方法在请求数据时需要在SOAP头文件中包含三个结果加密处理的认证信息,即username、password和token。基于RESTful协议的接口方法在请求数据时利用ak(系统授权码)、timestamp(系统时间戳)进行安全身份认证。
(2) 接口响应数据包格式规范
根据接口协议不同而有所区别,SOAP协议返回的响应数据除了标准的String、Int、List等数据类型外,还根据STKOS元数据定制复杂数据类型,如List
(3) 接口错误信息规范
当发生接口调用失败时,服务器向客户端发送相应错误信息,主要包含error_code(错误码)、error_ msg(对调用失败原因的描述)。同时针对各种错误码给出了具体的错误信息描述。
为了保证用户对接口方法理解的正确性以及调用的准确性,设计了接口方法的使用规范。该规范针对每一个接口方法进行描述说明,以“获取指定概念信息”接口方法为例说明,具体使用规范如图2所示:
开放查询和推理接口建设采用Web Service技术分别实现基于服务的体系架构SOA和基于资源的体系架构ROA的调用方式[ 7, 8]。在基于SOA架构的方式中 STKOS的功能被封装在功能模块中,利用这些已经封装好的功能模块与第三方系统实现调用关系。RESTful是基于资源的体系结构,可以通过HTTP协议实现STKOS的第三方系统调用,利用RESTful来实现STKOS接口开发可以降低开发的复杂性,提高系统的可伸缩性。
STKOS选用CXF[ 9]作为对外服务Web Service接口框架,同时支持基于SOAP和Restful的Web Service的开发与发布,采用WSDL2.0作为标准实现Web Service的发布和使用。具体来说,在STKOS引擎和STKOS API之上,通过接口管理器控制STKOS开放查询和推理接口的对外服务。接口管理器主要负责各类接口的权限验证以及分配调度,包含接口封装的各类方法以及机器用户认证模块。第三方系统使用接口前需要在STKOS引擎中登记注册为机器用户,获取STKOS引擎提供的公钥和密钥。
STKOS接口以授权访问的形式提供服务,即在请求Web Service的过程中需要进行用户名和密码的验证。在SOAP协议的接口实现过程中利用SOAP Header传递验证信息,在客户端对封装进SOAP头文件的验证信息进行加密处理,当请求传递到服务器端后调用相对应的解密算法并验证用户名和密码的有效性。如果请求传送过来的用户名和密码不能与服务器端相匹配,服务器将拒绝此次Web服务请求。基于RESTful协议的接口也实现了验证请求方式,具体是通过API Key认证方式进行认证。STKOS开放查询和推理接口系统框架使用Spring框架, STKOS接口类和接口的实现类都需要在Spring中进行注册,并将其发布为Web Service。正式对外发布的Web Service可以通过WSDL文件获取接口信息。STKOS接口服务器端部署成功后,客户端可以通过多种方式进行Web Service接口方法的调用。
通过对开放查询和推理接口建设中各类接口方法集的模块化组合调用,结合各个示范应用系统的需求分析,可以实现的应用场景包括:支持第三方应用系统基于知识组织体系进行资源的分类、检索结果的自动分面和聚类等;将集成知识组织体系动态嵌入第三方应用系统中,实现资源的分类标引和主题标引;通过知识组织体系提供第三方系统智能检索服务,例如扩检/缩检、关联检索等。
通过STKOS开放知识组织系统提供的开放查询和推理接口访问STKOS,在第三方应用系统上实现语义检索和关联检索,实现关联推理、检索结果自动分面、自动聚类等。利用STKOS接口进行集成服务,主要可以分为两种应用模式:
(1) 分类导航
绝大多数知识组织体系在网络环境中的应用都体现在作为一个信息浏览的知识框架来组织和展示信息,如基于文献分类法的学科信息门户导航,主要用于检索网络上高质量的学术资源,英国的BUBL LINK[ 10]、美国的INFOMINE[ 11]等。利用STKOS超级词表,通过queryConcept方法将资源的主题词送入STKOS引擎,获取对应规范概念;接着通过getConceptLinked CCUI方法根据规范概念获取概念所属的范畴类;最后调用getCategoryClassByURI方法向第三方返回相应的范畴类,用于资源的分类导航。
(2) 聚类分面
在服务平台中进行检索,检索结果集可以利用STKOS接口调用超级词表进行结果聚类和分面。第三方服务系统提交文献的关键词调用STKOS接口,STKOS引擎根据知识组织体系中概念和范畴计算文献的自动分类类目。第三方服务在得到返回结果后,根据聚类的结果类目构造出范畴类树,用户展开类树,点击相应类时,即可以查看只属于当前分类的记录。
通过STKOS开放知识组织系统提供的开放查询和推理接口访问STKOS,在第三方应用系统的标引过程中调用STKOS的领域词表,提高标引系统术语、概念等的标引规范化、有序化,能够起到辅助第三方应用系统资源标引的作用[ 12]。利用STKOS接口进行资源标引,主要可以分为两种应用模式:
(1) 手工辅助标引
第三方应用系统在进行数据加工时,通过STKOS资源标引服务接口进行分类和主题词的辅助标引。加工人员手动点击操作按钮,系统向STKOS引擎发出接口调用请求,STKOS引擎根据请求返回范畴类层级或者概念列表供用户手动选择,帮助用户进行数据的规范标引。其中,分类辅助标引以STKOS超级词表的范畴类为基准,将范畴类目按照层级结构显示;主题词辅助标引以STKOS超级词表的概念为基准,以列表形式显示。
(2) 自动分类标引
根据第三方系统自动抽取出的主题词或者系统中已经标引过的主题词,通过后台程序定时触发实现。依次将每条记录中的主题词通过接口提交到STKOS引擎,获取STKOS超级词表中对应的概念和范畴类,根据概念进行主题词规范化处理,根据范畴类支持数据的自动学科分类。
上述两种应用模式的具体操作流程如图3所示。通过STKOS接口实现记录分类处理,首先调用listRoot Subject方法获取顶级范畴类,返回给用户层供选择;然后根据用户选择的范畴类调用listSubject-WithLevel方法获取对应的下级范畴类层级。整个调用过程分多次进行,在用户界面以树型结构显示范畴类层级。
通过STKOS开放知识组织系统提供的开放查询和推理接口访问STKOS,支持第三方应用系统中的扩展检索、缩小检索等相关检索,进而提高系统的查全率和查准率。利用STKOS接口进行智能检索,主要可以分为两种应用模式:
(1) 扩检/缩检
借助词表中的概念关系扩展与缩小用户检索式是各种网络信息检索工具提高其检索性能的常用方法之一。扩展检索的功能是当用户在第三方检索系统中提交检索词进行检索时,系统将检索词通过STKOS接口提交STKOS引擎,利用这个检索词在超级词表中进行检索,将一组同义词返回给第三方检索系统,第三方检索系统用这一组词执行检索,提高系统的查全率。收缩检索是将用户提交的检索词传送入STKOS引擎进行检索,通过接口获取STKOS中概念的上位、下位和相关概念,供用户在词表等级结构中进行选择实现收缩检索。
(2) 关联检索
STKOS超级词表描述了概念与概念、概念与术语、概念与范畴之间的各种关系,基于STKOS的关联检索支持知识浏览、概念检索、词汇提示、同义词环扩展等基于内容的高级服务, 从而克服了机械式字面匹配的缺陷。以词汇提示为例,当用户在检索框中输入检索词时,第三方检索系统通过STKOS接口调用STKOS引擎的Solr索引,通过Solr分面检索获取以输入字符开头的所有规范概念,并在输入下拉框中显示,供用户检索选择使用。
STKOS的扩展检索接口服务在中国农业科学院农业信息研究所的科技文献信息平台(NAIS)上得到应用,以输入检索词flow为例,采用getConceptAltlabelList方法获取“flow”的非优选名称;采用getConceptNarrowerList和getConceptBroaderList方法获取概念的上位和下位概念列表,将这些接口方法的结果进行组合,返回一组词组(flow、流等)。最后利用接口返回的词组送入NAIS系统中进行检索操作,实现了检索词扩展检索。具体的扩展检索时序如图4所示。
以中国科学院文献情报中心的集成服务系统为例,针对输入的检索关键词,在返回检索结果的同时通过调用STKOS接口获取检索关键词的上位、下位、相关和语义关系的概念集合,具体检索服务效果如图5所示:
图5中主要描述了输入检索关键词“stem cell”通过STKOS接口实现的三种扩展服务:
①界面右侧的相关词汇是将检索关键词“stem cell”通过queryConcept接口送入STKOS引擎进行概念规范化处理后,再利用getConceptNarrowerList接口和getConceptBroaderList接口获取概念的上位和下位关系概念,通过扩展后“stem cell”检索关键词获得18个规范概念,如Cells、Lymphocyte、fibroblasts等。将返回的概念集合在服务系统中进行扩展检索,并统计各个概念检索的结果命中数。
②界面上方是通过queryRelatedConcept接口获取概念的相关关系概念,利用返回的相关关系概念进行检索,将检索结果进行统计呈现。在科技知识组织体系中命中的与检索关键词“stem cell”相关的词包括Progenitor Cell、Mother Cell、Blast Cells等7个。
③在检索的文献结果列表中,利用getConcept-Semantic-RelatedList接口获取概念的语义关系概念,将语义关系概念在检索结果文献中的出现情况进行分析,在每条结果记录中将语义关系概念进行高亮显示,并在描述信息中标识出语义相关词汇。
在数字化、语义化发展背景下,传统服务系统仅仅依靠自身的信息组织形式已经无法满足用户对知识发现的需求,无法深层次地挖掘和发现知识内部的关联关系。STKOS开放查询和推理接口对外提供的服务帮助传统服务系统向知识服务系统快速转换,利用科技知识组织体系提升系统服务能力。STKOS开放查询和推理接口目前已完成主体建设,并且进行了一定范围内的示范应用。通过标准接口协议,STKOS接口帮助第三方系统较好地实现知识组织体系的深度开发和利用。与此同时,在示范应用的过程中,发现通过STKOS接口对外提供语义关联服务方面的服务能力略显不足,在未来工作中将进一步完善和改进。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|