首页 > 范文大全 > 正文

基于本体映射的MDA模型转换研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于本体映射的MDA模型转换研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:模型转换是MDA框架中的重要环节之一,以往的模型转换方法可能会因为缺乏语义保证而出现错误。本文通过本体映射来研究MDA模型转换,提出实现MDA模型语义层转换的方法,并提高模型转换的效率和准确率。

关键词:MDA;本体映射;模型转换;本体匹配

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)17-21548-02

1 MDA中的模型转换

MDA是OMG提出来的软件开发过程中的模型组织管理框架,它将模型提到了驱动软件体系结构和开发过程的地位。模型是MDA的核心,它是对系统的结构、功能或行为的规约。MDA框架下的模型主要有:计算无关的模型(CIM),平台无关的模型(PIM),平台相关的模型(PSM)和一个实现相关的模型(ISM)[1]。在软件开发过程中,存在以下几种模型转换[2]:

1)CIM到PIM的转换。这一转换是业务模型到分析模型的转换,主要是手工实现。

2)PIM到PIM的转换。当模型在开发生命周期中进行改进、过滤或者特殊化,但是不需要任何与特定平台相关的信息,那么将使用从PIM到PIM的转换。一般是从分析模型到总体设计模型的转换。PIM到PIM的转换通常与模型求精相关,属于正向工程。

3)PIM到PSM的转换。在MDA的实际应用中,转换工具可以根据不同的转换规则将一个PIM转换到多个不同的PSM,对于每种特定的技术平台都会生成独立的PSM,并在这些PSM之间生成桥接器,在这些PSM之间建立联系。

4)PSM到PSM的转换。PSM到PSM的转换与特定平台模型的细化相关,是对PSM的求精。当涉及到组件实现与部署时,需要用到PSM到PSM的转换。比如说通过选择不同的服务配置对组件进行封装,在封装完成以后,就要对组件进行初始化,选择目标机器,产生容器以及对容器的配置等等。

5)PSM到PIM的转换。当从现有的实现模型中抽取出抽象的平台无关模型的时候,就需要用到PSM到PIM的转换。从软件工程的角度来看,这是一种逆向工程,一般很难做到完全的自动化。在理想情况下,从PSM到PIM的转换结果应该与PIM到PSM的转换结果相对应。

6)PSM到代码的转换。由模型生成最后的代码。

模型是形式化的,必须用一种语法严格的、语义没有歧义的语言描述。元模型虽然具有严格的语法,但是它的语义概念和动态语义不是形式化,也不能被计算机所“理解”,因此在MDA模型转换的过程中难以保证转换结果的准确性。如果将本体引入MDA建模和模型转换的过程,则计算机可以通过本体理解模型的含义,整个模型转换过程就有了语义保障。

2 本体映射

本体是一个源于哲学的概念,近些年作为信息抽象和知识描述的工具被计算机领域所采用。目前针对本体的研究都是从概念(concept)、关系(relation)、函数(function)、公理(axiom)和实例(instance)等方面入手的。本体的描述方法很多,可以分为非形式化、半非形式化、半形式化和形式化等。 由于本体的创建者不同,使用的建模方法不同,因而即使对同一个领域内的问题建模,不同的领域专家开发出来的本体必然存在着差别,本体映射的目的就是找到这些本体之间的语义联系。

2.1 本体映射的体系结构

本体映射会用到多种匹配算法,可以根据具体的应用要求灵活地选用不同的方法及其组合。处理本体映射问题的体系结构有三种[9]:

1)单本体结构。使用一个全局的本体为具体的语义说明提供了一个共享的词汇表,所有的信息源都联系到这个全局本体上,因而它们在语义上是一致的。全局本体可以是许多模块化的子本体的组合。

2)多本体结构。每一个信息源都有自己的本地本体,它们并不一定使用同样的词汇表。每个本体都是独立发展的,它们之间有松散的联系。要完成本体之间的互操作,必须建立映射规则。

3)混合结构。这种结构综合了前两种的基本特征并且克服了它们的不足之处。

总的来说,单本体结构建立在紧密联系的基础上,缺乏足够的灵活性,不能适应大的开放式的应用环境。局部的变化常常会导致全局本体的变化,因而不太适合于大多数本体映射应用环境。而多本体方法和混合方法更适合于完成本体映射的任务。

2.2 本体映射的基本方法

本体映射可以提供可能匹配的候选结果,由人工判定和修改。一般有以下几种本体映射分类:

1)按照级别可以分为模式与实例两级。模式级匹配方法仅仅考虑模式信息,不考虑实例数据。可用的信息包括本体模式元素的一般属性,如名称,描述,数据类型,关系类型,约束和模式结构等等。实例级方法由于利用了数据实例的信息,因而和模式级方法互为补充,它既可以和模式级方法一起使用,互相验证,也可以单独使用。一般的实例级方法寻找的是模式元素之间的匹配关系, 要找到模式元素组合或结构的匹配就需要比较这些元素组合的数据实例。

2)按照粒度可以分为元素与结构两种。元素级匹配考虑的是本体中的单个概念、属性或关系,而不考虑这些逻辑概念之间的联系。结构级匹配不光要考察单独的对象,还要考虑它们之间的联系。结构匹配可能是完全匹配,也可以是部分匹配,这取决于匹配所要求的完整性和准确性。

3)基于语言与基于约束分类。基于语言的匹配主要是利用名称和描述文本,但是自然语言中的一词多义现象会极大地干扰名称匹配的过程,导致产生误配情况,需要由人或词典提供失配信息。 基于约束的匹配利用本体模式中包含的约束信息如数据类型、取值范围、唯一性、可选性、关系类型和可选值等。

2.3 本体映射的原型方法

在本体映射基本方法的基础上还有一些具体的原型方法,如Cupid、SF和GLUE等,它们为本体映射的具体实现提供了思路。

Cupid是一种基于元素级匹配和结构级匹配的混合方法,它可用于多种领域的匹配任务。其思想是:如果两个概念的子概念是相似的,那么这两个概念就趋向于相似;如果两个概念具有相似的祖先,那么它们也趋于相似。

SF(Similarity Flooding)的思想基于相邻概念节点之间的相似传递性,即如果两个概念节点的邻近节点是相似的,那么它们趋向于相似。SF是一种综合使用了名称匹配和结构匹配的混合方法。

GLUE系统用机器学习的方法来完成不同本体之间的匹配任务,其思想是多策略学习。它代表了一种自动合并不同匹配器匹配结果的组合方法,产生的是原子级的映射关系。系统需要在预处理阶段使用映射实例来训练匹配器,发现其有的实例模式和匹配规则。

COMA系统采用的是复合方法,可以灵活地组合不同的匹配算法及其结果。它所应用的匹配器主要利用模式信息,如元素和结构属性。与其他系统不同的是它可以重用以前的匹配结果,这可显著地提高匹配效率。

理论上来说,如果两个本体中相应结构的所有组成元素都能一一对应,就可以实现完全匹配,而事实上大多数体中的元素在另一个本体中找不到对应部分,这时就只能达到部分匹配。此外,完全由机器自动地实现本体之间的映射是不可能的,因为本体内的一些潜在的语义关系并没有以形式化的方式显式表示出来,必须由人借助已有的知识才能识别出这些信息。

3 基于本体映射的模型转换

3.1 建立关于模型的本体

如果能够对已经开发好的mda模型加以重用,那么可以大大缩短软件开发时间。尽管从CIM模型到PIM模型的转换是个繁琐的过程,但是这个过程是对项目需求进一步明确和分析的过程,没有人的参与很难实现面向具体业务领域的PIM。如果在这个过程中同时为模型建立本体,不但有助于理解模型之间的关系,而且还能够为模型转换提供一定的语义保证。在软件开发流程中,如果希望为软件添加新的功能或者使之与其他系统集成,可以在PIM的层面进行MDA模型重用,即PIM到PIM的转换,或者直接由两个PIM的转换为PSM。当然,如果能够从一个PSM直接转换为另一个需要的PSM会更省事。

为了便于理解模型语义,在MDA软件开发流程中需要建立一个本体库,里面存放着关于模型的本体,这些本体提供了模型元素的概念、关系定义、 语义描述及其在此基础上的一些推理。这些本体在模型转换的过程中不断进化。图1反映了MDA中的本体应用。限于文章篇幅,本文只对PIM到PSM的转换过程中本体的应用加以探讨。

3.2 基于本体的PIM到PSM转换

PIM的定义和性质决定了其必须与PSM分离,PIM的抽象层次越高,它与不同平台PSM转换的适应性越强。从PIM到PSM的转换是MDA软件开发流程中的关键步骤,将本体引入到这个过程中有以下好处:

1)为MDA模型提供了一个公用的词汇表,运用词汇表描述不同应用领域、不同层次的模型, 可以保证语义的一致性;

2)应用本体可将隐含的关系明晰化,从而有助于实现模型间知识的共享与重用,避免重复的模型变换规则的定义;

3)本体提供了元模型的表达机制,实现了元模型语义形式化描述,提供了一系列概念及概念之间的关系;

4)模型常常使用XML格式保存,而OWL本于XML的上层,所以基于本体的PIM到PSM的模型变换可以应用XSLT实现。

因此,基本本体的PIM到PSM模型变换可以看作是基于语义的模型变换的一种方式。为了实现基于语义的模型变换,必须在基于语法的模型变换的基础上进行改进。这样,整个变换过程在语义和语法两个层面进行,在语义层进行本体的映射,在语法层进行模型元素的对应,而且这两种映射关系都是双向的。此外,语法层和语义层需要进行绑定,即将元素和其语义环境对应起来。

本文借鉴Cupid原型方法进行模型本体的匹配研究,如果两个元素的子元素相同,则认为它们是相同的。图2 给出了基于本体的PIM到PSM模型变换方法的框架。在这个框架中,语义层被单独抽象出来,PIM本体和PSM本体之间的映射规则存放到知识库当中,通过知识管理的手段加以维护,以便提供模型变换过程中的语义环境。而且,由于映射规则定义在较抽象的层次,可以被重用。下层的模型变换受语义层指导,对应元素的语义关系随时可以获得,而且变换引擎(Translator)可以建立在不同的模型变换语言之上。

4 结论

通过向MDA软件开发流程引入本体映射的方法,可以比较好的解决模型转换的问题,特别是为转换提供了语义保证。随着XML的流行,OMG使用XMI这种方式实现模型间元数据的交换,可是尽管XML通用性强,但是它缺乏语义,表示的数据仅仅是机器可读而非机器可理解的,这造成模型转换仅仅是一种单纯的语法转换。使用本体来实现MDA模型间的转换能够比较好的描述模型元素之间的关系,能够提供比较丰富的语义,从而提高了模型转换的准确率。

但是,本体的生成是一个比较繁琐的过程,如果在软件开发过程中完全依靠手工来生成本体,那么就会消耗大量的精力,也就失去了基于本体进行模型自动转换的意义了。目前已经有一些自动化和半自动化本体生成的方法,在后续的工作中将加以深入研究。

参考文献:

[1] K Leppe A.解析MDA[M].鲍志云,译.人民邮电出版社,2004.

[2] 周颖.基于MDA的UML模型转换:从功能模型到实现模型[J].计算机应用与软件,2005(22).

[3] OMG XML Metadata Interchange(XMI) Specification version1.1[EB/OL]./.2002210210.

[4] 徐晓钟.模型驱动架构(MDA)相关技术研究与实现[J].计算机科学,2006,l133(112).

[5] 刘奎,钱萌,王一宾.基于本体的PIM到PSM模型转换方法研究[J].计算机技术与发展,2006(11).

[6] D Frankel.Model Driven Architecture:Applying MDA to Enterprise Computing[M].Wiley Press,2003.

[7] Euzenat J.Ontology matching[M].New York:Springer,2007.

[8] 袁洋,李善平.基于语义We b的本体映射方法综述[J].计算机科学,2004(1).

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文