温玉波,黄全中
(国家海洋局南海信息中心,广东广州510310)
基于XML的海洋环境基础数据格式转换的研究
温玉波,黄全中
(国家海洋局南海信息中心,广东广州510310)
针对当前海洋科学研究、海洋预报、海洋环境保护等工作中遇到的海洋环境基础数据格式不一致的问题,通过对数据语义、语法、结构的分析,建立数据之间格式转换模型,在此基础上提出基于可扩展标记语言(XML)转换模板的数据格式转换体系,并以台站观测温盐数据为例,设计编写程序成功实现数据间的格式转换。
海洋环境数据;格式转换;元数据映射;可扩展标记语言(XML);数据建模
当前我国各项海洋事业高速发展,作为海洋科学研究与应用的重要基础,海洋环境基础数据的地位越来越高。然而海洋环境基础数据的学科众多、种类复杂,数据格式和存储方法差异较大;另一方面海洋环境基础数据来源不同和中间环节缺失,导致海洋环境信息数据的准确性、完整性、一致性无法得到保证。这些问题加重了海洋科技人员的工作负担,阻碍了海洋研究的可持续发展。因此,如何解决数据格式不一致的问题成为了当前研究的重点。
目前国内的研究还多集中在海洋数据传输和数据交换等领域:如姬鹏等(2006)构建了基于XML的实时海洋数据传输网络系统;秦艳(2009)用XML技术进行海洋数据交换;袁立成等(2009)研究了海洋环境信息存储与交换的数据网格;田友强等(2005)讨论了海洋XML数据集成系统原型的设计与实现。而对于海洋数据格式转换的研究还较少,这主要是由于海洋数据种类繁杂、不同时期数据标准不一致、没有形成统一的数据标准格式而造成的。目前这方面的研究主要有:夏登文等(2005)分析了海洋数据的特点,并综述了XML在海洋信息中的应用及其意义,分析适合我国海洋信息的XML应用技术;李彦等(2011)利用XML技术统一数据格式定义,说明了XML技术在应对跨学科、跨平台的海洋环境数据处理方面具有广泛的应用价值。可见目前我国在海洋环境数据格式转换领域研究的数量不足且以理论分析居多,缺乏整体设计和真实案例说明。在当前实际工作中常用的数据格式转换方法主要有以下两方面:
(1)利用记事本、Excel、EditPlus等软件人工进行数据格式转换,这种方式对数据规整性要求高,且人工操作效率低下易出错。
(2)采用定制开发软件实现数据格式转换,这在一定程度上实现数据格式转换的高效性和准确性,提高工作效率。但对于海洋环境数据来说由于其数据类型众多,需对每一类的数据单独进行定制开发,使得软件无法复用,造成采用此方法的成本高,性价比低。
基于上述本文通过对数据结构和映射关系的分析,创新性地提出基于XML转换模板的数据格式转换体系,实现海洋环境基础数据格式间的相互转换。优点是:针对不同数据类型,只需对模板编程,就可实现新的映射关系,而无需对整个软件架构进行重构,降低了成本和工作量。文章最后以台站观测温盐数据为例进行验证,实验结果表明本文所提出的研究方法是可行的。
XML中文意为可扩展标记语言(Extensible Markup Language),它定义了一套语言标记的规则,可被设计用来传输或存储数据。
XML语言最大的特点就是复用性和扩展性,使用者可以根据自己的需要创建相应的XML语言,它是可变的、可维护的。一方面由于它的可扩展性使得信息的显示与处理分离,如果需要改动信息的表现方式,无须改动信息本身,XML文档制定者可以根据数据自身的逻辑定义文档结构;另一方面XML遵循严格的语法要求,结构清晰,可读性好,容易编制,便于不同系统之间信息的传输。因此,采用XML来描述数据,就可以很方便的在相同的或是不同的系统中对这些数据进行互操作。
由于海洋环境基础数据格式类型繁杂,且它们之间存在大量重复部分,如何降低重复数据所带来的工作量,是数据格式转化之前所要解决的问题。本文利用了XML的复用性和扩展性来解决这个问题:即先定义好一类海洋要素片段,当其它数据集也包含此类海洋要素,我们只需要将之前定义好的要素片段加载到数据集之后,就可实现数据片段的复用,降低工作量。
在实际应用中可能存在大量异构格式数据,对于用户来说这些数据无法被快速解析从而造成使用上的困难,数据互操作的作用是分析并转换异构数据间的差异,保证数据格式对外的一致性,实现异构格式数据的复用。
数据互操作的核心是数据格式映射(即格式转换),映射可以是一对一关系也可以是一对多关系,从本质上来说映射就是将某个数据集进行拆分,根据描述含义从另一个数据集中找到与之相对应的元素,然后根据新的数据格式对数据进行重构,以达到数据从一种格式转换为另一种格式的目的。映射的核心是对照关系表,可以实现不同数据格式互相比较、查询、校验。因此通过映射能够实现数据格式相互转换(图1)。
图1 数据格式映射
另外可以采用建立标准资源描述框架来实现数据互操作,框架本身并不复杂,可以由点和线构成二元关系,点与点间由线相连。其中点表示数据本身,线表示数据的属性或描述信息,它们间是1对多关系,即一个点可以连接多条线。通过这样的简单的点线我们可以对数据对象进行描述,甚至通过扩展方式还可以对复杂的数据进行描述。并且框架本身是可以复用的,提升我们分析数据的效率。
海洋环境基础数据格式转换体系可分为数据预处理、数据质量控制、数据格式转换3个部分(图2),其中的核心是数据间的映射。经过分析我们可以得出图1所述方法并不完善,原因如下:
(1)可维护性差。通过大量的实验证明在现实数据处理与应用中,很难找到完全一致的数据描述项,很多情况下是彼此元素相互混杂,甚至找不到对应数据描述项,需要在建模过程中不断修改和完善映射关系,而其中一组映射的改变会导致与其它相关的映射关系也需要做相应变更,使得整体维护成本高。
图2 基于XML转换模板的数据格式转换体系
(2)通用性差、效率低。如果数据的格式较为复杂,有众多的描述信息项,需要对这些元素进行一一映射,在这过程中存在大量重复定义,代码复用性差,使得最后所需的映射关系是巨大的。
为了解决上述问题,经过分析对比提出二次映射的设想来对方法进行改进,如图3所示,这种设想核心是设计一个通用的中间模板,在实际映射过程中,它以XML转换模板为映射中心,转换格式之间不直接进行匹配映射,先是将原格式同中间模板进行第一次映射,然后将模板与目标格式进行二次映射,以此实现原格式和目标格式之间的转换。改进后的数据格式映射与图1所述方式相比优点有:
(1)后续易维护。当数据格式映射关系发生变化,只需要调整模板,就可实现新的映射关系,且由于模板间相互独立,对其修改不会影响其它模板的使用。
(2)模板可复用性。在数据格式映射关系中可能存在大量重复部分(如数据表头、说明信息等),通过模板定义这部分通用数据并在模板间对其引用,可提升代码的复用性。
(3)XML具有可扩展性和复用性。采用XML来对数据格式进行编码:在制作完成一类数据格式模板后,我们以它为基础进行参数的微调来匹配其它类型数据格式。
(4)程序高效性。在开发应用程序时候只需要对模板编程,而无需关注具体的数据格式,从而提高效率,缩短程序开发周期。
图3 改进后数据格式映射
现以1995年前后台站观测温盐数据格式转换为例,说明其应用思路和方法。首先依据上述理论制定数据格式转换结构模型。如图4所示,结构模型分为3个部分:格式A对应1995年前温盐数据,包括数据集的基本信息(含元素字段的名称、类型、顺序、起止位置、长度、取值范围等)、数据层次结构、项目信息、其它相关说明等;格式B对应1995年后温盐数据,是最终我们要得到的结果;转换模板是A→B格式转换依据,它提供A→B数据间格式说明和映射关系。数据映射包含结构映射、语法映射、语义映射3方面:
(1)结构映射从整体上描述了数据格式转换前后在排列顺序、层次结构(行、列、组)等方面的对应关系,解决了数据在整体上的排列问题。
(2)语法映射描述了每类元素转换前后在载体、编码、顺序、对齐方式、说明等方面的对应关系,反映了数据格式结构规律本身。
(3)语义映射描述了每类元素转换前后在数据类型(数字型、字符型等)、转换规则(按照一定规则对元素进行转化)、统计计算(按照一定规则对前后元素内容进行汇总或、合并、计算)等方面的对应关系,消除了转换前后在语义方面的冲突。
图4 台站观测温盐数据格式转换模型
接着通过结构模型生成转换模板,其本质就是将抽象的数据结构模型表象化,生成简单易懂的标准化模板。这里将采用XML语言来生成标准化模板,模板可分为结构映射、语法映射、语义映射3部分。模板部分内容如下所示:
图7 95年前后台站观测温盐数据格式转换模板部分内容(语义映射)
系统前台界面采用Microsoft Visual Studio 2008平台进行开发,核心算法采用C++进行编程,显示界面采用操作和显示分离的设计方式,如图8所示。系统界面布局分为上下两层,顶部为操作区,横向排列相关功能按钮。功能按钮下方是显示区域,这里又分为两部分,上半部分为数据格式转换基础信息,包括格式转换类型(即指明从原格式转换为目标格式)、当前模板、加载文件等;下半部分为数据转换实时监控窗口,包括处理状态、消耗时间、正在处理数据、完成情况等。
图8 转换程序运行截图
图8为进行批量数据格式转换时程序运行截图,正在进行1995年前后台站观测数据格式转换,最终显示成功完成60个文件的格式转换,共计使用5 s时间。
通过程序实现了数据格式转换的可视化和人机交互,结果证明利用计算机程序高速运算能力处理海洋环境数据,能够更加高效的实现数据格式转换。
为验证该程序的实用性,导入数据进行实验,图9所示为台站观测温盐数据原始文件格式(1995年前标准格式),图10所示为转换后的文件格式(2006年标准海滨观测规范格式),经过比较可得到以下实验结果:
(1)转换后的文件格式完全符合2006年标准海滨观测规范格式,包括了文件命名规则、元素的相对位置和长度、数据层次结构等。其中数据层次结构是重点难点(注:转换前每行包含2个连续观测日数据,转换后每行只包含1个观测日数据),图9、图10所示的实验结果表明了数据层次结构由转换前的5×2(行数×每行观测日数)转变为转换后的10×1,完全符合转换后的标准要求。
(2)元素值转换前后保持一致。例如新标准中的海洋观测台站代码长度为4位,而旧标准中的长度为8位,因此需要对台站代码进行位数转换,实验结果表明台站代码在转换前后能保持一致。
(3)元素符合多“补”少“弃”原则(多出的元素用空格补齐位置,缺失的元素直接丢弃)。从实验数据可知转换后数据集中多出了表层温盐观测方法和仪器代码2个元素,由于转换前的数据集中没有这2项元素,因此这里用空格将其所占位置补齐;另外,转换后数据集中没有海面能见度这个元素,因此在转换后将此元素丢弃。
综合上述实验结果可得本次格式转换实例测试是成功的。
图9 台站观测温盐数据(转换前)
图10 台站观测温盐数据(转换后)
本文根据海洋环境基础数据格式转换的要求及内容,以格式转换的准确性、高效性、可扩展性为评估内容,建立了基于XML转换模板的数据格式转换体系,并以台站观测温盐数据的格式转换为例验证了数据格式转换体系是可行的。转换体系创新之处在于通过设计相应模板就可将格式转换应用范围扩展到其他海洋基础数据类型,不仅能够高效地实现数据格式转换,而且对海洋环境基础数据应用的相关规范制定也有一定的参考和促进作用。
另一方面,由于海洋环境基础数据体系格式结构复杂、学科众多,以至无法对所有格式进行分析和模板设计,这就局限格式转换的应用范围。因此,下一步主要研究方向是利用计算机人工智能实现数据类型自动抓取和分析,并将分析结果加入转换规则库,当需要对某类数据进行格式转化时,只要通过查找规则库便能自动匹配生成转换模板,从而快速高效的实现数据格式转换。
Williamson H,2002.XML技术大全.北京:机械工业出版社.
陈虹涛,李志俊,2005.元数据的标准规范及其互操作性.情报杂志,(7):94-95.
陈继香,2004.XML在海洋数据服务领域的应用研究.海洋通报,23(2):56-50.
崔新会,何志强,2015.基于XML的海洋信息索引服务系统构建研究.舰船科学技术,(5):148-151.
胡芒谷,2008.基于检索协议的元数据互操作研究.科学技术与工程,8(12):3 201-3 205.
蒋永国,刘克,卢莲英,等,2009.基于XML的海洋遥感卫星数据规范化研究.海洋通报,28(4):9-16.
孔庆杰,宋丹辉,2007.元数据互操作问题技术解决方案研究.情报科学,25(5):754-756.
李彦,王宇飞,王鑫,等,2011.基于XML的海洋环境数据处理技术研究.海洋通报,30(6):697-701.
刘海行,周玉斌,2004.剖面数据的XML格式设计.海洋科学,28(10):1-5.
刘嘉,2002.元数据导论.北京:华艺出版社.
申晓娟,高红,2006.从元数据映射出发谈元数据互操作问题.国际图书馆学刊,(4):51-54.
夏登文,石绥祥,姜岩,等,2005.XML海洋信息应用分析.海洋通报,24(1):84-86.
肖珑,陈凌,冯项云,等,2001.中文元数据标准框架及其应用.数字图书馆坛,2001(5):34-37.
袁立成,秦勃,洪锋,等,2009.海洋网格——海洋环境信息存储与交换的数据网格.计算机应用,29(6):188-190.
张明华,黄冬梅,熊中敏,等,2012.多源异构海量海洋数据综合管理平台构建研究.海洋科学,36(2):110-115.
张晓林,2002.元数据研究与应用.北京:图书馆出版社.
Research on the data format conversion of marine environmental data based on Extensible Markup Language
WEN Yu-bo,HUANG Quan-zhong
(The Information Center of South China Sea,State Oceanic Administration,Guangzhou 510310,China)
This article is aimed at solving the problem of marine environmental information data format inconsistencies which appeared in marine science research,marine forecasts,and marine environmental protection work.Conversion model was built by analyzing of metadata semantics,syntax and structure,and the method of format conversion was put forward based on Extensible Markup Language(XML).At last,the article introduces how to design the process to achieve conversion between the two formats by giving an example of marine station observation data.
marine environmental data;heterogeneous data;metadata mapping;Extensible Markup Language(XML);data templates
TP391
A
1001-6932(2017)06-0700-08
10.11840/j.issn.1001-6392.2017.06.013
2016-03-28;
2016-09-27
国家海洋局南海分局局长基金(1344)。
温玉波(1983-),硕士,工程师,主要从事海洋数据分析与应用。电子邮箱:wenyupo@163.com。
袁泽轶)