2006年6月第17卷第3期装备指挥技术学院学报JournaloftheAcademyofEquipmentCommand&TechnologyJune2006Vol.17No3
收稿日期:20040625作者简介:陈建宇(1973-),男(汉族),云南罗平人,硕士,chjy0927_cn@sina.com;张维明(1962-),男,教授,博士生导师.一种基于语义的异构数据模型映射方法陈建宇,张维明,刘忠(国防科技大学人文与管理学院,湖南长沙410073)摘要:针对虚拟样机应用集成中的数据交换问题,考虑到产品模型的表达方式,提出了基于语义的异构模型间映射描述方法;该方法将异构数据交换问题,从应用具体实现代码中隔离,以一定形式抽象地表示,在元模型层与数据实例层准确地定义数据模型间的对应关系;最后,给出了实际采用此方法交换数据的典型事例。关键词:虚拟样机;产品模型;语义数据模型;语义异构;模型映射;数据转换中图分类号:TP319文献标识码:A文章编号:16730127(2006)03008605AMappingMethodBasedonSemanticFeatureBetweenHeterogeneousDataModelCHENJianyu,ZHANGWeiming,LIUZhong(SchoolofHumanitiesandManagement,NationalUniversityofDefenseTechnology,ChangshaHunan410073,China)Abstract:Thepaperproposesamethodthatusessemanticfeaturetobuildmappingcorrespondencebothinmetamodelandmodelinstancelevelbetweendifferentproductdatamodeltosolvedataexchangebetweenheterogeneousapplicationsinvirtualprototyping.Thismethodisbothabstractandformaltoseparatethedataexchangefromapplicationimplementation,andsometypicalexamplesinengineerpracticeareshown.Keywords:virtualprototyping;productmodel;semanticdatamodel;semanticheterogeneous;modelmapping;datatransform1问题的提出在虚拟样机研究中,面临的基础性也是最具挑战性的问题之一,就是如何将领域跨度较大的不同应用集成起来,这些应用是服务于设计、分析、试验、仿真评估等领域的计算机系统。通过已有的一些设计分析集成项目,如,COMBI(computerintegratedobjectorientedmodelforthebuildingindustry)[1]的实施情况来看,在集成的设计、分析环境下,建立一个通用的产品数据模型并以共享数据库的形式支持各种应用似乎不大现实,最大的困难在于:多个学科在各自固有领域建立起来的模型很难真正集成。原因在于:在设计与分析集成框架下,设计、分析、仿真与评估,这几个主要的环节之间的数据交换本质上是异构的。这种异构是由设计、分析等问题的范畴及语义表达方式的差别造成的,难以通过一种模型来统一地表达。既然在产品建模领域,集成异构应用数据模型不大现实,但异构的应用之间又确实存在大量的相关产品描述信息的数据交换,而应用中点对点的文件交换已被证明在系统复杂时不可行。因此,有必要寻求一种自动化或是半自动化的方法,来实现异构应用之间的数据集成。近年来,一种新的思路开始引起人们的注意:即在相互关联而又异构的数据模型间建立映射机制,这种映射机制应是形式化的,既便于人的理解,也应是计算机可处理的,这种映射机制成为异构应用间交换数据的辅助手段。映射成为异构数据模型间交互的一种新的手段[2],它比较了模型间映射机制[3],比较了利用映射语言和文档表示方法进行模型间映射。这些研究基本上都是基于特定的应用以及特定的模型描述方式,在虚拟样机产品建模领域的研究开展得较少。特别是对映射机制,还有待更深入形式化研究,使得映射实现方式能有坚实的理论基础,从而在实现方式上有良好的可扩展性,以支持可能出现的复杂多变的异构模型映射情况。由于EXPRESS语言表示的语义数据模型是虚拟样机中各种应用定义数据模型的主要手段,为此,本文提出了一种新的方法:通过考察语义数据模型的特征,以形式化的手段表示模型间映射的主要内容,对映射的描述包括模型层及实例层2个层次。模型层的映射表示不同模型之间可以刻画的对应关系;实例层利用模型层映射描述完成给定数据集之间的转换。2语义数据模型的语义特征2.1基本特征由于以EXPRESS语言建立的产品模型描述,本质上是一种语义数据模型,因此,在讨论模型间的语义集成时,首先必须回顾一下语义数据模型的主要概念和基本的特点。与传统的数据模型相比,语义数据模型主要是提供更加丰富的手段来支持对关系、数据抽象、继承、限制约束等数据建模领域中非常重要的概念表达,而这些表达方式又是由所谓的语义 特征来描述的。因此,首先讨论语义数据模型的基本表示元素!!!语义特征。语义特征包括:分类(classification)、泛化/特化(generalization/specification)、聚集(aggregation)、相连(association),建模的基本元素有以下3种。1)实体(entity)。现实世界问题域的基本描述单元,应该单独考察的客观世界的客体。2)IsA继承关系。表达实体间的子类/超类关系,子类实体是超类实体的特例,继承超类的全部属性,描述了现实世界实体的层次化结构。3)关系的级联(cardinality)特性。级联描述了一实体作为另一实体的属性时的数量关系。常见的级联关系有以下几种:零对一(0∀1);一对一(1∀1);一对多(1∀N);多对多(M∀N)。虽然语义数据模型的基本特征只有这几项,但它们之间复杂的组合使得模型间异构难以处理。2.2模式间映射语义数据模型最主要的建模元素就是实体与属性(EXPRESS语言以属性表示实体间的关系),因此,考察模式映射的主要可能形式,即是实体间、属性间、实体与属性之间这几种可能的映射组合关系,模式之间可能的映射组合可用图1来表示。
图1模型间映射基本形态图1中, 表示空集。实体(属性)到 的单向箭头表示删除实体(属性); 到实体(属性)的单向箭头表示创建实体(属性)。可以看出,在模型间映射中,从模型的基本元素之间的映射来作划分,可能的映射方式有以下几种:实体#实体、实体#属性、属性#实体、属性#属性、 #实体(创建实体)、实体# (删除实体)和属性# (删除属性)、 #属性(创建属性)等。以上分类只考虑了基本建模元素之间可能组合所形成的映射,如果考虑到关系的级联基数,实际的模型间映射就更加复杂了。为此,有必要用一种形式化的方法表示语义数据模型的主要建模特征,并在此基础上,对模型之间的映射做相应的描述。3模型及模型实例形式化表示3.1定义模式G用如下的4元组表示∃C,LE,LS,K%。其中:C为类的集合;LE是属性关系标号的集合;LS是泛化/特化关系标号集合,规定&E!C∋LE∋C为表示关系的边的集合;(S!C∋LS∋C为表示继承关系的边的集合;87第3期陈建宇,等:一种基于语义的异构数据模型映射方法)K:E#{[0∀1],[1∀1],[1∀N],[N∀1],[N∀M]}为一个将级联级数与属性关系边联系起来的函数,并在函数的值域上定义如下的偏序关系:[0∀1]<[1∀1],[1∀1]<[1∀N],[1∀1]<[N∀1],[1∀N]<[N∀M],[N∀1]<[N∀M]。有几点需要说明:1)C分为原子类型Cprim和构造类型Ccon,前者为基本类型,后者表示由基本类型或构造类型聚合而成的复杂定义类型。2)属性边是一个序偶对∃C,Label,C∗%,表示C∗是C中以Label表示的属性。3)一般的语义数据模型的继承语义非常复杂,可能包括多重继承、互斥继承、与或继承等,这里只简单考虑单重互斥继承的情况。4)在实际的模型中,实体间的级联关系如果为[N∀M],一般都通过添加中间实体定义的方式简化成一对多关系。所以,实际的实体间联系将只考虑[0∀1]、[1∀1]和[1∀N]这3种情况。为了后面表述的方便,引入下面的记号:e.cent表示属性边的聚合实体定义,e.cattr表示属性边的作为属性的实体定义;s.cparent表示继承边的父类,s.cchild表示继承边的子类。3.2性质一个完备的语义数据模型的性质具有以下的性质。首先定义一些基本的记号:用小写字母a,b,c,+表示属性边,用小写字母p,q,r,+表示实体,用大写字母A,B,+表示继承边。1)由E!C∋LE∋C,如果(p,a,q),E,那么记作p#aq,意思是实体p的任何实例都有一个a属性,类型是q。2)由S!C∋LS∋C,如果(p,A,q),S,那么记作p∀Aq,表示p是q的特化,p的任何实例也是q的实例。3)对于p∀A1r1∀A2r2∀+∀Amrm∀q,或者p=q,记作p∀*q。则语义数据模型的基本性质表示如下:&如果p#aq1,p#aq2,那么q1=q2;(如果p∀q,q#ar,那么p#ar;)如果p#as,s∀r,那么p#ar;−如果q#as,p∀q,那么#r,C,r∀s并且p#ar。式&说明,实体之间的关系,除了参与联系的实体外,属性的名称也参与关系的表示。式(说明了特化关系对属性的继承性,即如果p是q的特化,q有a表示的属性r,则p也有用a表示的属性r。式)从另外一个角度说明了属性对特化关系的保持,即如果p有a表示的属性s,而s是r的特化,则p有用a表示的属性r。此外,定义级联关系函数为K:#{0-1,1-1,1-m}并定义偏序关系:0-1<1-1<1-m,表示级联基数的弱化。添加如下的公理:∃p,q,r,s,C,∃a,L,如果有:p#aq,r#as,r∀p,s∀q,那么有:K(p#aq).(r#as)。这个公理意味着:如果r是p的特化,s是q的特化,p有属性q,用a表示,则继承关系只能弱化(使子类属性间级联基数有更大的灵活性)属性级联数。3.3实体实例描述每一个模式都包含许多相互关联的实例,这些实例的结构以及实例之间的关系都遵循模式中的定义,但实例的值只要在定义的域中且不违反约束规则,则可任意取值,这个过程称之为模式的实例化。实例可以用如下的一个四元组表示:M=∃O,EO,SO,I%,其中,O是对象集合,EO是对象关系集合,SO是特化/泛化关系的集合,I是从对象到类定义的映射。用Op、Oq,+表示属于类p,q,+,a,b,+表示关系标号,A,B,+表示泛化/特化关系,对于一个模型实例表示M=∃O,EO,SO,I%,有下面的定义:1)对于(Op,a,Oq),EO,记作Op%aMOq。2)对于(Op,A,Oq),SO,记作Op∀AMOq。对于一给定的模式G=(C,E,S,K)O是对象集合,EO!O∋LE∋O是对象关系集合;SO!O∋LS∋O是对象泛化/特化关系集合;I:O#C表示从对象到类的映射。一个模式实例M=(O,EO,SO,I)满足模式88装备指挥技术学院学报2006年