7.2.3 平台实现方法

7.2.3 平台实现方法

(1)数据获取

在数据处理之前,需要解决扩展数据的数据获取问题。现有的绝大多数公共数字文化机构都提供基于网页的资源检索和展现服务,因此,对这些机构的数据获取可直接利用它们现有的相关服务设施——在这些机构的数据服务器上以API(可编程应用接口)的形式开发相应的检索接口,基于关键词检索获得特定结构的数据。此流程对应图7.3扩展数据流中的“扩展机构元数据”→“数据收割”流程。

当然,另行开发数据接口需要额外的信息系统投入,除此方法之外,也可直接利用机构现有的对外提供检索服务的网页,直接实现数据的获取。网页本身是HTML格式,其中的内容也都符合XML相关规范。通过解析用于展现检索结果的网页(或网页中的表单),从中提取感兴趣的字段,进而获得结构化数据。该过程对应图7.3扩展数据流中的“扩展机构元数据”→“扩展机构服务”→“数据收割”流程。

因此,原则上说,数据获取过程只需要获得扩展机构在数据访问方面的授权即可,即使扩展机构不进行额外技术投入,仍可实现与本系统的接入。

需要说明的是,每个扩展机构形成一个相对独立的扩展数据源,而图7.3中扩展数据层的结构对应的是每个扩展数据源的内部结构。其中,特定扩展机构根据实际情况采用“扩展机构元数据”→“数据收割”流程或“扩展机构元数据”→“扩展机构服务”→“数据收割”流程。

(2)数据整合

本系统中,核心数据检索结果与扩展数据检索结果的整合是一个难点。对于核心数据,由于所有数据均存储于系统本地,且所有来源不同的数据均事先经过了整合处理,因此数据的一致性可以得到很大程度的确保。而对于扩展数据,由于其本身来自多个机构,存在很大的重复可能,而且通过接口获取的是动态内容,无法事先进行“表达→整合”处理,因此,我们设计了“系统数据整合层”,以实现不同来源数据的二次整合。

针对用户的特定检索请求,同时在本地获取核心数据层的检索结果,并通过互联网获取扩展数据层的检索结果。所有来源的结果所形成的数据实体,在“系统数据整合层”进行汇总整合。整合过程以来自核心数据的数据实体为中心,对于在核心数据实体中存在对应的扩展数据实体,直接整合至核心数据实体(如图7.6中左侧的检索结果)。而对于在核心数据实体中不存在对应的扩展数据实体,则整合后生成扩展数据实体(如图7.6中右侧的检索结果)。

由于检索得到的所有数据实体均采用了相同的表达格式,因此不同来源数据的数据关联可以直接完成。此后,通过“系统应用层”向用户展现检索结果。

需要指出的是,虽然同为整合层,系统整合层与核心数据层中的整合层具有不同的运行特点。虽然二者进行数据整合的原则相同,但系统整合层的运行是实时的,用户的每个检索请求均需要经过系统整合层进行处理。而核心数据层中的整合层仅在进行核心数据的数据整合时运行。后续对用户提供的检索服务,则直接在该层运行所得到的整合结果上进行。

(3)数据展现

数据的综合展现模块是整个系统中另一个难度较大的模块。本系统设计中,我们采用了以核心数据为主线、以扩展数据为补充的数据展现模式,如图7.6所示。以核心数据为主线,是指在特定页面中,核心数据作为所展示表单的主干项目。而通过扩展接口所获得的扩展数据,则以辅助信息的形式,展现在相应主干项目周围。通过元数据字段的映射,我们可以将获得的每一条扩展数据与当前页面的主干数据进行比对,若有匹配项,则将该扩展数据展现在该条主干数据的周围;若无匹配,则在页面独立的扩展数据区进行展示。

另外,为了避免扩展机构数目过多时出现展现数据的规模爆炸,每次关键词检索过程中,我们只取固定数目的扩展机构接口检索结果。