《武汉工程大学学报》  2016年05期 476-483   出版日期:2016-11-02   ISSN:1674-2869   CN:42-1779/TQ
基于语义转换的地理信息建模方法


1 引 言地理信息矢量数据利用经纬度表示地理实体(或地图图形)的位置,常常利用坐标信息来将地理实体的空间位置表现的非常准确. 矢量数据是制造出矢量图形的一种记录坐标,而根据几何特性,矢量图实现地理实体图形的描绘. 在计算机中,使用矢量数据的好处是存储量小和可通过从点坐标链中提取一些特征来获取数据项之间的拓扑关系. 矢量数据在计算机中显示的图形一般分为位图和矢量图. 比较有代表性的描述矢量图形的标记语言有地理信息标记语言(GML)[1]、可伸缩矢量图形(SVG)[2]、矢量可标记语言(VML)[3]和超文本标记语言5.0(html5)[4]. 在1999年,开放式地理信息系统联盟OGC提出了地理标识语言GML(Geographic Markup Language)这种基于XML的传输和存储地理信息的编码规范,它具有XML所具有的结构性、可扩展性、自描述性、简单性等诸多特征优点,同时 GML还有自身一些基本特征,能够建模、存储和传输地理信息和一些与地理相关的信息,这些信息可以是空间的也可以是非空间的[5]. GML提供的这种空间数据建模框架是开放的、不依赖任何商家的,因而在不同的领域和部门,地理信息可以实现语义共享. 与其他另三种标记语言相比,GML具有容易理解和编辑、封装地理信息以及分布式存储等特点. GML在地理数据的交换和共享中得到了广泛的应用,但其存在着一些缺陷:第一,基于XML的GML虽然提供了一种表层语法,这种语法可以使文档结构化,但它未对文档的含义进行语义约束;第二,空间关系在地理信息系统中是很重要的,但GML不能够表达空间对象之间的空间关系. OWL(Web Ontology Language,网络本体语言)是万维网联盟W3C开发的以描述逻辑为逻辑基础对本体进行语义描述的一种网络本体语言,采用 XML等各种语法形式表示描述逻辑本体知识库,具有人机可读的特点,因此语义Web采用 OWL 来表达描述逻辑本体[6]. 基于OWL的地理信息本体具有很强的语义表达能力,可以挖掘本体中蕴含的丰富信息. 利用地理本体可以描述网络地理信息的内容,提高检索效率,还可以定性推理空间对象间的空间关系,对于空间推理以及本体的应用有着重要的意义. 因此,引入了地理信息本体. 本体是对共享概念的明确的规范说明. 地理信息本体将本体运用到地理科学领域,用概念与概念的关系表达了其属性特征,将与地理科学领域相关的知识、信息抽象为由一些有共识的对象遵循某些关系构成的体系,并实现概念化处理以及规范说明,主要应用到基于语义的地理信息服务,构建它最终是为了实现知识重用和共享[7]. 对于应用程序的知识处理、重用和共享,本体扮演了不可或缺的角色[8]. 基于OWL的地理本体弥补了GML的很多不足,构建GML到GeoOWL 文件的转换(以下简称GML2GeoOWL)的意义如下:第一,本体有着强大的语义表示能力与推理能力,从而可以构建语义有效地弥补GML数据语义表达的不足,甚至能够推理出空间关系[9]. 第二,本体将使用不同的标签来描述GML数据的空间关系,但在表达方式上和推理过程中,各种空间关系的地位是一样的,所使用的方法也无异,这种方法可以用来表达不同情况下的各种空间关系. 第三,在本体中空间数据的各种语义的和非语义的属性都是通过标签来标识的,所以在查询时,无论是非语义属性还是语义属性都归于同一种类型的查询对象,可以用一种通用的查询方法. 在将XML转换为基于OWL的本体方面出现了一系列的研究工作. 文献[10]提出了一种基于STX的流式转换的方法. 首先,通过整理、分析GML文档中的元素及其映射关系,构建元素之间进行映射转换的模型;然后借助于流式转换语言STX对映射转换模型进行描述,最后,利用SAX和语义知识进行方法的实现. 该方法效率较高,耗费较少的内存,但其适合将大数据量的GML文档转换为基于OWL的地理信息本体. 文献[11]采用了基于X2R-R2O的映射规则的转换方法,该方法既不依赖于DTD也不依赖于XML Schema,但是基于该方法的映射需要人工干涉,不能自动地实现提前基数约束,需要领域专家去指导. 另外,此方法并不符合OWL DL的语法规范,因而制约了OWL本体的推理能力. 文献[12]将GML的模式元素与OWL的类、属性进行映射. 它假设XML文件包含关系结构,使用OWL类、属性和实例代表他们. 但是该转换的基础是在一种启发式的方式下,所以如果没有可用的XML Schema,那么转换结果不会达到最优. 所以为了不断完善,后续工作还是需要不断手动完成以适应需求. 目前,对地理本体的研究大多是从共享的地理概念进行明确的形式化定义这个角度展开的,关注的是地理本体的属性特征,而忽视了地理信息系统特有的大小、位置、形状和方位等空间特征[13]. 对地理本体的研究越来越多,但却散乱,没有体系. 与一般信息本体相比,地理本体有很多不同之处,一般本体主要拥有继承的关系,而地理本体的位置、量度、拓扑和部分——整体等关系是相当复杂的. 空间特征对于构建地理本体作用重大,而通过OWL语言表达地理本体的空间特征带有局限性,因此需要引进新理论来处理地理本体的空间特征. 国内主要研究地理本体的基本理论,主要研究关于异构地理信息的语义集成、地理数据的发现及检索等方向,而关于地理本体应用研究主要体现在地理信息服务、地理信息检索、道路寻找系统研究、地理信息共享和互操作等方面[14]. 本文提出了基于元模型实现GML到OWL的转换的方法. 该方法分为3步:建立GML和OWL的元模型;用XSLT转换语义建立两者的映射规则;用Java语言进行文本处理. 因为元模型是对不同的GML文件的模型进行了融合的,因此最终得到的元模型是适用于所有GML文档的,因此转换更高效、快捷. 设计并开发了GML2GeoOWL转换工具并以GML格式的1∶50 000的海南省的水系(线)为例进行了验证,实验结果表明该方法是可行、高效的. 2 模型设计2.1 地理标记语言GML能用来建模,具有层(Coverage)和地理要素(Feature)的特征(空间与非空间的). GML将XML应用于地理空间信息领域. XML是一种结构化标识语言,作为网络通用语言可描述复杂信息,其特点是跨设备、跨空间、跨平台,利用XML强大的描述复杂数据的能力描述结构复杂的地理数据,空间数据的交换效率可以得到极大提高. GML?3.2.1是目前最新的版本,支持surfaces、points、solids和curves等三维几何模型,在它的几何模式中添加了许多不同的类型,包括: Circle、Arc、Ring、OrientableCurve、OrientableSurface、CubicSpline及Solid,还有MultiCurve、MultiPoint、MultiSolid?、 MultiSurface等聚合类型和CompositeCurve、CompositeSolid 、CompositeSurface等复合类型. 利用这些元素实现地理信息矢量模型的描述. 2.2 地理信息本体地理本体是一种理论与方法,与地理科学有关的信息和知识被它抽象为由某些有着共识的实体 (或对象)遵循一定关系形成的体系,并对该领域内重要的概念进行明确的定义,最终实现形式化表达. 当前信息领域中,本体是一个热门的研究方向,它是跨组织进行知识共享的有效的途径,通过对领域中概念间的关系给出形式化的规范说明,使得计算机能够像人一样理解领域知识,同时能通过本体对领域知识进行推理. 所以构建地理信息本体是实现地理信息资源互操作与共享的基础和前提,利用它还可以挖掘隐藏的地理信息. 图1是一个地理信息本体的片段,其中矩形图形表示类,6个类是平行的关系,箭头的头部和尾部分别是对象属性的定义域和作用域,箭头间的文字代表类之间的对象属性关系,而椭圆表示概念的数据类型属性. 2.3 元模型映射方法2.3.1 基于元模型的转换过程 基于元模型的GML2GeoOWL转换过程,如2图所示. 首先构建GML和OWL的元模型,然后根据两者的元模型,构建GML实例文件到OWL实例文件的映射模板,GML实例文件通过映射模板生成一个中间文件,这个中间文件是根据映射模板转换生成的,里面还有些东西不符合OWL的语法,因此利用Java处理中间文件得到最终的OWL实例文件. XSLT是扩展样式表转换语言的外语缩写,这是一种对XML(标准通用标记语言的子集)文档进行转化的语言[15]. XSLT指XSL(扩展样式表语言)转换,是XSL中最重要的部分. 它可以实现两种XML文档之间的转换,或者将XML文档转换为HTML和XHTML等浏览器可以识别的文档. 一个XML文档到另一个XML文档的转换被称为XML源树到XML结果树的转换. 转换时,XSLT通过XPath定义源文档中能匹配一个甚至多个预定义模板的部分. 一旦实现了匹配,XSLT就会实现源文档的匹配部分到结果文档的转换. 在XSLT中,XPath起到了导航的作用,它是一个W3C标准. 用户可以利用XSLT从或者向输出文件移除或添加元素和属性,也可以将元素重新排列,进行测试并选择隐藏或显示某些元素. 2.3.2 GML元模型 GML通过特征集合表示基本的地理要素,丰富的空间信息可以由他们之间的嵌套得以表示. GML包括了要素、几何、坐标参考系统、时态和Coverage等基本模式,通过扩展这些基本模式,形成应用模式. 通过应用模式表示地理信息要素. 基础地理信息所描述的地理要素,包括水系、居民地及设施,交通、管线、境界与政区、地貌、植被与土质、地名及空间定位基础等. 而各类要素因分为点、线、面有着不同的表达. GML中有很多的元素和不同的结构,但是GML实例文件往往只含有部分元素和结构,所以建立了GML的元模型,这样不同的GML实例文件就可以根据元模型及其到地理OWL的映射关系,无损的将信息转换过去. 以GML格式的1∶50 000的海南省的水系的线状要素为例进行研究,分析水系(线)的实例和XSD得到了水系(线)的GML元模型,如图3所示. GML元模型中,gml:FeatureCollection:要素集合,是gml文件的根元素; gml:boundedBy:定义了含有整个要素范围的边界;gml:Envelope:通常用最小的边界框或矩形的两个对角的位置来表示;gml:lowerCorner:包含该范围内所有点每一维上最小值的位置;gml:upperCorner:包含该范围内所有点每一维上最大值的位置;gml:featureMember:围住或引用一个特征实例;gml:curveProperty:一个具有曲线作为其值域的特性;gml:Curve: 一条曲线是由多个曲线段构成的,在一条曲线内的每一曲线段通过不同的插值方法来确定. 在一条曲线内的曲线段是相互连接的,除最后的曲线段外,所有曲线段的终点是下一曲线段的起点;gml:segments:封装了曲线的曲线段;gml:LineStringSegment: 一个“LineStringSegment”元素即为有两个或多个坐标元组确定的一条曲线段,这些坐标元组之间采用线性插值方法;gml:posList:坐标列表;gml:Arc: 一个Arc是仅有一个曲线单元的曲线串,即3个控制点; gml:LineString:一种特殊曲线,由线性内插的单个线段组成的. 它的定义根据是两个及以上坐标元组和元组间的线性内插;gml:multiCurveProperty:该特性元素或者通过Xlink属性引用一个聚合曲线或者包含“MultiCurve”元素;gml:MultiCurve、gml:curveMember:一个MultiCurve 是由一条或多条曲线定义的,通过curveMember 元素引用;fme:OBJECTID、fme:Shape_Length、和fme:Shape_Area等以fme开头的元素是用户自定义的. 属性及其含义: gml:srsName:定义坐标参考系统;gml:srsDimension:一个位置的坐标序列的长度,这个维数从坐标参考系统派生. 2.3.3 GeoOWL元模型 根据水系(线)的gml文件及其xsd文件和地理要素实例本体数据库图层及属性定义建立元模型,把水系线的gml中特有的元素补充进地理OWL元模型中,以免信息在映射时丢失. GeoOWL的类图与图2类似,只是类名少了fme和gml前缀,类名大小写有细微区别,如表1所示. GML水系(线)中特有的元素已经在前面做了详细介绍,现在介绍地理owl中特有的元素:GB:国标分类码;HYDC:水系名称代码;NAME:名称;WQL:水质;PERIOD:时令月份;TYPE:类型;OCODE:本体实例编码;ONTOID:要素唯一值编码;BAS:流域特征;DD:河网密度;KA:弯曲系数;DATE:更新日期. 2.3.4 GML2GeoOWL的映射模板 映射模板是进行映射时的转换规则. 基于水系(线)的GML和OWL元模型建立映射规则见表1,XSLT依据此模板进行转换. 其中gml:id、srsName、srsDimension是GML中的属性,映射到OWL中作为元素处理. GML实质上就是包含地理信息的一种XML文档,用于集成异构空间数据,其存在形式是中间层[16]. 并且OWL是用XML作为基本语法,所以GML2GeoOWL的转换就是两种不同格式的XML文档间的转换,这样就避免了地理数据转换为本体后所包含地理信息的丢失. 按表1建立GML到GeoOWL元素和属性的转换,并根据元模型建立元素间的关系,通过XSLT进行转换,其中GML中的属性也映射到GeoOWL中,成为对应元素的子元素,信息未丢失. 2.4 GML2GeoOWL转换实验2.4.1 GML2GeoOWL转换工具 在Windows 7操作系统、Eclipse 32位、JDK1.7 32位的环境下用Java, XSLT语言,导入jena和xalan jar包开发了GML2GeoOWL转换系统,该系统是一种将GML文档转换为OWL文档的转换工具,提供了一种利用建立元模型进行映射自动生成地理信息本体的方法. 为了适应异构系统交互、知识集成推理的需要以及充分地表达数据语义信息,需要将可以建模、存储和传输地理信息的GML转换为本体,而手工方式生成本体是一件很繁琐的工作,需要找到一种快捷生成地理信息本体的方法. 该系统利用GML和OWL文档都是基于XML的,而XSLT可以将一种XML转换为另一种XML文档这一特性,提出了一种分别建立GML和OWL文档的元模型,利用XSLT建立起GML到OWL的映射规则,然后利用文件流对转换得到的文件进行处理生成地理信息本体的方案,再利用树和表呈现转换得到的OWL文档. 该系统生成地理信息本体过程快速便捷,得到的OWL文件能够应用于解决语义异构、信息集成、知识推理等方面. GML2GeoOWL平台主页面,如4图所示. 系统左上方可以选择要转换的GML文件、映射模板以及要生成的OWL文件及其存放路径,左下方呈现GML2OWL的转换状态,而右上方可以选择已经转换达到的GeoOWL文件,选择了之后会呈现OWL文件的类树,点击选择相关的类可以在右下方看到关于这个类的各项属性值. 2.4.2 转换案例 XSLT基于表2中的映射规则对比例尺为1∶50 000的海南省水系(线)要素的GML格式的数据进行转换. 水系(线)的一个GML例子如图4所示,线状水系的GML有一个外边框和很多条由包围的记录,每条记录的几何形态表达方式不同,但是在GML元模型中已经列出,可以根据映射规则转换为OWL,因此只截取一条记录为例对转换过程加以说明. 一个线状水系的gml文档如图5所示,gml:boundedBy开始至结束标签中定义了包含整个要素范围的边界,边界范围以矩形对角线的两点坐标来表示. 每个gml:featureMember的开始至结束标签中定义的是一个要素,包括要素id、以“fme”开头的要素属性和以“gml”开头的几何图形部分. 将一个水系(线)GML实例通过XSLT映射为一个OWL文件,OWL文件有类、对象属性、数据属性和实例,下面是转换得到的OWL文件片段,由于GML中没有实例名,映射生成的OWL需要实例名,所以后期还要进行修正. 水系(线)的OWL文档实例如图6所示,的“#”后跟的是实例名,的“#”后跟的是类名,接着起始标签和终止标签中间的就是dataproperty的值,最后是一个实例与之前的一个实例有某种objectproperty. 转换以后用文件流对文件读写,进行字符串替换. 将“&;”替换为“&”,又因为是根据元模型进行映射,而实例名在GML中是没有的,所以通过遍历GML得到的相同的名字要改为不同的,而且根据实例名字和objectproperty可以组成GML中相应的完整的记录. 修正之后的文档就是一个OWL文档,GML到OWL的映射并没有信息的丢失. 后期还可以建立一些规则对要素进行空间关系的推理,挖掘更深层次的语义. 2.4.3 比较与评估 基于元模型将GML文档转换为OWL文档的方法,转换的速度快,正确率很高,转换过程中没有信息的丢失. 由于转换模板是根据GML的元模型和OWL的元模型构建的,该转换方法对要转换的GML文档都实用,而且该方法不需要GML的xsd文件. 缺点是在构建元模型时需要充分分析GML的结构,另外人工手动构建转换模板比较复杂. 由GML文件转换得到的本体,其科学性体现在概念化、形式化、明确和共享4个方面,在地理信息共享与互操作、基于语义的地理信息集成以及地理信息服务等方面得到了广泛的应用. 能够通过推理规则对构建好的地理信息本体进行属性和空间关系的推理,以挖掘更多的语义信息. 3 结 语上述在构建了水系的GML元模型和OWL元模型的同时提出了两元模型之间元素的映射关系,借助于XSLT技术,并基于GML和OWL的元模型将GML元数据自动转换为OWL 地理信息本体,从而表示了GML文档中隐含的语义知识. 并以GML格式的1∶50 000的海南省的线状水系要素的GML和GeoOWL为例,对该方法进行了验证. 验证结果表明,该方法转换得到的本体能够为地理信息本体的表示提供一些帮助并让计算机能够像人一样理解数据的语义信息. 通过定义映射规则和预处理,坐标数据、参考系统、维数等代表的矢量信息也随之转换到本体中,在很大程度上能够保证地理本体表达的准确性. 另外,该方法还需进一步完善,比如地理对象之间空间关系的推理;定义本体推理规则,对生成的本体进行推理以挖掘更多隐含的信息;扩展地理本体,更大地提高其构建和利用效率.