论文部分内容阅读
〔摘 要〕首先,针对关联数据的国内外发展现状和相关技术进展进行研究,并且调研了目前主要的关联数据集,并深入研究了DBPedia数据集、DBLP数据集和CORDIS数据集。接着基于中国科学院集成信息平台CASIIP,同时结合中国科学院研究所群组集成知识平台项目一期、二期的建设情况,充分分析平台语义化扩展方面的需求和可行性,并且在关联数据的基础上提出了CASIIP语义化的扩展解决方案。最后在CASIIP的内容管理组件、搜索组件和综合资源管理组件中利用DBPedia的lookup和Spotlight分别实现了组件语义化扩展。实验证明,该方法合理可行,为CASIIP实现从基础内容发布建站平台软件到语义化集成资源的平台软件发展奠定了基础。
〔关键词〕关联数据;IIP;信息平台;语义化;DBPedia;关联数据集
〔中图分类号〕G250.7 〔文献标识码〕A 〔文章编号〕1008-0821(2016)06-0066-08
〔Abstract〕First,according to the related data at home and abroad development status and technical progress of research and investigation of the current major linked data sets,and in-depth study of the DBPedia data sets,the DBLP data set and CORDIS data set.Then based on the Chinese Academy of Sciences integrated information platform CASIIP,combined with China Academy of Sciences Institute of group knowledge integration platform project phase,phase II construction,a full analysis of semantic platform extended the demand and feasibility of,and in the data association based on the proposed solution CASIIP semantic expansion.Finally in the CASIIP content management module,search components and integrated resource management components using DBPedia the lookup and spotlight respectively,to achieve the assembly semantic expansion.Experiments showed that the method was reasonable and feasible.CASIIP implementation from the foundation content release station platform software to the semantic resource integration platform software development laid the foundation.
〔Key words〕linked data;IIP;information platform;semantic expansion;DBPedia;linked data set
中国科学院集成信息平台(CASIIP)是为研究所一线科研人员以及所图书馆员提供信息集成与交互服务的个性化门户平台,需要在充分利用研究所图书馆资源的同时,实现对第三方开放资源的集成服务,并能够通过平台建立起科研人员与图书馆员之间良好的互动交互机制,同时基于不同科研用户的需要,提供用户个性化组织和利用信息资源与服务的功能。目前平台在中科院研究所得到广泛应用,已经在62个研究所开展应用服务。
随着互联网知识内容产出方式的不断变化,用户所需求的数字知识资源越来越广泛化综合化,类型和格式也日益复杂化多样化。与此同时,关联数据技术的快速发展增强了语义网技术的可行性,近年来日益增长的关联开放数据网络为实现计算机自动发现和处理网络上异构的来自不同数据源的数据提供了便利。面对用户需求的变化和外部关联数据云的爆发式增长,如何利用关联数据云中的数据对CASIIP平台进行语义化扩展是本文重点讨论的问题。
1 关联数据与关联数据集的发展近况
1.1 关联数据整体概述
关联数据(Linked Data)[1]的宗旨是构建计算机能理解的具有结构化和富语义的数据网络,是在2006年由Tim Berners-Lee首次提出的。这一概念的提出能够更好地支持构建智能化的应用,弥补目前仅仅是人能读懂的文档网络的不足。关联数据通过网络把以前没有关联的相关数据连接起来,成为推动语义Web发展的重要方式之一。
关联数据已经被W3C推荐为语义网最佳实践,已经成为当前语义网领域研究和实践的热门主题。W3C为促进语义网和关联数据的发展所倡导的“关联开放数据项目(Linked Open Data Project)”从2006年至今,已经吸引了多领域和无数参与者的关注,将数据发布为关联数据并且相互关联起来,形成了关联数据云(LOD Cloud),也是实质的数据网络。近年来关联开放数据网络以惊人的速度增长,并且仍然保持高速地发展。截至2014年8月份,整个关联开放数据网络已经包含了570个关联数据集,并通过2 909个链接集进行相互关联,如图1所示。 1.2 关联数据集分析
1.2.1 关联数据集调研
DataHub作为一个数据注册服务中枢,目前已经收录了9 000多个数据集,其中属于Linking Open Data Cloud组的数据集有212个[3]。DataHub是基于CKAN[4]构建的,CKAN是一个开源的Python框架。在CKAN上注册关联数据集必须满足以下几个条件:①所有数据条目通过可参引的URIs可以访问;②所有的数据必须以规范的RDF格式(RDFa,RDF/XML,Turtle,N-Triples)描述;③数据集至少包含1 000个三元组;④数据集与其他关联数据集之间至少包含50个有效链接;⑤同时需要说明数据集允许访问的形式(RDF crawling,RDF dump,SPARQL endpoint)。主要的关联数据集(部分)如表1所示。
1.2.2 DBPedia数据集分析
DBpedia[5]由柏林自由大学和莱比锡大学的研究人员发起,与OpenLink Software公司合作,致力于从维基百科的结构化和半结构化信息中抽取数据并生成RDF三元组,将其组织后形成庞大的数据集,与外部的关联数据连接,提供给人们使用。DBPedia数据来源于WikiPedia,以定时抽取和实时监测两种模式同步数据,解决了目前知识库建设中存在的数据规模与其结构化程度之间的矛盾,以较低成本建设和维护结构化程度较高的大规模海量知识库。DBPedia采用基于语义Web的知识组织模式,遵循RDF语法描述知识并通过4种知识分类方法进行语义分类,从而实现了知识内容的跨领域性[6]。
在LOD关联开放数据网络中,DBPedia作为最主要的一个数据中枢与其他开放关联数据集进行链接,以DBPedia为圆心,通过RDF链接直接或间接的辐射到外部数据集。DBPedia 2014数据集中更是包含了5 000万左右的RDF链接与外部关联数据集进行关联,链接数量排名前十位的关联数据集如表2所示。
同时,越来越多的数据集反向链接到DBPedia中,链接总数超过3 900万个,如ACM数据集、NSF数据集、DrugBank等。
DBpedia提供了URI查找服务 DBpedia Lookup[7],即通过用户提供的关键词查找相关的URI,实现方式包括关键词查询(Keyword search)和词前缀查询(Prefix search)。查询结果格式为XML文件,内容包括URI,标签、简短的描述,类型、分类和在Wikipedia的内部链接引用次数。
DBpedia同时也提供了类似语义标注的工具DBpedia Spotlight[8],能对自由文本中所涉及到的DBpedia概念进行自动标注,为非结构化信息资源通过DBpedia关联到关联数据云(Linked Data Cloud)提供了实现基础。该工具可执行命名实体的抽取,包括实体检测和命名消歧,也可以在其他信息抽取任务中构建自己的命名实体识别解决方案。
1.2.3 DBLP数据集分析
DBLP由德国特里尔大学的一个团队开发和维护[9],提供计算机领域高质量的科学文献搜索服务,并且只储存这些文献的相关元数据,如标题、作者、发表日期等,不提供全文下载。截至到2015年4月DBLP已经收录有2 963 980篇文献信息,该数据集遵循ODC-BY 1.0数据开放协议供用户公开使用。DBLP收录的文献类型有Journal Article、Book and Theses、Editorship、Parts in Books or Collections、Informal Publications、Conference and Workshop Papers、Reference Works共7类,提供的数据描述信息包括author、title、booktitle、pages、year、address、journal、volume、number、month、url、cite、publisher、note、isbn、series、chapter等。
DBLP利用ReSIST项目构建的RKB Explorer对外发布关联数据,该数据集的数据相对滞后,最近的更新数据是2013年3月,包含43 153 440三元组,4.4G的RDF数据。DBLP提供SPARQL Endpoint语义查询服务,相关的SPARQL查询服务地址为:http:∥dblp.rkbexplorer.com/sparql/?query=。
1.2.4 CORDIS数据集分析
欧盟研发信息服务委员会(The Community Research and Development Information Service,CORDIS)发布的关联数据集CORDIS包含了所有欧盟的计划和项目信息[10]。该数据集中主要描述的实例类有4个(人员、机构、计划和项目),属性有44个(如项目资助、人员所属单位、项目起止日期、项目所属计划等)。在数据集中总共拥有人员实例93 669个、机构实例248 581个、计划实例764个、项目实例84 801个。
CORDIS数据集是通过D2R Server进行发布的,数据集不仅提供关联数据的浏览服务,同时也支持通过SPARQL Endpoint进行数据查询,相关的SPARQL查询服务地址为:http:∥wifo5-04.infomatik.uni-mannheim.de/cordis/sparql。
2 利用关联数据实现IIP语义扩展的方法研究
2.1 IIP组件使用情况分析
中国科学院集成信息平台CASIIP是一套基于Portal和CMS内容管理的集成信息系统,系统针对研究所、项目组、实验室、信息中心以及科研用户团队建立集成信息平台的需求而设计,为用户进行信息加工、组织和发布提供相关的服务,具有①简单、灵活、实用;②构建多社区服务;③专题数据库服务;④数据可视化功能;⑤集中式管理等特点。IIP平台在中科院“研究所群组集成知识平台可持续服务能力建设”项目中得到了广泛应用,本项目针对群组一期、二期选用IIP平台的23个研究所,100多个平台进行了分析,具体调研的组件包括内容管理、综合资源、第三方资源集成、交互以及其他各种类型的组件,总共包括15个以上组件,具体使用情况如图2所示。图2 IIP平台内组件使用情况 通过对IIP平台组件使用情况调研发现,使用频率最高,涵盖数据量最大的组件是内容管理组件和综合资源组件。在各个研究所的群组平台中,内容管理组件中的单篇全文组件主要用于描述科研团队人员信息、机构组织信息、仪器设备信息等;标题列表组件主要用于发布学术动态、各类学科快报等。综合资源组件多数情况下用于集成论文信息,同时也可以集成专利、项目、会议等各种资源信息。
2.2 基于关联数据的IIP语义扩展方法
根据上述研究,再结合目前中国科学院集成信息平台建设的实际情况,关联数据在集成信息平台的语义扩展方法的核心思想是利用关联数据技术将集成信息平台中的数据信息进行语义标注,并扩展关联外部的各大关联数据集。关联数据可以为集成信息平台扩展资源信息提供结构化的数据基础,提供多个分布式异构数据源整合的关联访问,将来自不同数据源的同一个实体数据进行整合,返回给用户关于该实体的尽可能多的相关信息的统一视图,从而为用户提供资源发现和访问服务的新的视角。简单来说,就是关联数据允许集成信息平台关联到更广泛的信息资源,并不局限于资源本身的信息,可以扩充科研人员、所属机构、科研成果以及其所属学科主题等其他信息到其他任何一个存在该信息描述的数据源。
3 IIP语义扩展模块设计与实现
3.1 IIP关联数据标引
单篇全文组件是IIP平台中最主要的内容呈现组件之一,用于显示后台内容管理组件发布的某篇文章的具体内容,通常用于描述科研团队人员信息、机构组织信息、研究进展和仪器设备信息等。IIP关联数据标引主要是针对IIP单篇全文组件进行语义化扩展,利用DBPedia关联数据集中的概念对文章内容进行标引。通过标引可以使IIP内部数据与对应的DBPedia知识库中的词条关联上,从而扩展了IIP内部数据的可读性和丰富性。
3.1.1 模块设计与实现
单篇全文组件的语义化扩展的设计思路是在不改变原有组件的使用和操作流程的基础上,通过用户选择自定义的方式支持语义化标引,用户可以在组件配置界面中勾选是否采用DBPedia关联数据集进行文章内容的标引操作。整个组件的默认设置是不实现关联数据标引,当用户手工勾选后,则界面呈现的文章内容是经过标引后的结果,正确标引命中的词出现超链接,点击直接跳转至DBPedia中相关的词条,实现了语义扩展阅读。具体的组件功能示意图如图3所示。
从图3中可以看出,针对单篇全文组件流程的二次开发改进主要集中在2个方面,一个是在组件配置过程中,加入了语义扩展配置选项;另一个是在组件的文章呈现流程中,根据语义扩展配置选项,实现调用DBPedia Spotlight工具实现语义标引的分支。
在单篇全文组件语义化扩展实现过程中,文章内容如何通过第三方开源工具Spotlight实现语义标引是关键技术点。组件首先采用htmlparser包进行内容的过滤,将过滤完成的纯文本字符串通过HttpURLConnection传给DBPedia Spotlight第三方工具,最后返回xml结果。整体模块流程如图4所示,当组件根据配置信息检测到该组件配置为语义化扩展组件时,则直接进入语义化扩展处理流程进行操作。否则,直接显示从数据库中获取的原始文章内容。
由于IIP中的内容发布组件支持html在线编辑器,大部分发布的文章内容都包含大量的html代码来控制整篇文章的格式,但是这些html代码不能带入第三方标引工具进行标引处理,一则会出现url超长现象,二则会导致标引结果的不准确性。因此,整个语义化扩展处理流程的第一步就是对文本进行清洗过滤,然后在此基础上进行语义化标引操作。整个处理流程的关键伪代码如下:
根据组件配置信息判断是否进行语义化扩展
IF(enableDBPedia==true) 开始语义化扩展操作
构建Parser parser=new Parser(articleContent);
TextExtractingVisitor visitor=new TextExtractingVisitor();
parser.visitAllNodesWith(visitor);
执行过滤后的文章内容字符串dealwithArticleContent=visitor.getExtractedText().trim();
将字符串进行URLEncode编码;
带入第三方开源工具spotlight=″http:∥spotlight.dbpedia.org/rest/annotate?text=″ searchWord ″
〔关键词〕关联数据;IIP;信息平台;语义化;DBPedia;关联数据集
〔中图分类号〕G250.7 〔文献标识码〕A 〔文章编号〕1008-0821(2016)06-0066-08
〔Abstract〕First,according to the related data at home and abroad development status and technical progress of research and investigation of the current major linked data sets,and in-depth study of the DBPedia data sets,the DBLP data set and CORDIS data set.Then based on the Chinese Academy of Sciences integrated information platform CASIIP,combined with China Academy of Sciences Institute of group knowledge integration platform project phase,phase II construction,a full analysis of semantic platform extended the demand and feasibility of,and in the data association based on the proposed solution CASIIP semantic expansion.Finally in the CASIIP content management module,search components and integrated resource management components using DBPedia the lookup and spotlight respectively,to achieve the assembly semantic expansion.Experiments showed that the method was reasonable and feasible.CASIIP implementation from the foundation content release station platform software to the semantic resource integration platform software development laid the foundation.
〔Key words〕linked data;IIP;information platform;semantic expansion;DBPedia;linked data set
中国科学院集成信息平台(CASIIP)是为研究所一线科研人员以及所图书馆员提供信息集成与交互服务的个性化门户平台,需要在充分利用研究所图书馆资源的同时,实现对第三方开放资源的集成服务,并能够通过平台建立起科研人员与图书馆员之间良好的互动交互机制,同时基于不同科研用户的需要,提供用户个性化组织和利用信息资源与服务的功能。目前平台在中科院研究所得到广泛应用,已经在62个研究所开展应用服务。
随着互联网知识内容产出方式的不断变化,用户所需求的数字知识资源越来越广泛化综合化,类型和格式也日益复杂化多样化。与此同时,关联数据技术的快速发展增强了语义网技术的可行性,近年来日益增长的关联开放数据网络为实现计算机自动发现和处理网络上异构的来自不同数据源的数据提供了便利。面对用户需求的变化和外部关联数据云的爆发式增长,如何利用关联数据云中的数据对CASIIP平台进行语义化扩展是本文重点讨论的问题。
1 关联数据与关联数据集的发展近况
1.1 关联数据整体概述
关联数据(Linked Data)[1]的宗旨是构建计算机能理解的具有结构化和富语义的数据网络,是在2006年由Tim Berners-Lee首次提出的。这一概念的提出能够更好地支持构建智能化的应用,弥补目前仅仅是人能读懂的文档网络的不足。关联数据通过网络把以前没有关联的相关数据连接起来,成为推动语义Web发展的重要方式之一。
关联数据已经被W3C推荐为语义网最佳实践,已经成为当前语义网领域研究和实践的热门主题。W3C为促进语义网和关联数据的发展所倡导的“关联开放数据项目(Linked Open Data Project)”从2006年至今,已经吸引了多领域和无数参与者的关注,将数据发布为关联数据并且相互关联起来,形成了关联数据云(LOD Cloud),也是实质的数据网络。近年来关联开放数据网络以惊人的速度增长,并且仍然保持高速地发展。截至2014年8月份,整个关联开放数据网络已经包含了570个关联数据集,并通过2 909个链接集进行相互关联,如图1所示。 1.2 关联数据集分析
1.2.1 关联数据集调研
DataHub作为一个数据注册服务中枢,目前已经收录了9 000多个数据集,其中属于Linking Open Data Cloud组的数据集有212个[3]。DataHub是基于CKAN[4]构建的,CKAN是一个开源的Python框架。在CKAN上注册关联数据集必须满足以下几个条件:①所有数据条目通过可参引的URIs可以访问;②所有的数据必须以规范的RDF格式(RDFa,RDF/XML,Turtle,N-Triples)描述;③数据集至少包含1 000个三元组;④数据集与其他关联数据集之间至少包含50个有效链接;⑤同时需要说明数据集允许访问的形式(RDF crawling,RDF dump,SPARQL endpoint)。主要的关联数据集(部分)如表1所示。
1.2.2 DBPedia数据集分析
DBpedia[5]由柏林自由大学和莱比锡大学的研究人员发起,与OpenLink Software公司合作,致力于从维基百科的结构化和半结构化信息中抽取数据并生成RDF三元组,将其组织后形成庞大的数据集,与外部的关联数据连接,提供给人们使用。DBPedia数据来源于WikiPedia,以定时抽取和实时监测两种模式同步数据,解决了目前知识库建设中存在的数据规模与其结构化程度之间的矛盾,以较低成本建设和维护结构化程度较高的大规模海量知识库。DBPedia采用基于语义Web的知识组织模式,遵循RDF语法描述知识并通过4种知识分类方法进行语义分类,从而实现了知识内容的跨领域性[6]。
在LOD关联开放数据网络中,DBPedia作为最主要的一个数据中枢与其他开放关联数据集进行链接,以DBPedia为圆心,通过RDF链接直接或间接的辐射到外部数据集。DBPedia 2014数据集中更是包含了5 000万左右的RDF链接与外部关联数据集进行关联,链接数量排名前十位的关联数据集如表2所示。
同时,越来越多的数据集反向链接到DBPedia中,链接总数超过3 900万个,如ACM数据集、NSF数据集、DrugBank等。
DBpedia提供了URI查找服务 DBpedia Lookup[7],即通过用户提供的关键词查找相关的URI,实现方式包括关键词查询(Keyword search)和词前缀查询(Prefix search)。查询结果格式为XML文件,内容包括URI,标签、简短的描述,类型、分类和在Wikipedia的内部链接引用次数。
DBpedia同时也提供了类似语义标注的工具DBpedia Spotlight[8],能对自由文本中所涉及到的DBpedia概念进行自动标注,为非结构化信息资源通过DBpedia关联到关联数据云(Linked Data Cloud)提供了实现基础。该工具可执行命名实体的抽取,包括实体检测和命名消歧,也可以在其他信息抽取任务中构建自己的命名实体识别解决方案。
1.2.3 DBLP数据集分析
DBLP由德国特里尔大学的一个团队开发和维护[9],提供计算机领域高质量的科学文献搜索服务,并且只储存这些文献的相关元数据,如标题、作者、发表日期等,不提供全文下载。截至到2015年4月DBLP已经收录有2 963 980篇文献信息,该数据集遵循ODC-BY 1.0数据开放协议供用户公开使用。DBLP收录的文献类型有Journal Article、Book and Theses、Editorship、Parts in Books or Collections、Informal Publications、Conference and Workshop Papers、Reference Works共7类,提供的数据描述信息包括author、title、booktitle、pages、year、address、journal、volume、number、month、url、cite、publisher、note、isbn、series、chapter等。
DBLP利用ReSIST项目构建的RKB Explorer对外发布关联数据,该数据集的数据相对滞后,最近的更新数据是2013年3月,包含43 153 440三元组,4.4G的RDF数据。DBLP提供SPARQL Endpoint语义查询服务,相关的SPARQL查询服务地址为:http:∥dblp.rkbexplorer.com/sparql/?query=。
1.2.4 CORDIS数据集分析
欧盟研发信息服务委员会(The Community Research and Development Information Service,CORDIS)发布的关联数据集CORDIS包含了所有欧盟的计划和项目信息[10]。该数据集中主要描述的实例类有4个(人员、机构、计划和项目),属性有44个(如项目资助、人员所属单位、项目起止日期、项目所属计划等)。在数据集中总共拥有人员实例93 669个、机构实例248 581个、计划实例764个、项目实例84 801个。
CORDIS数据集是通过D2R Server进行发布的,数据集不仅提供关联数据的浏览服务,同时也支持通过SPARQL Endpoint进行数据查询,相关的SPARQL查询服务地址为:http:∥wifo5-04.infomatik.uni-mannheim.de/cordis/sparql。
2 利用关联数据实现IIP语义扩展的方法研究
2.1 IIP组件使用情况分析
中国科学院集成信息平台CASIIP是一套基于Portal和CMS内容管理的集成信息系统,系统针对研究所、项目组、实验室、信息中心以及科研用户团队建立集成信息平台的需求而设计,为用户进行信息加工、组织和发布提供相关的服务,具有①简单、灵活、实用;②构建多社区服务;③专题数据库服务;④数据可视化功能;⑤集中式管理等特点。IIP平台在中科院“研究所群组集成知识平台可持续服务能力建设”项目中得到了广泛应用,本项目针对群组一期、二期选用IIP平台的23个研究所,100多个平台进行了分析,具体调研的组件包括内容管理、综合资源、第三方资源集成、交互以及其他各种类型的组件,总共包括15个以上组件,具体使用情况如图2所示。图2 IIP平台内组件使用情况 通过对IIP平台组件使用情况调研发现,使用频率最高,涵盖数据量最大的组件是内容管理组件和综合资源组件。在各个研究所的群组平台中,内容管理组件中的单篇全文组件主要用于描述科研团队人员信息、机构组织信息、仪器设备信息等;标题列表组件主要用于发布学术动态、各类学科快报等。综合资源组件多数情况下用于集成论文信息,同时也可以集成专利、项目、会议等各种资源信息。
2.2 基于关联数据的IIP语义扩展方法
根据上述研究,再结合目前中国科学院集成信息平台建设的实际情况,关联数据在集成信息平台的语义扩展方法的核心思想是利用关联数据技术将集成信息平台中的数据信息进行语义标注,并扩展关联外部的各大关联数据集。关联数据可以为集成信息平台扩展资源信息提供结构化的数据基础,提供多个分布式异构数据源整合的关联访问,将来自不同数据源的同一个实体数据进行整合,返回给用户关于该实体的尽可能多的相关信息的统一视图,从而为用户提供资源发现和访问服务的新的视角。简单来说,就是关联数据允许集成信息平台关联到更广泛的信息资源,并不局限于资源本身的信息,可以扩充科研人员、所属机构、科研成果以及其所属学科主题等其他信息到其他任何一个存在该信息描述的数据源。
3 IIP语义扩展模块设计与实现
3.1 IIP关联数据标引
单篇全文组件是IIP平台中最主要的内容呈现组件之一,用于显示后台内容管理组件发布的某篇文章的具体内容,通常用于描述科研团队人员信息、机构组织信息、研究进展和仪器设备信息等。IIP关联数据标引主要是针对IIP单篇全文组件进行语义化扩展,利用DBPedia关联数据集中的概念对文章内容进行标引。通过标引可以使IIP内部数据与对应的DBPedia知识库中的词条关联上,从而扩展了IIP内部数据的可读性和丰富性。
3.1.1 模块设计与实现
单篇全文组件的语义化扩展的设计思路是在不改变原有组件的使用和操作流程的基础上,通过用户选择自定义的方式支持语义化标引,用户可以在组件配置界面中勾选是否采用DBPedia关联数据集进行文章内容的标引操作。整个组件的默认设置是不实现关联数据标引,当用户手工勾选后,则界面呈现的文章内容是经过标引后的结果,正确标引命中的词出现超链接,点击直接跳转至DBPedia中相关的词条,实现了语义扩展阅读。具体的组件功能示意图如图3所示。
从图3中可以看出,针对单篇全文组件流程的二次开发改进主要集中在2个方面,一个是在组件配置过程中,加入了语义扩展配置选项;另一个是在组件的文章呈现流程中,根据语义扩展配置选项,实现调用DBPedia Spotlight工具实现语义标引的分支。
在单篇全文组件语义化扩展实现过程中,文章内容如何通过第三方开源工具Spotlight实现语义标引是关键技术点。组件首先采用htmlparser包进行内容的过滤,将过滤完成的纯文本字符串通过HttpURLConnection传给DBPedia Spotlight第三方工具,最后返回xml结果。整体模块流程如图4所示,当组件根据配置信息检测到该组件配置为语义化扩展组件时,则直接进入语义化扩展处理流程进行操作。否则,直接显示从数据库中获取的原始文章内容。
由于IIP中的内容发布组件支持html在线编辑器,大部分发布的文章内容都包含大量的html代码来控制整篇文章的格式,但是这些html代码不能带入第三方标引工具进行标引处理,一则会出现url超长现象,二则会导致标引结果的不准确性。因此,整个语义化扩展处理流程的第一步就是对文本进行清洗过滤,然后在此基础上进行语义化标引操作。整个处理流程的关键伪代码如下:
根据组件配置信息判断是否进行语义化扩展
IF(enableDBPedia==true) 开始语义化扩展操作
构建Parser parser=new Parser(articleContent);
TextExtractingVisitor visitor=new TextExtractingVisitor();
parser.visitAllNodesWith(visitor);
执行过滤后的文章内容字符串dealwithArticleContent=visitor.getExtractedText().trim();
将字符串进行URLEncode编码;
带入第三方开源工具spotlight=″http:∥spotlight.dbpedia.org/rest/annotate?text=″ searchWord ″