元数据存储库系统中违背良格式约束潜在操作的推理

2016-06-16 07:11赵晓非史颖欢史忠植
计算机研究与发展 2016年5期

赵晓非 高 阳 史颖欢 史忠植

1(天津工业大学计算机科学与软件学院 天津 300387)2(计算机软件新技术国家重点实验室(南京大学) 南京 210023)3(中国科学院智能信息处理重点实验室(中国科学院计算技术研究所) 北京 100190)(zhaoxiaofei1978@hotmail.com)

元数据存储库系统中违背良格式约束潜在操作的推理

赵晓非1,2,3高阳2史颖欢2史忠植3

1(天津工业大学计算机科学与软件学院天津300387)2(计算机软件新技术国家重点实验室(南京大学)南京210023)3(中国科学院智能信息处理重点实验室(中国科学院计算技术研究所)北京100190)(zhaoxiaofei1978@hotmail.com)

摘要存储库系统的元数据组织方式呈现出分层、多级并且动态变化的复杂结构;存储库系统标准对确保良格式约束规定得并不充分,上述2个原因使得确保基于元对象设施(meta object facility, MOF)建立的元数据存储库系统的状态不违背良格式约束成为一个令人棘手的问题.提出了一种能够自动推断可能违背良格式约束的潜在操作的方法.首先定义了一组比MOF的构造活动更精确和灵活的MOF内部活动并建立了二者之间的对应关系;接着研究了如何推断可能违背约束条件的内部活动;最后通过比对与这些内部活动相对应的构造活动是否在操作规范中出现,研究了如何推断违背约束条件的潜在操作,该方法可以用于约束检测领域.由于可以剔除许多无关的检测,该方法可以有效地提高良格式约束检测的效率.此外该方法对约束设计领域也有一定的参考价值.

关键词存储库系统;良格式约束;元对象设施;约束检测;构造活动;内部活动

如今,元对象设施(meta object facility, MOF)[1]已经成为国际上普遍接受和采用的元数据存储库系统标准.作为MOF存储库系统的重要组成部分,基于对象约束语言(object constraint lang-uage, OCL)[2]定义的良格式约束规定了系统所有状态都必须遵从的条件.存储库系统的内容会由于操作的执行而被改变,因此必须确保操作执行后存储库系统的状态不违背元层次中的良格式约束.

然而2个原因的存在使得这一任务变得相当困难:1)存储库系统中元数据的组织方式呈现出分层、多级并且动态变化的复杂结构.不同于数据库系统,存储库系统引入M3层允许用户对M2层进行定义.在运行时刻M2,M1和M0层都可以被动态修改;2)MOF标准对确保良格式约束规定得并不充分.MOF提供了4种机制用于保证存储库系统一致性,包括:1)MOF定义了一组模型约束;2)MOF为抽象映射定义了一组闭包规则和计算语义,JMI为Jave映射定义了计算语义;3)MOF为描述领域规则提供了constraint模型元素;4)MOF和JMI定义了一组存储库界面.然而上述措施都是针对语法正确性的确保,而不是良格式约束.

针对上述问题,本文提出了一种能够自动推断违背良格式约束的潜在操作的方法.存储库操作对存储库系统的影响通常可以通过一组构造活动来指定[3-4].如果已知某个操作所涉及的所有构造活动均不会违背特定的良格式约束,则可以断言该操作的执行不会违背该约束.本文的方法正是基于这种思想,该方法的基本原理是为每个约束条件找到可能违背它的构造活动的集合,然后与操作规范进行对比,若其中的一个或多个构造活动与操作规范相关,则可断定该操作的执行可能会违背该约束条件.

我们的方法可以用于约束检测领域,通过推断出与给定操作无关的约束条件并将之从该操作执行以后的约束检测过程中剔除,该方法可以显著提高这一过程的效率.此外,该方法也可用于约束设计领域.如果应用该方法后我们发现某个约束永远不会被违背(即没有操作能够影响到它),则可考虑删除该约束.

1构造活动及内部活动

1.1存储库系统中的构造活动

构造活动是对实体类型(类)或关系类型(关联)进行原子的、不可再分的修改活动,如建立对象、改变对象类型、建立链接等.构造活动的精确数量和定义取决于特定的存储库系统标准.在MOF标准中,构造活动是行为规范中所有活动的子集.只有构造活动能够修改系统的内容,因此只有它们的执行才可能导致约束条件的违背.如果一个构造活动的执行可能导致某个约束条件的违背,则称该构造活动是该约束条件的潜在违背构造活动,简称PEA(possibly violating establishment activity).

MOF存储库系统中的构造活动有8种(详细信息请参见文献[1]),如表1所示:

Table 1 Establishment Activity in MOF

1.2内部活动的提出

为了推断OCL良格式约束的PEA集合,我们需要研究哪些构造活动的执行可能违背约束条件.下面我们将提出一组内部活动并建立它们与MOF构造活动的对应关系.在推理过程中实际参与推断的是我们所提出的内部活动.之所以选择在内部活动而不是构造活动之上进行推理是基于2个原因:1)本文的方法借助良格式约束是OCL元模型的实例这一特性,通过建立发现图实例并在其上进行推理从而实现PEA的推断,因而针对可能影响OCL元模型实例的活动进行推断是较方便的选择,相反,构造活动是面向MOF模型机制的,直接在其上进行推理(尽管理论上可实现)会带来诸多不便之处;2)目前国际上现存的元数据存储库标准有MOF,IRDS,PCTE等多种,每种标准都定义了自己框架内的构造活动.而我们则希望提出一种推断PEA的通用方法,因为一旦建立了本文提出的内部活动和其他存储库框架的构造活动之间的对应关系,就可以调整本文的方法以适用于其他存储库框架.这将极大地提高我们所提出的方法的适用性.

下面对OCL元模型元素种类及特性进行分析.约束元模型元素包括实体类型和关系类型2类,其上分别有建立实例和删除实例2种活动可能导致约束的违背.此外对实体类型的泛化和特化以及修改实例属性及关联端的活动均可能导致约束的违背,因此我们共总结出8种内部活动.

表2列出了这些内部活动及其与MOF构造活动的对应关系.尽管内部活动与MOF的构造活动之间并不一一对应,但它们较MOF构造活动更便于PEA的推断并且可以通过表2的简单映射转换为构造活动.例如,如果推断出某个实例之上的内部活动AssignObject可能违背约束条件,而该实例既不是关联类也不是由其他实例调整所得,则需将其转化为该实例之上的构造活动CreateObject-Action,若该AssignObject是关联端的变化所导致的,则还需加上该实例之上的构造活动AddStruc-turalFeatureAction.其他内部活动的转换与之类似,此处不再赘述.

Table 2 Correspondence between Inner Activity and MOF Establishment Activity

2本文所使用的例子

本文所使用的例子如下,它包括元数据的模型结构、位于M1层的4个OCL良格式约束以及修改存储库系统内容的3个操作.为了简明起见,我们忽略其他层中的约束.模型结构如图1所示.作为M2层元数据实例的M1层元数据描述了学校和教师的信息.教师分为全职教师和兼职教师.M1层中的4个约束条件如图2所示,分别用于确保每个学校至少有1个60岁以上的教师(OldTeacher约束)、校长不能是兼职教师(NotHeadmasterParttimeteacher约束)、2个教师的名字不能相同(UniqueName约束)、兼职教师的周工作时间必须介于10 h和40 h之间(ValidWorkinghours约束).3个操作如图3所示.在每个具体活动的后面我们附加了等价的MOF构造活动.操作EmployParttimeteacher为给定的学校聘用1个新兼职教师.它建立类元Parttimeteacher的1个新对象实例,对其进行初始化赋值并将其关联到学校.操作DismissTeacher解聘1个教师(全职或兼职)并删除其与学校的关联.操作Delete-Association删除1个关联,同时删除它的关联端、关联与关联端之间的关系以及关联端与类之间的关系.EmployParttimeteacher和DismissTeacher仅修改M0层中的内容,而DeleteAssociation修改M1层中内容的同时将改变传播到M0层,即M0层中的内容也将被修改.

因为高层次中内容的改变必须传播到它下面的所有层次,例如删除1个类的同时必须删除下面所有层次中该类的所有实例.

Fig. 1 Model structure of the metadata.图1 元数据的模型结构

Fig. 2Well-formedness constraints in M1.
图2元数据M1层中的良格式约束

Fig. 3Operations that update the repository system.
图3修改存储库系统内容的操作

为了更好地理解1.2节中提出的内部活动,这里为每个内部活动给出1个例子.内部活动AssignObject例如建立实体类型Teacher的1个实例,Teacher或Parttimeteacher之上的CreationObjectAction均可导致此活动;ModifyProperty例如1名教师年龄的修改;RomoveObject的例子是删除1名教师;1名教师变为1名兼职教师是属于内部活动SubReclassify;内部活动SuperReclassify正好与之相反;分配1名教师到1个学校是属于内部活动AssignLink;ModifyEnd的例子是校长的修改;内部活动RemoveLink例如删除1名教师与1个学校的工作关系.

3发现违背良格式约束的潜在操作

如引言所述,本方法的基本思想是通过推断可能违背约束的潜在构造活动PEA并检查它们是否出现在操作规范中从而在约束的定义时刻推断出违背它的潜在操作.之所以称其为潜在违背构造活动,是指它们可能会违背约束,但并不意味着这些活动的每次执行都会违背约束(这依赖于活动执行时刻的具体参数).为了推断违背约束的潜在操作,我们的方法分5个步骤,分别阐述于3.1~3.5节.

3.1简化良格式约束

第1步是对定义良格式约束的OCL表达式进行等价化简.首先使用定义在OCL标准库[2]中的等价操作对出现在表达式中的操作数目进行约减,接着将表达式转换为等价的合取范式.转换的结果是每个约束被表示为析取项的合取.所得到的析取项的字面量包括forAll迭代子、算术比较、对象集合等价比较、布尔属性、not操作符、oclIsTypeOf操作符以及oclIsKindOf操作符等.显然要满足约束条件,存储库系统必须满足每个析取项.一个析取项被满足需要至少它的字面量之一被满足.

对第2节中的4个约束进行操作数目的约减之后,约束OldTeacher和UniqueName变为(其他约束保持不变):

context School inv OldTeacher:

self.teacher->select(t|t.age>60)->size()>0

context Teacher inv UniqueName:

Teacher.allInstances()->forAll(t1,t2|nott1=t2implies nott1.name=t2.name)

进一步转换为合取范式之后,约束UniqueName变为(其他约束保持不变):

context Teacher inv UniqueName:

Teacher.allInstances()->forAll(t1,t2|t1=t2or nott1.name=t2.name)

3.2建立发现图

第2步是根据良格式约束与OCL元模型[2]之间的内容——实例关系建立发现图.发现图的每个节点作为OCL元模型中元类的实例,表示OCL表达式的一个原子子集.节点的第1个后继是OCL表达式位于该节点之前的部分.若该节点表示2元操作(如“>”,“+”等),则节点的第2个后继是操作的参数;若节点表示loop表达式(如forAll,select等),则节点的第2个后继是迭代子的体.

Fig. 4 Discovery graph for constraint OldTeacher.图4 约束OldTeacher对应的发现图

图4给出了根据约束OldTeacher(self.teacher->select(t|t.age>60)->size()>0)建立的发现图.与操作“>”相应的元类OperationCallExp的实例是初始节点,其第1个后继是位于“>”之前的表达式(self.teacher->select(t|t.age>60)->size())而下1个后继是操作的参数(整型常量0).初始结点的第1个后继节点的第1个后继节点是操作size,它只有1个孩子select.节点select的第1个后继节点是关联端teacher而第2个后继节点是位于属性age和整型常量60之间的操作“>”.

3.3标记发现图

为了推断给定约束的PEA集合,仅单独考虑OCL表达式的每个部分是不够的.例如为了推断约束OldTeacher是否可能被分配教师到学校或解除教学关系2种活动所违背,不能只考虑子表达式self.teacher->select(t|t.age>60)->size().实际上这2种活动都可能改变该子表达式的值,然而由于size操作之后是“>”操作,因此只有解除教学关系才可能导致约束的违背,相反,如果size之后是“<=”操作,则只有分配教室到学校才可能导致约束的违背.上述分析表明只有综合考虑每个OCL原子子集的上下文信息才能正确推断出给定约束的PEA集合,因此下一步的工作是利用发现图中每个节点的上下文信息对其进行标记.

为每个节点所作的标记指示出该节点与它的后继节点之间相互影响的信息.在全面分析OCL各种结构的基础上我们归纳出4种不同类型的标记信息:1)“+”表示表达式值的增加或项目数量的增加可能导致约束的违背;2)“-”表示表达式值的减少或项目数量的减少可能导致约束的违背;3)“m”表示表达式值的改变或项目数量的改变可能导致约束的违背;4)“nr”表示该节点与其后继节点并无相互影响.

下面对每种标记进行举例说明.对于“+”和“-”,考虑“>”操作,要违背约束A>B有2种情况:A值的减少或B值的增加,因此节点“>”的第1个后继节点之上应该标记为“-”,而第2个后继节点之上应该标记为“+”.对于标记“m”,考虑select操作,不仅向待选集合增加对象或删除对象可能影响select的结果,甚至等数量替换待选集合的某些对象也可能影响select的结果,因此节点select的后继节点之上应该标记为“m”.对于标记“nr”,考虑and操作,由于违背AandB的活动与单独违背A和违背B的活动相同,也就是说节点and与它的后继节点之间不存在相互影响,因此节点and的后继节点之上均应标记为“nr”.

Fig. 5 Marking the OldTeacher discovery graph.图5 标记约束OldTeacher对应的发现图

由于标记发现图的过程需要首先考虑当前节点之上的标记信息以及节点的类型从而确定其后继节点之上的标记信息,因此标记的过程需要对发现图进行广度优先遍历.表3对各种节点类型的标记方法进行了汇总.表3的单元格中如果某个节点上的标记符号超过1个,则应分别应用每种标记以确定其后继节点上的标记.单元格的内容“×”表示不存在这种组合情况的约束条件.

对约束OldTeacher对应的发现图进行标记的结果如图5所示.为了简明起见,我们略去了图4中与标记无关的内容.另外为每个节点添加了标记该节点所用到的表3单元格的信息,其中(X,Y)表示第X行、第Y列的单元格.

标记的过程首先从初始节点开始.由于“>”无前驱节点,因此其上无须标记.根据单元格(2,1),初始节点的第1个后继应标记为“-”而第2个后继应标记为“+”,因此节点size之上为“-”.再根据单元格(11,3),我们将节点size的后继(节点select)标记为“-”.按照单元格(10,3),节点select的第1个后继节点之上的标记是“-m”而第2个后继节点之上的标记是“nr”.再参考单元格(9,3)和(9,4),节点teacher的后继节点self应标记为“-m”.其他部分的标注以此类推,限于篇幅,此处不再赘述.

Table 3 Marking Information for Discovery Graph

3.4获取内部活动

发现图标记好以后,下一步就可以据此推断出给定约束的潜在违背内部活动PIA(possibly violating inner activity).由于标记图已明确标示出OCL原子子集表达式的类型以及该表达式如何变化能够违背整个约束,因此推断PIA的过程就是自下而上逐级推断并汇总的过程,也就是对图进行广度优先遍历的逆过程.

表4汇总了不同节点类型和标记信息的组合所对应的PIA集合.c1+c2表示该节点的PIA集合是其后继节点的PIA集合的并集.c1适用于该节点只有1个后继节点的情形.空单元格意味着该节点并不影响PIA的推断汇总.需要特别说明的是c1+X和opp(X).c1+X表示该节点向PIA集合中添加活动X.举例来说,如果关联端被标记为“+”,则其从属关联的链接实例的建立可能导致约束的违背,因此该节点应向PIA集合中添加AssignLink活动,即c1+AssignLink.opp(X)表示该节点的PIA是其后继节点返回的PIA的相反活动,例如not操作.内部活动的相反活动分别如下:opp(AssignObject)=RomoveObject,opp(ModifyProperty)=ModifyProperty,opp(RomoveObject)=AssignObject,opp(AssignLink)=RemoveLink,opp(RemoveLink)=AssignLink,opp(ModifyEnd)=ModifyEnd.

Table 4 Set of PIA for Different Nodes and Marking Information

Fig. 6 Deducing the PIA for OldTeacher.图6 推断约束OldTeacher的潜在违背内部活动PIA

将表4应用于约束OldTeacher,得到的结果如图6所示.首先处理节点self.由于节点self之上的标记是“-”和“m”,按照表4的单元格(17,3),(17,4)可知该节点不添加任何PIA.然后参考单元格(9,3),(9,4)处理关联端teacher,向PIA的集合中添加活动AssignObject(School),RemoveLink(TeachesIn),ModifyEnd(TeachesIn-Teacher).接着处理节点select的第2个后继(t.age>60),它添加了活动ModifyProperty(age).在此之后处理节点select,参考单元格(10,3),节点select的PIA集合是它的后继节点的PIA集合的并集.随后处理节点size、整型常量节点0并以初始节点“>”结束,它们均不添加任何活动.最终由初始节点“>”返回的PIA集合即是整个约束表达式的PIA的集合.通过这一步骤,我们可知可能违背约束OldTeacher的内部活动有ModifyProperty(age),ModifyEnd(TeachesIn-Teacher),RemoveLink(TeachesIn),AssignObject(School).

3.5发现违背约束的潜在操作

如引言所述,存储库系统操作可以表示为构造活动的集合.如果给定约束的1个或多个PEA在存储库系统操作规范中出现,我们就可以断定该操作的执行有可能导致该约束被违背,因此按照上述步骤推断出每个约束条件的PIA集合以后,需要将其转换为对应的PEA的集合,并检查它们是否在操作规范中出现.转换过程按照1.2节中所述的对应规则进行.以OldTeacher为例,ModifyEnd(TeachesIn-Teacher)直接转化为关联端teacher之上的Add-StructuralFeatureAction,ModifyProperty(age)直接转化为属性age之上的AddStructuralFeatureAction,RemoveLink(TeachesIn)转化为关联TeachesIn之上的DestroyLinkAction,对于AssighObject(School),由于School既不是关联类也不是由其他实例调整所得,而且AssignObject不是由关联端的变化所导致,因此只需将其转化为School之上的Create-ObjectAction.

应用于第2节中的整个例子,我们得到如下结果.

1) 每个约束的PIA集合

① OldTeacher—ModifyProperty(age),ModifyEnd(TeachesIn-Teacher),RemoveLink(TeachesIn),AssignObject(School);

② NotHeadmasterParttimeteacher—SubReclassify(Parttimeteacher),AssignLink(Manages),ModifyEnd(Manages-Headmaster);

③ UniqueName—AssignObject(Teacher),ModifyProperty(Name-Teacher);

④ ValidWorkinghours—AssignObject(Parttime-teacher),ModifyProperty(workinghours).

2) 转换为MOF标准的构造活动所得的PEA集合

① OldTeacher—属性age之上的AddStruc-turalFeatureAction,关联端teacher之上的Add-StructuralFeatureAction,关联TeachesIn之上的DestroyLinkAction,School之上的CreateObject-Action;

② NotHeadmasterParttimeteacher—将全职教师所属类元修改为Parttimeteacher的Reclassify-ObjectAction,Manages之上的CreateLinkAction,关联端headmaster之上的AddStructuralFeature-Action;

③ UniqueName—Teacher之上的CreateObject-Action,Parttimeteacher之上的CreateObjectAction,属性name之上的AddStructuralFeatureAction;

④ ValidWorkinghours—Parttimeteacher之上的CreateObjectAction,属性workinghours之上的AddStructuralFeatureAction.

3) 最后根据上述信息可得出每个操作可能违背的约束

① EmployParttimeteacher可能违背Valid-Workinghours和UniqueName,其他2个约束则不会违背;

② DismissTeacher只可能违背OldTeacher;

③ DeleteAssociation只可能违背OldTeacher.

利用上述推断出的知识,在每个操作执行完以后就无需检测所有4个约束条件了,执行Employ-Parttimeteacher以后只需检测2个约束而执行DismissTeacher和DeleteAssociation以后只需检测1个约束.可以看到我们的方法能够大大提高良格式约束检测的效率.

4相关工作

Petrov等人[5]论述了基于MOF的元数据存储库系统中各种一致性的概念并提出了策略和算法用于增强操作执行以后的系统状态和良格式约束之间的一致性.然而在此过程中他们对所有约束条件进行检测,从而使得检测过程效率不高.类似的局限性也出现于Paria等人[6]的研究工作中.相比之下,由于在检测过程中只需考虑实际可能被违背的约束,不相关的约束将被略去,我们的方法可以显著提高该过程的效率.Takeshi等人[7]在解决元数据交换问题时也将元数据组织到不同的层次中.与本文针对的MOF框架不同的是,他们的元数据层次不是按照元数据的语义级别而是按照不同的元数据的内容及相关程度进行组织的,各层次之间并无语义关联.操作对存储库内容的修改不会影响到下面的层次使得约束的确保相对简单,但该框架难以适用于动态变化的复杂元数据结构.文献[8]所提出的元数据框架也具有类似问题.

据我们所知,在基于MOF的元数据存储库系统中推断出给定约束的确切PEA集合的问题在国际上还未有相关研究.类似的研究存在于演绎数据库和关系数据库领域,所采用的解决方法主要是将OCL约束转换为逻辑表达式或SQL表达式[9-14],而后在此基础上设计算法用以推断给定约束的确切PEA集合.不幸的是,由于OCL约束包括了诸如否定、递归、包语义、聚合操作等很多复杂结构,所提出的算法的处理能力很难涵盖OCL约束的所有机制,如文献[15].尽管有的算法对此进行了改进以支持OCL约束的所有机制,但处理逻辑的高复杂性又导致了算法的效率不高(关于它们的局限性参见文献[16]).基于上述原因,我们认为不进行转换、而在定义良格式约束的OCL表达式上直接进行推导是解决该问题的最佳途径.

5结论及未来工作

确保MOF存储库系统的状态不违背良格式约束是一个令人棘手的问题.本文提出的方法可以推断操作的执行是否可能违背良格式约束.由于可以剔除许多无关的检测,因此该方法可以显著提高约束检测的效率,另外该方法对约束设计领域也有一定的参考价值.

有效的约束检测至少要解决2方面的问题:1)本文中阐述的问题;2)当我们知道操作的执行可能违背某个约束条件时,如何设计高效的算法去检测它,而这正是我们下一步要进行的工作.

参考文献

[1]Object Management Group. Meta Object Facility Core Specification, Version 2.4.2 [S]. Needham, Massachusetts: Object Management Group, 2014

[2]Object Management Group. Object Constraint Language Specification, Version 2.4[S]. Needham, Massachusetts: Object Management Group, 2014

[3]Olive A. Time and change in conceptual modeling of information systems[G]Information Systems Engineering: State of the Art and Research Themes. Berlin: Springer, 2000: 289-304

[4]Wieringa R. A survey of structured and object-oriented software specification methods and techniques[J]. ACM Computing Surveys, 2008, 30(4): 459-527

[5]Petrov I, Jablonski S, Holze M. On the notion of consistency in metadata repository systems[G]LNCS 3520: Proc of the 16th Int Conf on Advanced Information Systems Engineering. Berlin: Springer, 2004: 90-104

[6]Paria M, Kamada A, Luciano L, et al. Metadata repository support for legacy knowledge discovery in public administrations[C]Proc of the 5th IFIP Int Working Conf on Knowledge Management in Electronic Government. Piscataway, NJ: IEEE, 2010: 157-165

[7]Takeshi A, Mitsuo E, Masanori A, et al. Metabolonote: A wiki-based database for managing hierarchical metadata of metabolome analyses[J]. Frontiers in Bioinformatics and Computational Biology, 2015, 15(38): 1-12

[8]Wang F, Vergara-Niedermayr C, Liu P. Metadata based management and sharing of distributed biomedical data[J]. International Journal of Metadata, Semantics and Ontologies, 2014, 9(1): 42-57

[9]Duboisset M, Pinet F, Kang M A, et al. Integrating the calculus-based method into OCL: Study of expressiveness and code generation[C]Proc of the 18th Int Workshop on Database and Expert Systems Applications. Piscataway, NJ: IEEE, 2007: 502-506

[10]Yuan Chun, Chen Yiyun. Weakest and incremental preconditions for constraint checking[J]. Journal of Computer Research and Development, 2003, 40(7): 1088-1094 (in Chinese)(袁春, 陈意云. 约束检查的最弱及增量前条件方法. 计算机研究与发展, 2003, 40(7): 1088-1094)

[11]Pinet F, Duboisset M, Demuth B, et al. Constraints modeling in agricultural databases[G]Advances in Modeling Agricultural Systems. Berlin: Springer, 2009: 55-65

[12]Donald C, Narayanaswamy K. Using first-order logic to query heterogeneous internet data sources[G]Procedia Computer Science 62: Proc of the 2015 Int Conf on Soft Computing and Software Engineering. New York: Academic Press, 2015: 170-177

[13]Demuth B, Hussmann H, Loecher S. OCL as a specification language for business rules in database applications[G]LNCS 2185: Proc of the 4th Conf on UML. Berlin: Springer, 2006: 104-117

[14]Chen Lianggang, Xu Guihong, Wang Yujun, et al. ISQL: An interval constraint database query language[J]. Journal of Computer Research and Development, 2000, 37(6): 677-683 (in Chinese)(陈良刚, 徐贵红, 王宇君, 等. 区间约束数据库查询语言: ISQL. 计算机研究与发展, 2000, 37(6): 677-683)

[15]Behrend A, Manthey R. A transformation-based approach to view updating in stratifiable deductive databases[G]LNCS 4932: Proc of the 5th Int Conf on Foundations of Information and Knowledge Systems. Berlin: Springer, 2008: 253-271

[16]Siva S, Chu J, Parekh O, et al. Constraint processing in relational database systems: From theory to implementation[C]Proc of the 25th ACM Symp on Applied Computing. New York: ACM, 2010: 2066-2070

Zhao Xiaofei, born in 1978. PhD. His main research interests include semantic Web, data integration, description logics and artificial intelligence.

Gao Yang, born in 1972. PhD, professor and PhD supervisor. His main research interests include artificial intelligence and machine learning (gaoy@nju.edu.cn).

Shi Yinghuan, born in 1987. PhD. His main research interests include artificial intelligence and machine learning (syh@nju.edu.cn).

Shi Zhongzhi, born in 1941. Professor and PhD supervisor. Senior member of China Computer Federation. His main research interests include artificial intelligence, machine learning and data mining (shizz@ics.ict.ac.cn).

Reasoning on Constraints for Incoherent Operations in Metadata Repository Systems

Zhao Xiaofei1,2,3, Gao Yang2, Shi Yinghuan2, and Shi Zhongzhi3

1(SchoolofComputerScienceandSoftwareEngineering,TianjinPolytechnicUniversity,Tianjin300387)2(StateKeyLaboratoryforNovelSoftwareTechnology(NanjingUniversity),Nanjing210023)3(KeyLaboratoryofIntelligentInformationProcessing,ChineseAcademyofSciences(InstituteofComputingTechnology,ChineseAcademyofSciences),Beijing100190)

AbstractThe architecture of the repository system metadata is hierarchical, multi-layer, dynamically changed and complicated; the prevailing repository system specifications provide insufficiently support for validating well-formedness constraints, so how to check well-formedness constraints for MOF (meta object facility) metadata repository systems becomes a difficult problem. This paper presents an approach which can reasoning on the well-formedness constraints in the different layers, thus the operations that may violate the constraints can be determined automatically. Firstly, a group of inner activities which are more accurate and adaptable than establishment activities provided by MOF are proposed. We define the correspondence between inner activities and establishment activities. Then we research how to reasoning on the constraints directly so that the incoherent inner activities can be detected. At last, we research how to deduce potentially incoherent operations by determining the establishment activities that potentially violate the constraints and testing whether these activities are included in the operations. Our approach can improve the efficiency of well-formedness constraint checking because the precise set of constraints that will be violated by operations can be reduced in the actual checking process. In addition, our method also helps to the constraint design process since we can discard the constraint if we find it can never be violated by any operations.

Key wordsrepository system; well-formedness constraint; meta object facility (MOF); constraint checking; establishment activity; inner activity

收稿日期:2014-12-31;修回日期:2015-08-20

基金项目:国家自然科学基金项目(61035003,61072085,51378350);国家“九七三”重点基础研究发展计划基金项目(2013CB329502);计算机软件新技术国家重点实验室(南京大学)开放课题项目(KFKT2014B16);天津市科技特派员项目(15JCTPJC58100)

中图法分类号TP311.13

This work was supported by the National Natural Science Foundation of China (61035003,61072085,51378350), the National Basic Research Program of China (973 Program) (2013CB329502), the Foundation of State Key Laboratory for Novel Software Technology (Nanjing University) (KFKT2014B16), and the Science and Technology Commissioner Project of Tianjin (15JCTPJC58100).