一种从egg图文法到rgg图文法的转换方法

文档序号:6380866阅读:276来源:国知局
专利名称:一种从egg图文法到rgg图文法的转换方法
技术领域
本发明属于计算机数据处理技术领域,涉及一种软件形式化建模、分析与验证的方法,具体是一种从EGG图文法到RGG图文法的转换方法。
背景技术
图文法是对图进行定义和语法结构分析的形式化方法。近年来,图文法已广泛应用于可视化语言领域,是软件系统形式化建模、描述、分析、转换和验证的形式化工具。图文法主要包括上下文相关和上下文无关两大类,每一类图文法又包含若干个形式框架。一个图文法形式框架一般由图产生式的形式定义、图柄定义、嵌入规则与子图替换方法和所生成图语言的形式定义,以及一个与之对应的规约算法组成。而一个图文法形式框架的图文 法实例则由一个初始图和一组具体的图产生式构成,其中,一个图产生式由一对(称为左图和右图)满足一定约束的图构成。EGG(Edged Graph Grammar)和RGG(Reserved GraphGrammar)是目前应用较为广泛的上下文相关图文法的形式框架。在软件形式化建模、分析与验证过程中,图文法形式框架的一般应用途径为依据该形式框架的产生式形式设计具体的图产生式集合(也就是图文法实例)来描述应用中所涉及的图形式的结构,再应用该框架配备的规约算法对所关注的图进行分析以验证相关的结构特性。如此一来,同属上下文相关图文法的不同图文法形式框架在实际应用中被完全隔离开来一旦选择了某种图文法形式框架去描述软件工程领域中的一个具体应用,就只能选择此形式框架所配备的规约算法进行相应的分析与验证。然而,上述两种形式框架在图的描述和分析功能上各有利弊。EGG图文法产生式的形式非常简洁,也比较直观,因而便于用户设计图产生式来描述应用中的所涉及图结构;但其规约算法较为复杂,算法时间复杂度为指数级,分析效率较为低下,使其难以应用于复杂系统的建模与分析。而RGG图文法由于引入了双层结点结构和顶点标记机制,产生式的形式较为复杂,难于理解,给实际应用中设计图产生式的用户带来诸多的困难;但其规约算法在满足合流条件情形下的时间复杂度仅为多项式级,算法分析效率很高。然而,在针对某个具体应用选择上下文相关图文法工具时用户只能局限于一种形式框架,而不能分别在描述与分析时扬长避短地选择合适的形式框架,因而一方面导致了上述两种图文法形式框架在实际应用中难于凸显自身的优势,另一方面也限制了他们各自的应用范围。

发明内容
发明目的针对上述现有技术存在的问题和不足,本发明的目的是提供一种从EGG图文法到RGG图文法的转换方法,使这两种图文法形式框架紧密关联起来形成一个综合的形式化工具,以解决在实际应用中EGG和RGG相互独立、因受限于各自缺点而难于充分发挥各自优势的问题。技术方案本发明构造了一种从EGG图文法到RGG图文法的转换方法,主要包含以下步骤一、将EGG图文法实例转换成对应的VRGG实例;二、将VRGG实例转换成对应的RGG实例。为方便理解,先简要介绍EGG和RGG形式框架。EGG图产生式是一对悬边图(通过在有向图的部分结点上添加一条或多条带有标号的悬边,即不与该图中的任何其他结点相连的边,所形成的图),左图和右图上的标记悬边是一一对应的;其图柄是通过引入从产生式左、右图的核图(即删除悬边之后得到的有向图)到主图的同构映射来定义的。而RGG则引入了一种两层结构结点一个结点包含若干个顶点,结点本身则是一个超顶点,而顶点就是边的连接点;以及顶点上的一种标记机制。一个RGG图产生式是一对两层结构结点所
构成的图,图中的上下文顶点被标记,且满足左、右图中的被标记顶点--对应、标记相同。
RGG的图柄定义是通过从产生式左、右图到主图的同构映射来建立的。可见,EGG和RGG在产生式的形式上区别较大,为了弥合这一差异,引入了一种中间图文法形式框架VRGG。VRGG与RGG的不同之处仅在于它对RGG中顶点所连接边的数目作了限制在图柄匹配时,对于产生式中任何标记顶点V,主图中与顶点V的象(同构映射 下)相连的边必须唯一;它与EGG的不同之处在于产生式的形式上的差异。由于VRGG和RGG的图产生式的形式完全相同,故上述步骤二只需将VRGG图文法实例的图柄定义改为RGG的图柄定义即可,而无需改变产生式形式;而步骤一只涉及产生式形式的转换,无需改变图柄定义。综上,本发明采用以下技术方案一种从EGG图文法到RGG图文法的转换方法,首先将EGG图文法转换为仅在图柄定义上存在差异的RGG变种形式VRGG (I)构建从EGG产生式结点上的悬边到VRGG产生式结点中的顶点的对应关系,并将产生式结点上悬边转换成结点中的顶点,(2)对转换后产生式中具有同一标号的结点构建它们的极大顶点集,并将此集合统一分配给该结点在产生式集合中的所有出现,同时相应地调整与设置结点中的顶点标号;然后,根据所得VRGG产生式集中的结点形式将EGG的初始图转换成VRGG形式的初始图;最后,将VRGG图文法的产生式集转换为对应的RGG产生式集。进一步的,具体包含以下步骤I)输入一个EGG文法实例(A11P1);2)置图产生式集合P2为空;3)对于P1中的每一个产生式P= (L, R),对P进行形式变换,具体为3. I)对于P的左图L悬边集中的任一悬边e以及右图R悬边集中与之对应的悬边e',分别在L中和e相连的结点和在R中与e'相连的结点上各添加一个顶点V和V',并设置顶点的相关特性;3.2)从产生式P中删除左图和右图中的悬边集合;3. 3)将P添加到P2中;4)对于P2中的每一个结点n,根据结点η在P2中的所有出现,分别计算η中连接入边和出边的顶点集,具体为4. I)连接入边顶点集Cin(η)基数为η在P2的所有出现中入边顶点数的最大值;4.2)连接出边顶点集C()Ut (η)基数为η在P2的所有出现中出边顶点数的最大值;5)对于P2中的每一个结点η,统一分配η的顶点集合,具体为5. I)对于结点η在P2中的每一次出现,分别添加连接入边顶点和连接出边顶点使之成为为cin(n)和Cwt(n),并相应地调整结点中顶点与边的连接关系;
6)依据P2中结点的结构变换A1中对应结点,并相应地调整顶点与边之间的连接关系得到A2 ;7)将已生成的VRGG文法实例(A2,P2)转换成相应的RGG文法实例在定义句柄时允许与句柄候选子图中顶点相连的边的数目不为1,从而将RGG文法的句柄定义作为文法实例(A2,P2)的句柄定义;8)输出一个相应的RGG文法实例(A2,P2)。更进一步的,所述步骤3. I具体包括以下步骤3. I. I)如果悬边e的起点η为ρ的左图L的结点,则在产生式两端分别添加顶点并进行属性设置,否则转3. I. 2 ;上述产生式变换具体为3. I. I. I)在L的结点η上添加一个顶点V ;
·
3. I. I. 2)设置顶点V上边的连接方向为out ;3. I. I. 3)设ρ的右图R中与e标号相同的边e'(与e 对应)的起点为η',在R的结点η'上添加一个顶Av';3. I. I. 4)设置顶点V'上边的连接方向为out ;3. I. 2)如果悬边e的终点η为ρ的右图R的结点,则在产生式两端分别添加顶点并进行属性设置,具体为3. I. 2. I)在L的结点η上添加一个顶点V ;3. I. 2. 2)设置顶点V上边的连接方向为in ;3. 1.2. 3)设ρ的右图R中与e标号相同的边V的终点为Y,在R的结点Y上添加一个顶点V ;3. I. 2. 4)设置顶点V上边的连接方向为in ;3. I. 3)设置结点η与Y中新添顶点的标号,具体为3. I. 3. I)设产生式P中的悬边集标记函数为M1,则置顶点V的标号为M1 (e);3. I. 3. 2)置顶点 V'的标号为 M1 (e)。所述步骤5. I具体包括以下步骤5. I. I)设η在P2的任一次出现为Iii,令Iii中的顶点数为d,其中连接入边的顶点数和连接出边的顶点数分别为Cl1和d2,对应的顶点标号集合分别为Lb1和Lb2 ;5. I. 2)在η1中添加cin (n)-(I1个连接入边的顶点和Ctjut (n) _d2个连接出边的顶点,得到新Iii结点;5. I. 3)建立Iii与新Iii顶点标号之间的--映射f,具体为5. I. 3. I)将Lb1中的数字按升序映射到区间[1,dj ;5. I. 3. 2)将Lb2中的数字按升序映射到区间[cin(n)+l,cin(n) +d2];5. I. 4)在新η1中对所有顶点统一分配标号,具体为5. I. 4. I)应用已构造的映射f为新Iii中已标记顶点重新赋予标号将连接入边顶点V的标号mark(v)从Lb1中的某个值替换成I^d1中的f (mark(v)),将连接出边顶点V'的标号markiy')从Lb2中的某个值替换成cin(n) +I^cin(n) +d2中的f (markiy'));5. I. 4. 2)为新η1中未标记顶点赋予标号将(Ijfcin(η)作为顶点标号分别赋予未标记的连接入边顶点,将cin(n)+d2+fCin(n)+C()Ut(n)作为顶点标号分别赋予未标记的连接出边顶点;
5. I. 5)调整与η1中任一顶点V相连的边,使之在新η1中与标号为f (mark(V))的顶点相连。有益效果本发明提出的转换方法将一个EGG图文法实例转换成一个相应的RGG实例。理论证明,应用上述转换方法所生成的RGG图文法实例对应的图语言在图同构意义下包含转换前的EGG图文法实例对应的图语言。基于此,在应用图文法时用户就可以选择形式简洁直观且易于设计的EGG形式框架来描述应用中的图结构,然后采用本发明的转换方法将所设计的EGG图文法实例转换成对应的RGG实例,就可以使用RGG的多项式复杂度规约算法对图的结构进行高效的分析。由此,图文法技术的应用就不必再局限于一个形式框架,从而提高了图文法的易用性和分析效率。



图I为本发明的从EGG图文法到RGG图文法的转换方法流程图。
具体实施例方式下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。在具体实施方式
上,本发明涉及的转换方法既可以实现为一个独立软件系统,也可以作为一个软件构件集成到其它相关的EGG或RGG图文法系统中形成一个综合的图文法系统应用平台或工具。以实现为独立图文法工具为例详解本发明的一般实施方式。在实施之前,需要根据工具的应用场景选择合适的RGG和RGG的形式框架及其文法实例的存储结构和存储方式。鉴于图文法的图形特性,一般地,可以选择图形式的存储结构和文件如xml格式的存储方式。本发明所涉及转换方法的具体实施方式
如图I所示,详细步骤如下I)输入一个EGG文法实例(A1, P1);2)置图产生式集合P2为空;3)对于P1中的每一个产生式P= (L,R),对P进行形式变换,具体为3. I)对于P的左图L悬边集中的任一悬边e以及右图R悬边集中与之对应的悬边e',分别在L中和e相连的结点和在R中与e'相连的结点上各添加一个顶点V和V',并设置顶点的相关特性;3. 2)从产生式P中删除左图和右图中的悬边集合;3. 3)将 P 添加至Ij P2 中;4)对于P2中的每一个结点n,根据结点η在P2中的所有出现,分别计算η中连接入边和出边的顶点集,具体为4. I)连接入边顶点集Cin(η)基数为η在P2的所有出现中入边顶点数的最大值;4.2)连接出边顶点集C()Ut (η)基数为η在P2的所有出现中出边顶点数的最大值;5)对于P2中的每一个结点η,统一分配η的顶点集合,具体为5. I)对于结点η在P2中的每一次出现,分别添加连接入边顶点和连接出边顶点使之成为为cin(n)和Cwt(n),并相应地调整结点中顶点与边的连接关系;
6)依据P2中结点的结构变换A1中对应结点,并相应地调整顶点与边之间的连接关系得到A2 ;7)将已生成的VRGG文法实例(A2,P2)转换成相应的RGG文法实例,也就是在定义句柄时允许与句柄候选子图中顶点相连的边的数目不为1,从而将RGG文法的句柄定义作为文法实例(A2,P2)的句柄定义;8)输出一个相应的RGG文法实例(A2,P2)。在上述步骤中,3. I的具体过程为3. I. I)如果悬边e的起点η为ρ的左图L的结点,则在产生式 两端分别添加顶点并进行属性设置,否则转3. I. 2。上述产生式变换具体为3. I. I. I)在L的结点η上添加一个顶点V ;3. I. I. 2)设置顶点V上边的连接方向为out ;3. I. I. 3)不妨设ρ的右图R中与e标号相同的边e'(与e 对应)的起点为n/ ,在R的结点η'上添加一个顶点V';3. I. I. 4)设置顶点V'上边的连接方向为out ;3. I. 2)如果悬边e的终点η为ρ的右图R的结点,则在产生式两端分别添加顶点并进行属性设置,具体为3. I. 2. I)在L的结点η上添加一个顶点V ;3. I. 2. 2)设置顶点V上边的连接方向为in ;3. I. 2. 3)不妨设ρ的右图R中与e标号相同的边^的终点为V,在R的结点n/上添加一个顶点V';3. I. 2. 4)设置顶点V上边的连接方向为in ;3. I. 3)设置结点η与Y中新添顶点的标号,具体为3.1.3. I)不妨设产生式P中的悬边集标记函数为M1,则置顶点V的标号为M1 (e);3. I. 3. 2)置顶点 V'的标号为 M1 (e)。在上述步骤中,5. I的具体过程为5. I. I)不妨设η在P2的任一次出现为1^,令1^中的顶点数为d,其中连接入边的顶点数和连接出边的顶点数分别为Cl1和d2,对应的顶点标号集合分别为Lb1和Lb2 ;5. I. 2)在η1中添加cin (n)-(I1个连接入边的顶点和Ctjut (n) _d2个连接出边的顶点,得到新Iii结点;5. I. 3)建立η1与新η1顶点标号之间的映射f,具体为5. I. 3. I)将Lb1中的数字按升序映射到区间[1,dj ;5. I. 3. 2)将Lb2中的数字按升序映射到区间[cin(n)+l,cin(n) +d2];5. I. 4)在新η1中对所有顶点统一分配标号,具体为5. I. 4. I)应用已构造的映射f为新Iii中已标记顶点重新赋予标号,也就是将连接入边顶点V的标号mark (V)从Lb1中的某个值替换成1" 中的f (mark (v)),将连接出边顶点V'的标号mark(y )从Lb2中的某个值替换成cin(n)+l"cin(n)+d2中的f (mark(V'));5. I. 4. 2)为新η1中未标记顶点赋予标号,将(Ijfcin(η)作为顶点标号分别赋予未标记的连接入边顶点,将cin(n)+d2+fCin(n)+C()Ut(n)作为顶点标号分别赋予未标记的连接出边顶点;
5. I. 5)调整与η1中任一顶点V相连的边,使之在新η1中与标号为f (mark(V))的顶点相连。以下进一步说明上述步骤中的实施要点。在输入预定存储结构的EGG文法实例(A1, P1)之后,首先,将EGG实例转换成对应的VRGG实例,转换的方法是将EGG实例的产生式集合P1中每一个的产生式都转换成相应的VRGG产生式,从而得到VRGG实例的产生式集合P2,具体实施要点如下一,在处理每一个EGG产生式ρ时,需要针对ρ左图中的每一条悬边e进行处理,于此同时,还必须处理右图中与e唯一对应的悬边e',将它们转换成为VRGG产生式形式中的顶点结构,并赋予其标号和方向等属性。一条产生式转换完成之后,将修改后得到的P置入P2,如此反复,直到所有产生式处理完毕。二,在得到P2后,需要对其中任一结点η(根据标号区分)的顶点集进行处理,方法是首先从η在P2的所有出现(标号为η的结点)中收集不同顶点形成一个极大顶点集,显然此顶点集由连接入边顶点集和连接出边顶点集构成,然后用此顶点集替换结点η在P2的每一个出现中的原有顶点集;此步骤中需要解决的关键问题是结点η中顶点标号的分配问题,所用的技术途径是根据连接入边顶点集的基数和连接出边顶点集的基数,将标号空间分成低端和高端两部分以分别与之对应;在每一部分标号空间中,再按照升序将低端标号分配给被标记顶点(原有顶点集中的顶点)在顶点替换后所对应的顶点,将高端标号分配给未被标记的新添顶点(原有顶点集中没有的顶点),从而确保结点η在P2的所有出现中顶点标号的一致性。其次,依据P2中结点结构转变换A1中的对应结点以及顶点与边的连接关系,得到VRGG形式的初始图Α2。接下来,将VRGG文法实例转换为对应的RGG文法实例,由于这一转换只涉及图柄定义的改变而不涉及产生式的形式变化,在具体实施上只需将VRGG实例视为RGG实例即可,在存储结构无需做任何改变。最后,将(Α2,Ρ2)以预定的易于修改和储存的文件形式或者便于用户理解的可视·化图形式输出。本发明建立了两个相互独立的图文法形式框架EGG和RGG之间的联系,使图文法应用不再拘泥于一个形式框架,而是可以在描述和分析时扬长避短地选择合适的框架,从而提高了图文法技术的易用性和分析效率。
权利要求
1.一种从EGG图文法到RGG图文法的转换方法,其特征在于,首先将EGG图文法转换为仅在图柄定义上存在差异的RGG变种形式VRGG (I)构建从EGG产生式结点上的悬边到VRGG产生式结点中的顶点的一一对应关系,并将产生式结点上悬边转换成结点中的顶点,(2)对转换后产生式中具有同一标号的结点构建它们的极大顶点集,并将此集合统一分配给该结点在产生式集合中的所有出现,同时相应地调整与设置结点中的顶点标号;然后,根据所得VRGG产生式集中的结点形式将EGG的初始图转换成VRGG形式的初始图;最后,将VRGG图文法的产生式集转换为对应的RGG产生式集。
2.根据权利要求I所述一种从EGG图文法到RGG图文法的转换方法,其特征在于,具体包含以下步骤 1)输入一个EGG文法实例(A1,P1); 2)置图产生式集合P2为空; 3)对于P1中的每一个产生式P=(L,R),对P进行形式变换,具体为 3.I)对于P的左图L悬边集中的任一悬边e以及右图R悬边集中与之对应的悬边e',分别在L中和e相连的结点和在R中与e'相连的结点上各添加一个顶点V和V',并设置顶点的相关特性; 3. 2)从产生式P中删除左图和右图中的悬边集合; 3.3)将P添加至IJ P2中; 4)对于P2中的每一个结点n,根据结点η在P2中的所有出现,分别计算η中连接入边和出边的顶点集,具体为 4.I)连接入边顶点集Cin(η)基数为η在P2的所有出现中入边顶点数的最大值; 4.2)连接出边顶点集C()Ut (η)基数为η在P2的所有出现中出边顶点数的最大值; 5)对于P2中的每一个结点η,统一分配η的顶点集合,具体为 5.I)对于结点η在P2中的每一次出现,分别添加连接入边顶点和连接出边顶点使之成为为cin(n)和C()Ut(η),并相应地调整结点中顶点与边的连接关系; 6)依据P2中结点的结构变换A1中对应结点,并相应地调整顶点与边之间的连接关系得到A2 ; 7)将已生成的VRGG文法实例(A2,P2)转换成相应的RGG文法实例在定义句柄时允许与句柄候选子图中顶点相连的边的数目不为1,从而将RGG文法的句柄定义作为文法实例(A2, P2)的句柄定义; 8)输出一个相应的RGG文法实例(A2,P2)。
3.根据权利要求2所述一种从EGG图文法到RGG图文法的转换方法,其特征在于,所述步骤3. I具体包括以下步骤 3. I. I)如果悬边e的起点η为ρ的左图L的结点,则在产生式两端分别添加顶点并进行属性设置,否则转3. I. 2 ;上述产生式变换具体为 3. I. I. I)在L的结点η上添加一个顶点V ; 3. I. 1.2)设置顶点V上边的连接方向为out ; 3. I. I. 3)设ρ的右图R中与e标号相同的边V的起点为Y,在R的结点Y上添加一个顶点V'; 3. I. I. 4)设置顶点V'上边的连接方向为out ;.3. I. 2)如果悬边e的终点η为ρ的右图R的结点,则在产生式两端分别添加顶点并进行属性设置,具体为 .3. I. 2. I)在L的结点η上添加一个顶点V ; .3. 1.2. 2)设置顶点V上边的连接方向为in ; .3. I. 2. 3)设ρ的右图R中与e标号相同的边V的终点为Y,在R的结点Y上添加一个顶点V'; .3. I. 2. 4)设置顶点V'上边的连接方向为in ; .3.I. 3)设置结点η与n'中新添顶点的标号,具体为 .3.1.3. I)设产生式ρ中的悬边集标记函数为M1,则置顶点V的标号为札&); .3. I. 3. 2)置顶点V的标号为M1 (e)。
所述步骤5. I具体包括以下步骤 .5. I. I)设11在己的任一次出现Sni,令Iii中的顶点数为d,其中连接入边的顶点数和连接出边的顶点数分别为Cl1和d2,对应的顶点标号集合分别为Lb1和Lb2 ; .5. I. 2)在η1中添加cin(n) -(I1个连接入边的顶点和cout (n) _d2个连接出边的顶点,得到新η1结点; .5. I. 3)建立η1与新η1顶点标号之间的映射f,具体为 .5. I. 3. I)将Lb1中的数字按升序映射到区间[1,dj ; .5. I. 3. 2)将Lb2中的数字按升序映射到区间[cin(η)+1,cin(n)+d2]; .5. I. 4)在新η1中对所有顶点统一分配标号,具体为 .5. I. 4. I)应用已构造的映射f为新Iii中已标记顶点重新赋予标号将连接入边顶点V的标号mark(v)从Lb1中的某个值替换成I^d1中的f (mark(v)),将连接出边顶点V'的标号 markiy')从 Lb2 中的某个值替换成 cin(n) +I^cin(n) +d2 中的 f (markiy')); .5. I. 4. 2)为新Iii中未标记顶点赋予标号将C^fcin(η)作为顶点标号分别赋予未标记的连接入边顶点,将cin(n)+d2+fCin(n)+C[)Ut(n)作为顶点标号分别赋予未标记的连接出边顶点; .5.I. 5)调整与η1中任一顶点V相连的边,使之在新η1中与标号为f (mark(V))的顶点相连。
全文摘要
本发明公开了一种从EGG图文法到RGG图文法的转换方法,首先将EGG图文法转换为仅在图柄定义上存在差异的RGG变种形式VRGG;然后,根据所得VRGG产生式集中的结点形式将EGG的初始图转换成VRGG形式的初始图;最后,将VRGG图文法的产生式集转换为对应的RGG产生式集。本发明解决在实际应用中EGG和RGG相互独立、因受限于各自缺点而难于充分发挥各自优势的问题。
文档编号G06F9/44GK102929639SQ20121044373
公开日2013年2月13日 申请日期2012年11月8日 优先权日2012年11月8日
发明者邹阳, 曾晓勤 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1