一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种铁路工程地理信息元数据批量快速采集方法与流程

2021-10-24 04:09:00 来源:中国专利 TAG:数据 批量 交互 采集 地理信息


1.本发明属于数据交互与处理技术领域,具体涉及一种铁路工程地理信息元数据批量快速 采集方法。


背景技术:

2.在地理信息数据分析、处理、交换和服务发布过程中,元数据提供了统一的数据描述规 则和方法,以便于用户理解和解译数据内容。国家标准《地理信息元数据》(gb/t 19710
‑ꢀ
2005)通过规范元数据的组成单元、特征和数据字典有效规范了元数据的内容和形式。在国 家技术性指导文件《地理信息元数据xml模式实现》(gb/z 24357

2009)中,提出了基于 xml语言的元数据模式实现方式。在xml模式文件的约束下,当需要对一个或一组地理信 息数据进行描述时,借助先验知识或解析该数据获取的元数据实例信息以“子集

实体

元素
”ꢀ
的组织方式、按照既定的语法规则被存储在一个xml文件中。然而,当前地理信息数据常 常呈现出时空海量、多源异构的特点,由此带来的问题是,受限于手工逐个文件编辑处理, 元数据的生产、管理和交互变得效率低下、内容繁杂,元数据技术的推广应用受到限制。
3.现有的元数据采集方法包括以下三类:第一类是事先根据数据字典设计好数据库表结构, 通过表之间的关系反映元数据实体和元数据元素间的逻辑关系,而后将每一项元数据元素值 作为数据库表中的一行记录执行录入操作,从而实现元数据的采集。从可交互水平上看,这 种方法通常仅限于数据库管理软件提供的数据查询、编辑和分析功能。此外,元数据数据字 典描述的组成单元间的各种关系被隐含在数据库表关系中无法表达给用户,信息被分割得支 离破碎,难以形成系统性和逻辑性。当交换或迁移海量地理信息数据中的一部分时,还需要 执行大量数据库查询和修改操作,以保证元数据与所描述数据统一一致;第二类是将xml 模式的数据字典转为rdf、dtd或其他模式,虽然增强了各类软件对元数据处理的支持,但 是批处理能力和交互能力受限于软件功能,还增加了转换过程中数据字典信息错漏的风险; 第三类是采用描述元数据语言,如xml、txt、json等固定的语法和结构直接写入信息批量 生产实例文件,这种方法仅能处理通用、固定的元数据内容,缺少模式的约束,难以保证元 数据信息的完整性以及与数据字典描述的一致性。同时由于需要人为筛选输出结构和内容, 或者在数据字典扩展和改变后需要软件开发者进行维护和更改,可扩展性和灵活性较低。
4.具体到铁路工程领域的应用,由于铁路工程地理信息元数据是在国家标准的基础上对元 数据数据字典内容进行扩展,例如新增了里程、工点、线路性质等铁路工程特有的信息内容, 而现有地理信息元数据采集和处理软件,如国家基础地理信息中心的metagear、商业软件arcgis等,仅支持对基础地理信息元数据的编辑,缺少对扩展xml模式的支持,导致铁路 工程地理信息元数据的采集和处理难以顺利开展和实施,缺失的信息还需要手工编辑录入, 进一步降低了处理效率。


技术实现要素:

5.为了解决基于xml模式的地理信息元数据逐个文件编辑处理效率低、内容繁杂、可交 互性差的问题,本发明公开一种铁路工程地理信息元数据批量快速采集方法。
6.为此,本发明的技术方案如下:
7.一种铁路工程地理信息元数据批量快速采集方法,包括以下步骤:
8.s1,元数据数据类型定义和对象解析:首先根据地理信息元数据的xml模式实现规则, 采用计算机语言定义元数据的数据类型,而后从元数据xml模式文件和代码表文件中,提 取其中记录的元数据实体、元素和代码表及代码表枚举项信息,解析为数据类型的实体对象、 元素对象和代码表对象及代码表枚举项对象;
9.s2,元数据数据字典组织关系重构:通过扩展定义步骤s1元数据的数据类型中实体类和 要素类的属性并为其赋值,用计算机语言描述元数据数据字典中记录的包含关系、引用关系、 泛化关系和特化关系,并与步骤s1解析获得的实体对象和元素对象组织在一起,形成数据字 典的数据结构;
10.s3,元数据信息交互视图构建:采用树列表结构,创建树列表结构视图以表达步骤s2 获取的数据字典的数据结构,包括步骤s1中解析得到的元数据实体和元数据元素的部分特征 信息,以及步骤s2中重构的四种关系,形成按照视图结构表达的、统一的、多态可控的组织 形式;采用列表结构,创建树列表结构子视图,表达步骤s1中解析得到的各代码表对象及所 含代码表枚举项对象的全部特征信息;最终关联上述树列表结构视图和列表结构子视图,将 多个元数据实例文件中的数据同时显示到树列表结构视图中,从而实现批量快速采集。
11.上述步骤s1中,根据地理信息元数据的xml模式实现规则,采用计算机语言定义元数 据的数据类型,包括以下步骤:
12.s11,采用计算机语言分别定义元数据实体类、元数据元素类、元数据代码表类和元数据 代码表枚举项类,根据《地理信息元数据》(gb/t 19710

2005)要求,将元数据实体和元数 据元素的“名称/角色(中文)”、“名称/角色(英文)”、“缩写名”三个特征定义为对应类的字 符串型属性,将元数据实体和元数据代码表中的“定义”特征定义为类的字符串型属性;将 元数据元素的“约束/条件”、“最大出现次数”特征分别定义为布尔型和整数型属性,将元数 据元素的“数据类型”特征定义为字符型和类型声明型的联合属性。将元数据代码表和元数 据代码表枚举项的“名称(中文)”、“名称(英文)”、“域代码”和“说明”四个特征定义为 对应类的字符串型属性。
13.s12,使用xml文件访问和数据解析接口,根据《地理信息元数据xml模式实现》 (gb/z 24357

2009)确定的语法,将xsd格式的模式文件中记录的各项元数据实体和元数据 元素以及xml格式的代码表文件中记录的各项元数据代码表类型和元数据代码表枚举项,实 例化为所述元数据实体类、元数据元素类、元数据代码表类和元数据代码表枚举项类的对象, 并解析各自的特征信息,直接记录或转义为类对象的属性值。
14.上述步骤s2中,通过扩展定义步骤s1元数据的数据类型中实体类和要素类的属性并为 其赋值,用计算机语言描述元数据数据字典中记录的包含关系和引用关系,包括以下步骤:
15.s21,首先在步骤s1中取得的元数据实体类中扩展定义名称为elements、数据类型
为元 数据元素类集合型的属性,其次根据地理信息元数据数据字典的定义,某元数据实体对象o1与一组元数据元素对象e1,e2…
e
n
构成包含关系,则将该组元数据元素类型对象的集合作为 o1的elements属性值,实现o1与e1,e2…
e
n
之间包含关系的计算机语言描述。
16.s22,使用步骤s1中为元数据元素的“数据类型”特征定义的联合属性,其中数据类型 为字符串的属性名称为dicttype,数据类型为类型声明型的属性名称为datatype,根据地理 信息元数据数据字典的定义,某项元数据元素对象e
i
的数据类型为另一元数据实体对象o2, 则e
i
与o2间构成引用关系,将o2的“名称/角色(英文)”特征值作为e
i
的dicttype属性值, 将元数据实体类型声明作为e
i
的datatype属性值,实现e
i
与o2之间引用关系的计算机语言 描述。
17.采用上述步骤s21和s22对元数据数据字典中所有包含关系和引用关系进行描述,最终 形成由计算机语言描述的、从顶层元数据根实体出发的、至底层由简单数据类型的元素终止 的数据字典多层次结构。
18.上述步骤s2中,通过扩展定义步骤s1元数据的数据类型中实体类和要素类的属性并为 其赋值,用计算机语言描述元数据数据字典中记录的泛化关系和特化关系,包括以下步骤:
19.s23,对泛化关系,首先在步骤s1中取得的元数据实体类中扩展定义名称为superentity、 数据类型为元数据实体类的属性,根据地理信息元数据数据字典的定义,某元数据实体对象 o3是元数据实体对象o4的泛化型,则o3与o4间构成泛化关系,将o3作为o4的superentity 属性值,实现o3和o4间泛化关系的计算机语言描述。
20.s24,对特化关系,首先在步骤s1中取得的元数据实体类中扩展定义名称为subentities、 数据类型为元数据实体类集合型的属性,根据地理信息元数据数据字典的定义,某元数据实 体对象o5和另一元数据实体对象o6是元数据实体对象o4的特化型,则o4与o5、o6间构成 特化关系,将o5和o6组成的集合作为o4的subentities属性值,实现o4与o5、o6间特化关 系的计算机语言描述。
21.采用上述步骤s23和s24对元数据数据字典中所有特化关系和泛化关系进行描述,最终 形成由计算机语言描述的、元数据实体类型对象间具有继承关系的数据字典多态结构。
22.上述步骤s3中,采用树列表结构,创建用户视图表达步骤s2获取的数据字典的数据结 构,包括步骤s1中解析得到的元数据实体和元数据元素的部分特征信息,以及步骤s2中重 构的四种关系,形成按照视图结构表达的、统一的、多态可控的组织形式,包括以下步骤:
23.s31,创建树列表结构视图,所述树列表结构中纵向为树结构,横向为列表结构,列表中 的一行表达为树结构中的一个节点,将步骤s2解析所得元数据数据字典的数据结构中的一个 元数据元素对象表达为视图中的一个节点,将该对象中与“名称/角色(中文)”、“数据类型
”ꢀ
特征相对应的属性值分别表达为视图中节点的首列和第二列数据值,将该对象中与“约束/条 件”特征相对应的属性值表达为视图中节点的图标,用差异化的图标样式表达该属性的不同 值。
24.s32,基于步骤s31创建的树列表结构视图,将步骤s21解析所得元数据数据字典的数据 结构中元数据元素对象与元数据实体对象间的引用关系,表达为视图中非叶子节点
首列与第 二列数据值的对应关系;将步骤s22解析所得元数据数据字典的数据结构中元数据实体对象 与元数据元素对象间的包含关系,表达为视图中以第二列数据值确定的、树结构下节点与其 子节点间的包含关系。上述方法实现了数据字典多层次结构的表达。
25.s33,采用步骤s31所述树列表结构,创建树列表结构子视图,将步骤s2解析所得元数 据数据字典的数据结构中元数据实体对象间的泛化关系和特化关系,表达为树列表结构子视 图中树结构下节点与其子节点间的包含关系,其中节点与包含它的父节点表达泛化关系,节 点与它包含的子节点表达特化关系,将元数据实体对象中与“名称/角色(中文)”、“名称/角 色(英文)”特征相对应的属性值分别表达为树列表结构子视图中节点的首列和第二列数据值。 当某元数据实体具有泛化关系或特化关系时,将该子视图与所述树列表结构视图中以该元数 据实体对象o
i
为数据类型的元数据元素对象e对应节点n的第二列数据相关联,需要改变e 的数据类型为其他元数据实体对象o
j
时,展示该子视图并选择其中与o
j
相对应的节点,步骤 s31所创建树列表结构视图中节点n包含的子节点变为由o
j
包含的元数据元素对象创建的节 点。上述方法实现了数据字典多态结构的表达。
26.上述步骤s3中,采用列表结构,创建列表结构子视图,表达步骤s1中解析得到的各代 码表及所含代码表枚举项的全部特征信息,具体操作方法是:
27.s34,对每一个由步骤s1解析获得的代码表及所含代码表枚举项,创建与之唯一对应的 列表结构子视图,将每一个代码表枚举项表达为列表结构的一行,将代码表枚举项对象中与
ꢀ“
域代码”、“名称(中文)”、“名称(英文)”、“说明”特征相对应的属性值分别表达为列表 结构中各列的数据值,并以代码表对象的“名称(英文)”特征为子视图建立索引。
28.上述步骤s3中,关联树列表结构视图和列表结构子视图,将多个元数据实例文件中的数 据同时显示到视图中,从而实现批量快速采集,具体操作方法是:
29.s35,新建一个元数据实例采集或访问一个元数据实例文件时,在步骤s31创建的树列表 结构视图中新建一列表达该元数据的内容,在该列下,将对应非叶子节点的单元项设置为只 读状态,对应叶子节点的单元项则根据节点对应的元数据元素对象的“数据类型”特征确定 子视图样式。当“数据类型”特征值的数据类型为代码表类型时,按特征值索引步骤s34所 述列表结构子视图,并响应采集操作进行展示,实现步骤s34中所述列表结构子视图与步骤 s31树列表结构视图的关联。
30.采集或访问多个元数据实例时,在步骤s31所述树列表结构视图中树列表结构下新建多 个与元数据实例一一对应的列,根据信息表达的需要,以数据字典中元数据元素对象的“最 大出现次数”特征值为约束,动态增加视图中的节点,保证元数据实例信息表达的一致性和 完整性,实现元数据实例批量交互式展示和编辑。
31.本发明的路工程地理信息元数据批量快速采集方法分解为三个环节:(1)采用计算机语 言定义地理信息元数据实体类、要素类和代码表类,借助数据接口解析元数据xml模式文 件和相关代码表文件,以类的对象及其属性描述其中记录的元数据实体、要素和代码表枚举 项值;(2)根据元数据数据字典确定的实体间的、实体和元素间的关系,采用实体类、实体 类集合、元素类集合、字符和类型声明等数据类型的属性,将第(1)步获得的对象化数据结 构关联起来,形成数据字典层次结构和元数据实体多态形式;(3)利用树列表控件提供的层 次结构组织和可视化样式设计功能,将第(2)步获得的元数据特征、元数据组成单元逻辑关 系、元数据实体多态等多维信息综合展示到系统前台视图中。将元数据数据
字典层次表达为 控件中以节点组成的树型结构,元数据组成单元表达为控件中的节点;将元数据组成单元名 称和数据类型表达为控件中的前两列数据内容;将元数据实例数据表达为控件中除前两列以 外的列数据,最终实现对地理信息元数据的批量快速采集。
32.本发明具有以下有益效果:
33.(1)本发明的方法不仅支持铁路工程地理信息元数据的处理,同样适用于根据国家标准 以xml模式扩展而来的元数据,从根本上解决了现有软件和方法难以应用于扩展元数据的 问题。在确保铁路工程领域描述地理信息数据与国家标准相一致的基础上,增强了扩展元数 据内容与通用地理信息元数据之间的联系性和系统性,拓展了地理信息元数据xml模式实 现的应用领域。
34.(2)本发明的方法将元数据的数据结构由xml模式的实现方式转变为计算机语言描述 的实现方式,解决了数据库管理方法中,元数据在xml模式约束下因各组成单元间逻辑关 系松散表达、数据结构分离存储而造成的实例数据解析过程复杂的问题。通过计算机语言构 建的抽象化描述方式保证了元数据数据字典内容的完整性和一致性,结构的严密性和紧凑性, 使元数据组成单元的上下层次逻辑关系更为直观和清晰,为铁路工程地理信息元数据的批量 快速采集提供了数据结构框架和基础,降低了模式转换方法或直接写入信息生成元数据实例 方法可能带来的元数据结构和内容错漏的风险。
35.(3)本发明的方法通过定义对象类的属性描述了元数据数据字典的多层次结构和多态结 构,确保了采用计算机语言描述的数据结构与原始xml模式的描述内容保持一致。与仅提 取固定信息的元数据采集方法相比,增强了不同地理信息数据类型驱动下元数据数据字典结 构的灵活性和可控性,实现了元数据数据字典单独树型结构的构建,为元数据组成单元间逻 辑关系的可视化表达提供了背景数据支撑;
36.(4)本发明的方法实现了对元数据组成单元的可视化调整和修改,以及对元数据实例数 据的批量交互编辑,将现有无法交互的、无约束的机械化采集方式变革为视图可控的、基于 xml模式约束的可视化采集方式,不仅创建了与地理信息元数据数据字典结构相统一一致的 树列表结构视图,而且创新了地理信息元数据实体多态的可视化操作方式,解决了现有软件 无法一次采集多个地理信息元数据的问题,为地理信息元数据生产、编辑和管理提供了快速 高效的方法,与文本直接编辑方法相比,时间节约达60.5%。
附图说明
37.图1是本发明的铁路工程地理信息元数据批量快速采集方法的流程简图;
38.图2是本发明中xml模式的元数据实体和元素的解析过程示意图;
39.图3是本发明中xml模式的元数据代码表及其枚举项的解析过程示意图;
40.图4是本发明中树列表结构视图表达元数据元素对象部分特征信息的过程示意图;
41.图5是本发明中树列表结构视图表达包含关系和引用关系的过程示意图;
42.图6是本发明中树列表结构子视图表达元数据数据字典多态结构的示意图;
43.图7是本发明中批量元数据实例文件内容以列数据在树列表控件中表达的示意图;
44.图8是采用本发明方法采集一组铁路工程地理信息元数据文件的视图展示效果
图;
45.图9是采用metagear软件采集地理信息数据时的视图展示效果图。
具体实施方式
46.以下结合附图和实施例对本发明的方法进行详细说明。
47.参见图1,本发明的实现铁路工程地理信息元数据批量快速采集方法包括以下步骤:
48.s1,元数据数据类型定义和对象解析:首先根据地理信息元数据的xml模式实现规则, 采用计算机语言定义元数据的数据类型,而后从元数据xml模式文件和代码表文件中,提 取其中记录的元数据实体、元素和代码表及代码表枚举项信息,解析为数据类型的对象;
49.s2,元数据数据字典组织关系重构:通过扩展定义步骤s1元数据的数据类型中实体类和 要素类的属性并为其赋值,用计算机语言描述元数据数据字典中记录的包含关系、引用关系、 泛化关系和特化关系,并与步骤s1解析获得的实体对象和元素对象组织在一起,形成数据字 典的数据结构;
50.s3,元数据信息交互视图构建:采用树列表结构,创建树列表结构视图表达步骤s2获取 的数据字典的数据结构,包括步骤s1中解析得到的元数据实体和元数据元素的部分特征信 息,以及步骤s2中重构的四种关系,形成按照视图结构表达的、统一的、多态可控的组织形 式;采用列表结构,创建列表结构子视图,表达步骤s1中解析得到的各代码表及所含代码表 枚举项的全部特征信息;最终关联上述树列表结构视图和列表结构子视图,将多个元数据实 例文件中的数据同时显示到树列表结构视图中,从而实现批量快速采集
51.以下对上述各步骤进行详细说明。
52.s1,元数据数据类型定义和对象解析:
53.包括以下步骤:
54.s11,《地理信息元数据》(gb/t 19710

2005)规定了描述元数据组成单元的八个特征, 它们分别是:名称/角色(中文)、名称/角色(英文)、缩写名、定义、约束/条件、最大出现 次数、数据类型和域。依照元数据的xml模式实现规则,以计算机语言分别定义元数据实 体类metadataentity和元素类metadataelement,两个类中分别包含三个字符串型属性,分别 代表“名称/角色(中文)”、“名称/角色(英文)”、“缩写名”三个特征。实体类metadataentity 与后者不同的是:还包含一个字符串型属性,代表“定义”特征。元素类metadataelement 与前者有所不同的是:包含一个布尔型属性,代表“约束/条件”特征;包含一个整数型属性, 代表“最大出现次数”特征;包含一个由字符串型属性和类型声明型属性组成的联合属性, 代表“数据类型”特征。元数据实体类和元素类的伪码定义如下:
[0055][0056]
依照元数据的xml模式实现规则扩展部分,以计算机语言定义元数据代码表类 metadatacodelist和代码表枚举项类metadatacodelistitem,两个类中分别包含四个字符串型 属性,分别代表“名称(中文)”、“名称(英文)”、“域代码”和“说明”四个特征。二者的 差异在于:前者包含一个代码表枚举项集合型属性,记录该代码表类型中包含的枚举项信息; 还包含一个字符串型属性,记录存储该代码表类型的xml文件路径;前者“域代码”表示“名 称(英文)”的缩写,后者“域代码”以三位顺序编号的整数值代表枚举项对应的序数值。元 数据代码表类和代码表枚举项类的伪码定义如下:
[0057][0058]
s12,在xsd格式的元数据模式文件中,以《地理信息元数据xml模式实现》(gb/z 24357

2009)中确定的语法规则记录了元数据数据字典的组成单元——实体和元素的全部信 息。依照xml模式的描述规则,获取元数据实体和元素具有的特征值,作为步骤s11中实 体类metadataentity和元素类metadataelement对象的相应属性值。如图2所示,以名为
ꢀ“
crci_contact”的元数据实体及其包含的元素为例,从xml模式转换为实体类 metadataentity的对象和元素类metadataelement的对象的过程是:
[0059]
1)当模式文件中同时存在以“crci_contact”加“_type”为name属性值的 <xs:complextype>节点、以“crci_contact”为name属性值的<xs:element>节点和
ꢀ“
crci_contact”加“_propertytype”为name属性值的<xs:complextype>节点以时,判断 为一个有效的元数据实体,开始解析;
[0060]
2)初始化一个实体类metadataentity的对象o,代表以计算机语言描述的名为
ꢀ“
crci_contact”的实体,其name、dictname和dspname属性分别取自1)中所述<xs:element> 节点的name属性值、name属性值带后缀“_propertytype”的<xs:complextype>节点的id属 性值,以及该节点下路径为<xs:annotation>

<xs:document>的子节点的值;其description属 性则取自1)中所述name属性值带后缀“_type”的<xs:complextype>节点下路径为 <xs:annotation>

<xs:document>的子节点的值;
[0061]
3)在1)中所述name属性值带后缀“_type”的<xs:complextype>节点下,按路径 <xs:complexcontent>

<xs:extension>

<xs:sequence>查找到子节点,遍历其中的<xs:element> 子节点,为每一个<xs:element>节点初始化一个元素类metadataelement的对象e
i
,其中i∈[1, 4];该对象的name、dictname和dicttype属性分别取自当前节点的name、id和type属性 值;其ismandatory属性值由当前节点的minoccurs属性值转义而来,即当minoccurs取值为 0时ismandatory为假,否则为真;其maxoccur属性值由当前节点的maxoccurs属性值转义 而来,即当minoccurs取值为unbounded时为

1,否则与其整数型值
一致;其dspname属性 值取自当前节点下路径为<xs:annotation>

<xs:document>的子节点的值;其datatype属性值 则根据dictname值进行判断,取值为所采用计算机语言中的基本数据类型声明。
[0062]
由上述步骤,可以实例化出一个名为“crci_contact”的实体类对象,以及四个由该实 体包含的名称分别为“phone”、“address”、“electronicmailaddress”和“facsimile”的元素类 对象。对所有的元数据实体及元素执行上述实体类metadataentity和元素类metadataelement 的对象实例化操作。
[0063]
在xml格式的元数据代码表文件中,以《地理信息元数据xml模式实现》(gb/z 24357

2009)中确定的语法规则记录了元数据代码表数据类型及其值域的枚举项信息。依照 xml模式的描述规则,将这些信息读取出来,为步骤s11中代码表类metadatacodelist和代 码表枚举项类metadatacodelistitem的实例化对象赋以对应的属性值。如图3所示,以名为
ꢀ“
crmd_cellgeometrycode”的元数据代码表类型及其枚举项为例,从xml模式转换为代 码表类metadatacodelist和代码表枚举项类metadatacodelistitem的对象的过程是:
[0064]
1)当代码表文件中存在名为<codelistitem>的节点时,查找其名为<codelistdictionarty> 的子节点,以及路径为<codelistdictionarty>

<codeentry>的子节点,此时,判定为一个有效 的元数据代码表,开始解析;
[0065]
2)初始化一个代码表类metadatacodelist的对象c,代表以计算机语言描述的名为
ꢀ“
crmd_cellgeometrycode”的代码表类型,其name属性取自1)中所述 <codelistdictionarty>节点下名为的gml:id的属性值;其dscp、id和dspname属性分别取 自<codelistdictionarty>下子节点<gml:description>、<gml:identifier>和<gml:name>的值;其 xmlfilepath属性的值为当前xml代码表文件的路径。
[0066]
3)遍历1)中所述<codelistdictionarty>节点下的名为<codeentry>的子节点,为每一个 <codeentry>节点初始化一个代码表枚举项类metadatacodelistitem的对象d
i
,其中i∈[1,2]; 该对象的name属性取自当前节点<codeentry>下子节点<codedefinition>中名为gml:id的属性 值;该对象的dscp、id和dspname属性分别取自节点<codedefinition>下下子节点 <gml:description>、<gml:identifier>和<gml:name>的值;该对象的ordercode属性取由三位整 数表示的枚举项的自然序数。
[0067]
4)将3)中实例化的所有对象d
i
记录到2)中对象c的属性items中,表达代码类型与 其枚举项间的包含关系。
[0068]
对所有的元数据代码表及其枚举项执行上述代码表类metadatacodelist和代码表枚举项 类metadatacodelistitem的对象实例化操作。
[0069]
s2,元数据数据字典组织关系重构
[0070]
在地理信息元数据数据字典结构中,元数据实体与元数据元素之间构成以下两种关系:
[0071]
1)包含关系:某实体o1与其组成元素e1,e2…
e
n
之间的关系;
[0072]
2)引用关系:若某项元素e
i
的数据类型为实体对象o2,则e
i
与o2间构成引用关系。
[0073]
根据上述描述,s2包括以下步骤:
[0074]
s21,在s11所述元数据实体类metadataentity中扩展定义数据类型为要素类 metadataelement集合型的属性elements,扩展定义后的实体类metadataentity用伪码表
示为:
[0075][0076]
以s12所述元数据实体“crci_contact”为例,将计算机语言描述的该实体的所有组成 单元——元数据元素类metadataelement的对象e
i
记录到实体对象o的属性elements中,用 伪码表示为:
[0077]
o.elements=array{e1,e2,e3,e4};
[0078]
对所有的元数据实体及其所含元数据要素执行上述操作,完成包含关系的计算机语言描 述。
[0079]
s22,如步骤s12所述,在元数据元素对象e的属性赋值过程中,当其数据类型为元数据 实体类对象o时,e和o构成引用关系。将对象e的dictname属性值赋为对象o的name 属性值;将其datatype属性值赋为元数据实体类metadataentity的类型声明,用伪码表示为:
[0080]
e.dictname=o.name;
[0081]
e.datatype=typeof(metadataentity);
[0082]
对所有数据类型为元数据实体对象的元数据要素执行上述操作,完成引用关系的计算机 语言描述。至此,完整的数据字典多层次结构通过计算机语言重构完成。
[0083]
在地理信息元数据数据字典结构中,假如元数据实体o3包含的所有元数据元素是元数据 实体o4包含元数据元素的子集,则实体o3是实体o4的泛化型,实体o4是实体o3的特化型, 某元数据元素可在实体o3和实体o4中选择任意一类作为其数据类型的情况称为实体多态。
[0084]
s23,在s21所述元数据实体类metadataentity中扩展定义数据类型为实体类 metadataentity型的属性superentity,以及数据类型为实体类metadataentity集合型的属性 subentities,扩展定义后的实体类metadataentity用伪码表示为:
[0085]
[0086]
在xml模式文件中,实体间的泛化关系由步骤s12的1)中所述<xs:element>节点的 substitutiongroup属性唯一确定,该属性值为当前实体的泛化型实体的name属性值。
[0087]
以名为“crmd_georectified”的元数据实体为例,通过步骤s12解析,假设其实体类对 象为o4,同时可以得知其泛化型实体为“crmd_gridspatialrepresentation”,对应的实体类 对象为o3,对o4的superentity属性赋值,用伪码表示为:
[0088]
o4.superentity=o3;
[0089]
s24,在步骤s23执行的同时,修改泛化型实体对象的subentities属性值,在其数据集 合中插入特化型实体对象。仍以步骤s23中名为“crmd_georectified”的元数据实体为例, 在o3的属性subentities集合中添加o4,用伪码表示为:
[0090]
add o4into o3.subentities;
[0091]
对所有拥有泛化型实体的元数据实体对象执行上述操作,完成特化关系和泛化关系的计 算机语言描述。至此,以地理信息数据类型为驱动的实体多态通过计算机语言重构完成。
[0092]
s3,元数据信息交互视图构建
[0093]
s31,创建树列表结构视图,将步骤s2解析所得元数据数据字典的数据结构中的一个元 数据元素对象表达为视图中的一个节点,将该对象的dspname和dicttype属性值分别表达 为视图中节点的首列和第二列数据值,在节点前采用差异化的图标样式表达该对象的 ismandatory属性的不同值,即当该属性值为false时,该对象为可选元素,使用表达可选元 素的图标样式;否则使用表达必选元素的图标样式。以name属性值为“date”和“edition
”ꢀ
的两个元数据元素对象为例,上述步骤如图4所示。
[0094]
s32,基于步骤s31创建的树列表结构视图,将步骤s21解析所得元数据数据字典的数据 结构中元数据元素对象与元数据实体对象间的引用关系,表达为视图中非叶子节点首列与第 二列数据值的对应关系;将步骤s22解析所得元数据数据字典的数据结构中元数据实体对象 与元数据元素对象间的包含关系,表达为视图中以第二列数据值确定的、树结构下节点与其 子节点间的包含关系。上述方法实现了数据字典多层次结构的表达。以元数据实体对象
ꢀ“
crmd_keywords”及其包含的元数据元素对象,以及其中元数据元素对象“thesaurusname
”ꢀ
引用的元数据实体对象“crci_citation”为例,上述步骤示意如图5所示。
[0095]
s33,采用步骤s31所述树列表结构,创建树列表结构子视图,将步骤s2解析所得元数 据数据字典的数据结构中元数据实体对象间的泛化关系和特化关系,表达为树列表结构子视 图中树结构下节点与其子节点间的包含关系,其中节点与包含它的父节点表达泛化关系,节 点与它包含的子节点表达特化关系,将元数据实体对象中与“名称/角色(英文)”、“名称/角 色(中文)”特征相对应的属性值分别表达为树列表结构子视图中节点的首列和第二列数据值。 当某元数据实体具有泛化关系或特化关系时,将该子视图与所述树列表结构视图中以该元数 据实体对象o
i
为数据类型的元数据元素对象e对应节点n的第二列数据相关联,需要改变e 的数据类型为其他元数据实体对象o
j
时,展示该子视图并选择其中与o
j
相对应的节点,步骤 s31所创建视图中节点n包含的子节点变为由o
j
包含的元数据元素对象创建的节点。上述方 法实现了数据字典多态结构的表达。以元数据实体对象“crmd_spatialrepresentation”及其 所有特化型实体对象为例,上述步骤示意如图6所示,同时
示意了引用该类型实体的元素分 别选择“crmd_gridspatialrepresentation”和“crmd_vectorspatialrepresentation”类型时 视图中子节点的变化情况。
[0096]
上述步骤s3中,采用列表结构,创建列表结构子视图,表达步骤s1中解析得到的各代 码表及所含代码表枚举项的全部特征信息,具体操作方法是:
[0097]
s34,对每一个由步骤s1解析获得的代码表及所含代码表枚举项,创建与之唯一对应的 列表结构子视图,将每一个代码表枚举项表达为列表结构的一行,将代码表枚举项对象中与
ꢀ“
域代码”、“名称(中文)”、“名称(英文)”、“说明”特征相对应的属性值分别表达为列表 结构中各列的数据值,并以代码表对象的“名称(英文)”特征为列表结构子视图建立索引。
[0098]
上述步骤s3中,关联树列表结构视图和列表结构子视图,将多个元数据实例文件中的数 据同时显示到树列表结构视图中,从而实现批量快速采集,具体操作方法是:
[0099]
s35,新建一个元数据实例采集或访问一个元数据实例文件时,在步骤s31创建的视图中 树列表结构下新建一列表达该元数据的内容,在该列下,将对应非叶子节点的单元项设置为 只读状态,对应叶子节点的单元项则根据节点对应的元数据元素对象的“数据类型”特征确 定子视图样式。当“数据类型”特征值的数据类型为代码表类型时,按特征值索引步骤s34 所述子视图,并响应采集操作进行展示,实现步骤s34中所述列表结构子视图与步骤s31树 列表结构视图的关联。
[0100]
采集或访问多个元数据实例时,在步骤s31所述视图中树列表结构下新建多个与元数据 实例一一对应的列。如图7所示,采用xml文件访问和数据解析接口,对应于视图各层次 节点,解析元数据实例文件中的信息给列赋值。同时根据信息表达的需要,以数据字典中元 数据元素对象的“最大出现次数”特征值为约束,动态增加视图中的节点,保证元数据实例 信息表达的一致性和完整性。实现元数据实例批量交互式展示和编辑。
[0101]
实施例一
[0102]
为验证本发明的方法,以某行业领域地理信息元数据xml模式文件和实例文件为例进行 试验。该元数据命名空间由10个xsd格式的模式文件和1个xml格式的代码表文件构成。经 本发明步骤s1解析,获得45个元数据实体类对象、102个元数据元素类对象、15个代码表 类对象和72个代码表枚举项类对象。经本发明步骤s2关系重构,确定102项包含关系,29 项引用关系和19项泛化关系。经本发明步骤s3信息表达与交互,在树列表控件中表达出完 整的数据字典层次结构、实体多态以及主要的特征信息。
[0103]
采用本发明方法,访问和编辑一组包含数据集、矢量、栅格和模型等应用类型在内的地 理信息元数据文件,树列表控件视图的展示效果如图8所示,在矢量、栅格和模型三种不同 类型的地理信息数据驱动下,视图中元数据“空间信息”元素表达为不同状态的多个节点。 另一方面,由于视图中多个实例文件由不同列数据同时展示,可批量交互采集数据集和数据 的元数据实例。
[0104]
与metagear软件采集地理信息元数据方式的对比
[0105]
metagear软件是有国家基础地理信息中心研发的一款地理信息元数据采集软件,图9展 示了该软件采集界面与采用本发明方法所设计软件的采集界面对比情况,虽然前者能够个性 化地采集生产不同区域的xml元数据,但是与本发明方法相比,其不足在于一次仅能采集 一个元数据实例,且需要在采集前指定地理信息数据所对应的数据类型模板,在
整个采集过 程中元数据数据字典结构固定,不具有灵活可变的特性。本发明方法解决了metagear软件无 法一次采集多个元数据实例的问题,支持多种数据类型的元数据实例同时展示,并在采集过 程中可以灵活调整元数据数据字典组织内容和结构,可以有效应对当前如filegdb、kmz等 混合数据类型的地理信息数据的采集。
[0106]
与文本编辑方式的地理信息元数据采集效率对比
[0107]
采用本发明方法与文本直接编辑方式的元数据采集进行效率对比实验,分别从新建实例 数据和修改实例数据两方面作比较,前者根据需求创建20个不同地理信息数据类型的元数据 文件,分别记录无地理信息数据类型先验知识和有地理信息数据类型先验知识两种情况下两 种方法的处理时间。后者根据需求修改20个既有不同地理信息数据类型的元数据文件,分别 记录无增删元数据元素和有增删元数据元素情况下两种方法的处理时间。最终四种情况等权 计算平均水平。两种方法在多环境下元数据处理时间的统计结果见表1。
[0108]
表1两种元数据处理方法效率对比
[0109]
单位:分钟
[0110][0111]
分析上述实验结果可知,本文方法在各种情况下均优于文本编辑方法,由于后者在处理 过程中不仅需要编辑大量的xml节点,而且还需要充分考虑元数据数据字典层次关系的正 确描述,对数据处理人员熟悉地理信息元数据xml模式的程度有很高要求。反观本发明方 法的实验结果,特别是在有先验知识的新建实例数据和有增删元素的修改实例数据情况下, 能显著提升处理效率,平均时间节约达60.5%。
[0112]
本发明的铁路工程元数据批量快速采集方法解决了现有方法存在的处理效率低、信息不 完整、交互能力弱、灵活性差等问题。面向铁路工程地理信息元数据数据字典的数据解析与 重构以及元数据信息交互视图构建是本发明实现的技术基础。在数据解析与重构方面,本发 明采用计算机语言描述了由xml模式定义的地理信息元数据实体、元素、代码表及代码表 枚举项的各类特征和关系,以自上而下、统一继承的组织形式重构了元数据数据字典的多层 次和多态数据结构。在元数据信息交互视图构建方面,本发明综合树结构和列表视图的优势, 直观、完整地反映元数据数据字典的全部内容,动态、灵活地表现其多层次和多态结构,为 批量快速采集铁路工程地理信息元数据实例提供了高效的、可扩展的解决方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜