李晓林,严 柯+,陈 灯,徐雅琴
(1.武汉工程大学 计算机科学与工程学院,湖北 武汉 430205;2.武汉工程大学 智能机器人湖北省重点实验室,湖北 武汉 430205)
基础地理信息文件数据库Geodatabase[1](GDB)中存储着行政区划、水系等海量基础地理数据,地理信息丰富,但GDB中的数据不包含语义信息,难以实现海量数据中隐含信息推理和快速查询,数据利用率低。地理本体[2]具有充分语义信息,易于实现基础地理数据查询和推理,是目前公认解决空间数据语义异构[3]和属性匹配[4]、融合[5,6]等问题比较好的办法。因此,如何实现GDB向地理本体高效转换以及大规模地理本体高效查询是需要解决的问题。
地理本体主要有基于内存、文件、数据库[7,8]等存储模式。而内存模式不能存储大规模地理本体,文件模式不能实现高效查询。基于地理语义的空间索引[9]可以有效提高查询效率,本地高性能三元组存储器TDB是Jena提供可以存储在目录文件系统中的数据库,在存储地理本体时会自动构建索引,因此本文采用TDB存储大规模资源描述框架(resource description framework)RDF[10,11]数据来提高地理本体语义查询效率。针对基础地理要素信息的特点,本文从GDB中提取属性和空间信息到地理本体,并提出3种自定义转换方法,有效提高了转换效率。本文提出的转换方法适用于大规模地理本体自动构建,并为基础地理数据库的知识化和智能化提供了有效技术途径。
Geodatabase体系基于面向对象技术构建。Geodatabase将具有相同坐标系统和几何特征的要素集合称为要素类或图层,根据几何特征不同,图层可划分为点图层、线图层和面图层。要素由几何特征和描述几何特征属性组成。
通过对比《基础地理信息要素分类与编码》,对Geodatabase数据结构进行了相关实验研究,得出GDB在GDAL提供接口情况下数据结构,如图1所示。
图1 Geodatabase结构
地理本体定义请参见文献[2]。在本文构建的地理本体模型中,主要分为图层类、属性类、要素类和几何类等。其中,图层类子类包括行政区划、水系等;属性类子类包括国标分类码GB、要素唯一编码ONTOID等;几何类子类包括点、线、面等。地理本体结构如图2所示。
图2 地理本体结构
Geodatabase空间数据模型与地理本体模型之间存在一定的联系和区别。两者都为地理数据赋予了结构,且地理本体模型结构是参照Geodatabase空间数据模型结构构建的。区别是地理本体对基础地理信息的描述是基于语义的,而GDB则不是。
根据Geodatabase空间数据模型和地理本体模型,建立从GDB到地理本体转换映射规则:
(1)在地理本体中,所有要素实例采用【图幅名+“_”+图层名+“_”+ID_Feature】命名。
(2)所有属性实例采用【图幅名+“_”+图层名+“_”+ID_FieldValue】命名。
(3)所有几何体实例采用【图幅名+“_”+图层名+“_”+ID_Geometry】命名。
(4)在地理本体中,使用自定义的命名空间及名称。
(5)在地理本体中,所有地理要素的属性字段类型及名称均依据GDB数据库中的属性字段类型及名称。
(6)在地理本体中,所有要素的几何体空间坐标类型采用字符串类型表示。
实现GDB向地理本体数据转换主要包括GDB解析,数据转换器和地理本体构建三大步骤。
(1)GDB解析。将GDB作为源格式文件,通过第三方组件构建GDB解析器,根据Geodatabase空间数据模型进行处理,直到GDB解析完成。
(2)数据转换器。数据转换器通过解译构建的转换模型,同解析GDB得到的地理要素进行映射,返回转换结果。
(3)地理本体构建。解译地理本体模型,通过映射将转换结果构建到地理本体中,形成地理本体库。
如图3所示,针对转换计算模型,本文提出了3种方法,即AEXTrans(ArcGIS engine XSLT transformation)、GXTrans(GDAL XSLT transformation)和GJTrans(GDAL Jena transformation)来实现地理本体的直接数据转换。AEXTrans和GXTrans方法采用文件存储地理本体,GJTrans方法采用TDB存储地理本体。
图3 总框架结构
AEXTrans:采用ArcGIS提供的第三方数据文件访问工具ArcGIS Engine解析GDB并转换为XML格式数据,解译XSLT构建的XML到地理本体元模型,通过元模型映射,将XML格式数据构建到地理本体中,实现地理本体的转换,AEXtrans在实验过程中,通过AxMapControl组件对GDB中地图进行可视化,但在解析并读取GDB时,转换效率很慢;为解决该问题,该方法采用多线程技术。在GDB中,标签数据源类型包含两种,一种是文件地理数据库要素类,另一种是文件地理数据库栅格目录,而文件地理数据库栅格目录为空。因此,在转换过程中,需对GDB中标签数据源类型进行判断,否则容易出现线程为空现象。经过改进的AEXtrans方法,转换效率有了提高,但效果不是太理想。因此,本文提出了第二种转换方法GXTrans。
GXTrans:在进行空间坐标转换时,ArcGIS Engine提供的接口不能直接读取空间坐标,需要进行多次访问,严重影响转换效率,因此该方法采用开源栅格空间数据转换库GDAL(geospatial data abstraction library)解析GDB并转换为XML格式数据,最后,解译XSLT构建的XML到地理本体元模型,通过元模型映射,将XML格式数据构建到地理本体中实现转换。
GXTrans不能实现GDB中地图的可视化,但该方法转换效率明显高于AEXTrans。该方法采用XSLT构建映射模板,要求地理本体中概念的命名不发生改变,否则需要重新构建映射模板。因此,本文提出了第三种转换方法GJTrans。
GJTrans:采用GDAL解析GDB,通过解译Jena构建的地理本体模型,通过地理本体模型映射,Jena直接将转换解析得到的数据存储到地理本体中,实现转换。
GJTrans方法在GXTrans基础上,使用Jena提供的Ontology API构建地理本体,不需要借助中间文件,实现了GDB与地理本体直接转换。该方法解决了GXTrans需要多次重建模板的问题,同时,该方法采用Jena提供的数据库TDB,将转换得到的RDF数据以Model方式存放到TDB中,可以实现大规模地理信息存储及查询。
本文从转换效率进行实验,实验数据是海南省基础地理信息数据库GDB,实验平台为一台Windows Server 2008 R2 Enterprise的服务器,主频3.10 GHz的Intel Xeon处理器,内存为64 G。
AEXTrans、GXTrans和GJTrans分别对转换单位、属性单位和坐标点数进行对比实验。其中,AEXTrans和GXTrans采用文件模式存储地理本体,GJTrans采用TDB数据库存储地理本体。
在数据转换过程中,将图层中地理要素属性元组和空间坐标点元组分别映射为地理本体中实例。本文主要对属性单位K、坐标点数T和转换单位Z进行转换实验,其中,K、T和Z的计算公式如下
其中,K表示GDB中所有非空图层地理要素属性单位的总和;T表示GDB中所有非空图层地理要素空间对象坐标点数的总和;Z表示转换单位,是属性单位和坐标点数的总和;xij表示一个空间对象的属性个数;yij表示一个空间对象坐标点数。
3种方法转换效率和速度见表1和表2。在属性单位转换时,AEXTrans采用多线程方式,因此AEXTrans转换速度比GXTrans快,但是AXETrans在转换过程中,需要解析XSLT构建的模板,因此转换速度比GJTRans慢。在坐标点数转换时,AEXTrans采用的 ArcGIS Engine一次只能读取一个坐标点,随着空间坐标点数的指数上升,多线程也不适用了,因此AEXTrans转换速度远远低于GXTrans和GJTrans,且容易出现内存溢出情况。GXTrans在转换过程中,需要解析XSLT构建的模板,因此GXTrans转换速度低于GJTrans。表1和表2中空格部分表示该种方法在运行中出现内存溢出情况。
表1 不同转换方法效率
表2 不同转换方法速度
转换效率对比如图4~图7所示。由于3种转换方法转换效率差别太大,因此图4~图7中纵坐标是以10的对数取值。AEXTrans采用多线程方式进行转换,随着GDB库中要素数量增加,出现了内存溢出情况,并且该种方案转换耗时最长。GXTrans和GJTrans随着GDB中要素数量增加,GJTrans比GXTrans耗时少。
图4 属性单位效率对比
图4为属性单位转换效率对比情况。从图4可以看出,当属性单位少于5.43万时,AEXTrans、GXTrans和GJTran转换效率相差不大,用户可选择其一进行属性单位转换;当属性单位介于5.43万和252.81万时,AEXTrans和GJTrans效率明显高于GXTRans,用户可选择GXTrans和GJTrans之一进行转换。当属性单位超过252.81万时,GXTRans效率明显高于GJTrans,用户可选择GJTrans进行转换。
图5为坐标点数转换效率对比情况,当坐标点数少于92.96万时,AEXTrans、GXTrans和GJTrans转换效率相差不大,用户可选择其一进行转换;当坐标点数介于92.96万和153.51万时,AEXTrans转换效率远低于GXTrans和GJTran,用户可选择GXTrans和GJTrans之一进行转换;当坐标点数超过153.51万时,GJTrans转换效率高于GXTrans,用户可选择GJTrans进行转换。
图5 坐标点数效率对比
图6 转换单位效率对比
图7 转换速度对比
图6为转换单位转换效率对比情况。当转换单位少于98.39万时,AEXTrans、GXTrans和GJTrans转换效率相差不大,用户可选择其一进行转换;当转换单位介于98.39万与156.04万之间时,AEXTrans转换效率远低于GXTrans和GJTrans,用户可选择GXTrans和GJTrans之一进行转换;当转换单位超过156.04万时,GJTrans转换效率高于GXTrans,用户可选择GJTrans进行转换。
图7是总转换速率对比。通过对比实验,AEXTrans方法不适用于坐标点数较多的转换。当转换单位介于4.65万和98.39万时,GXTrans和GJTrans的转换效率增长最快;当转换单位介于98.39万和156.04万时,GXTrans和GJTrans的转换效率增长变慢;当转换单位大于98.39万时,GXTrans和GJTrans的转换效率趋于平缓。因此,GXTrans和GJTrans既可以用于小型地理本体的转换,也适用于大规模地理本体的转换。
为了实现大规模RDF存储和查询,本文通过GJTrans方法将得到的本体数据以RDF形式存储到TDB和文件中,并进行了3种方法的查询对比实验。Mem-XPath和Mem-SPARQL方法分别使用XPath和SPARQL对基于文件的RDF进行查询,TDB-SPARQL方法使用SPARQL对TDB进行查询。实验采用3组不同大小的数据集进行测试,采用Mem-XPath、Mem-SPARQL和TDB-SPARQL方法分别对不同数据集测试3种查询,查询响应时间见表3,时间单位为秒(s)。
表3 查询时间
其中,Q1是查询某个具体要素的所有属性信息。Q1的SPARQL查询语句为:
PREFIXMap:
{Map:MAP50000_LRDL_10000_Feature ?a ?b.}
Q2是自定义一个外包矩形,查询所有在这个外包矩形范围内的要素,该查询通过推理计算得到查询结果集。Q2的SPARQL查询语句为:
PREFIXMap:
{?a Map:minx ?b.?a Map:minY ?c.?a Map:maxX ?d.?a Map:maxY ?e.
Q3是查询所有要素名称。Q3的SPARQL查询语句为:
PREFIXMap:
Where {?a Map:NAME ?b.}
X1、X2、X3是根据XPath构建的查询语句,Q1、Q2、Q3是根据SPARQL构建的查询语句。X1、X2和X3与Q1、Q2、Q3的查询语句不同,但是X1与Q1,X2与Q2,X3和Q3的查询结果集是一样的。
图8~图10是X1和Q1、X2和Q2、X3和Q3的查询时间对比情况。Q1是语句与变量较少且具有较高选择性的查询,Q2是查询语句和变量较多且有关系计算的查询,Q3是语句与变量虽少但选择性较低的查询。对大规模RDF数据的查询,从图8~图10可以看出,TDB-SPARQL方法的查询时间明显要比Mem-Xpath和Mem-SPARQL要少。Mem-XPath和Mem-XSPARQL方法在进行查询时,需要将地理本体加载到内存中,耗时时间长,且容易出现内存溢出现象;而TDB-SAPRQL方法中所使用的TDB数据库,在转换和存储过程中,TDB在存储RDF数据信息的同时也构建了RDF数据信息的索引表、三元组节点表以及前缀表,因此在查询中,只需TDB目录文件地址,即可进行快速且有效的查询。
图8 X1和Q1查询时间对比
图9 X2和Q2查询时间对比
图10 X3和Q3查询时间对比
针对空间数据库到地理本体要素信息转换不完整及本体规模小问题,AEXTrans、GXTrans和GJTrans这3种自定义的方法实现了空间数据库中地理要素的属性和空间信息到地理本体的直接转换,完成了大规模地理本体的构建,突破了地理信息共享和互操作的语义瓶颈;最后基于大规模RDF语义查询的应用,验证了TDB的高效存储和查询。针对不同的本体结构,GJTrans可构建不同本体模型完成数据转换;GXTrans方法对地理本体结构的稳定性有较高要求,需进一步完善。对转换后的地理本体进行空间关系的计算和推理需做进一步研究。
[1]GENG Jijun,LIU Rong,WU Congcong,et al.A method of data conversion between data and GIS data[J].Science of Surveying and Mapping,2016,41(8):134-137(in Chinese).[耿继军,刘荣,吴聪聪,等.一种计算机辅助设计数据与GIS数据转换方法[J].测绘科学,2016,41(8):134-137.]
[2]LI Bin,LIU Bin,LIU Jiping,et al.The research progress review and prospect on geo-ontology[J].Science of Surveying and Mapping,2015,40(4):53-57(in Chinese).[栗斌,刘斌,刘纪平,等.地理本体研究进展综述与展望[J].测绘科学,2015,40(4):53-57.]
[3]ZHAO Hongwei,ZHU Yunqiang,YANG Hongwei,et al.The semantic relevancy computation model on essential features of geospatial data[J].Geographical Research,2016,35(1):58-70(in Chinese).[赵红伟,诸云强,杨宏伟,等.地理空间数据本质特征语义相关度计算模型[J].地理研究,2016,35(1):58-70.]
[4]GUO Xiaoju,CHEN Junjie.Research on inentical entity matching based on GIS ontology[J].Computer Applications and Software,2015,32(2):66-68(in Chinese).[郭小菊,陈俊杰.基于地理本体的同名实体匹配技术研究[J].计算机应用与软件,2015,32(2):66-68.]
[5]LI Junli,HE Zongyi,KE Dongliang,et al.An approach for insight into geo-ontology merging based on description logics[J].Geomatics and Information Science of Wuhan University,2014,39(3):317-321(in Chinese).[李军利,何宗宜,柯栋梁,等.一种描述逻辑的地理本体融合方法[J].武汉大学学报·信息科学版,2014,39(3):317-321.]
[6]LI Junli,HE Zongyi,ZHU Qiaoli,et al.A geographic onto-logy fusion method based on granular theory[J].Geomatics and Information Science of Wuhan University,2013,38(4):489-492(in Chinese).[李军利,何宗宜,朱乔利,等.一种粒化理论的地理本体融合方法[J].武汉大学学报·信息科学版,2013,38(4):489-492.]
[7]TONG Qiang,ZHANG Fu,CHENG Jingwei,et al.Research on storage of RDF in relational database[J].Journal of Northeastern University(Natural Science),2015,36(3):346-349(in Chinese).[佟强,张富,程经纬,等.RDF在关系数据库中的存储研究[J].东北大学学报(自然科学版),2015,36(3):346-349.]
[8]HU Tiantian,CAO Min.New storage model based on theory of ontology in relational database[J].Computer Engineering and Design,2014,35(9):3075-3079(in Chinese).[胡甜甜,曹旻.基于本体理论的关系数据库存储模式[J].计算机工程与设计,2014,35(9):3075-3079.]
[9]DUAN Hongwei,MENG Lingkui,HUANG Changqing,et al.A method for geo semantic spatial index on SPARQL query[J].Acta Geodaetica et Cartographica Sinica,2014,43(2):193-199(in Chinese).[段红伟,孟令奎,黄长青,等.面向SPARQL查询的地理语义框架索引构建方法[J].测绘学报,2014,43(2):193-199.]
[10]ZHENG Zhiyun,LI Qing,ZHANG Xingjin,et al.Skyline query optimization for RDF data[J].Computer Engineering and Design,2016,37(4):933-937(in Chinese).[郑志蕴,李青,张行进,等.RDF数据的Skyline优化查询[J].计算机工程与设计,2016,37(4):933-937.]
[11]HE Shaopeng,LI Jianhui,SHEN Zhihong,et al.Overview of the sorage technology for large-scale RDF data[J].Network New Media,2013,2(1):8-16(in Chinese).[何少鹏,黎建辉,沈志宏,等.大规模的RDF数据存储技术综述[J].网络新媒体技术,2013,2(1):8-16.]