面向异构参数化特征模型检索的本体映射方法
2013-08-27秦飞巍李路野高曙明
秦飞巍,李路野,高曙明
(浙江大学CAD&CG国家重点实验室,浙江 杭州 310058)
0 引言
参数化特征模型是主流的计算机辅助设计(Computer Aided Design,CAD)模型,实现参数化特征模型的检索与重用十分重要。不同CAD系统生成的参数化特征模型是异构的,其本质是一种语义模型[1]。为了有效地支持基于语义的参数化特征模型的检索,需要对异构的参数化特征模型进行统一的语义描述。
本体是实现异构模型统一语义表示的有效途径,也是实现基于语义的异构参数化特征模型检索的有效手段,其核心问题是如何有效实现CAD系统特征本体到公共特征本体的映射。围绕本体映射,国内外学者已经开展了一系列研究工作。浙江大学陈磊等[2]针对三维模型的知识表示、重用和共享等问题,提出一个基于本体的产品数据语义互操作框架。该框架首先构建应用本体和产品数据语义描述语言本体,然后在两者之间建立映射关系。最后,以产品数据语义描述语言本体为中介,实现异构CAD系统间的产品数据语义互操作。高鹏等[3]针对大规模定制生产中用户需求表达问题,提出一种基于本体映射的用户需求知识向产品配置知识自动转换的方法。首先建立用户需求本体和产品配置本体,然后通过两个本体之间的映射,完成用户需求知识向产品配置知识的转换。北京航空航天大学余旭等[4]针对产品数据管理系统中知识重用难的问题,利用“领域本体—索引知识—数据资源”三层映射结构表达设计知识,提出基于领域本体的设计知识检索技术。华盛顿州立大学Zhan等[5]提出一种本体映射方法,用于CAD系统和虚拟装配系统之间的产品数据信息集成。在这个工作中,定义了Pro/Engineer系统本体(Pro/Engineer Application Ontology,PRO-AO)和虚拟装配系统本体(Virtual Assembly Design Environment Application Ontology,VADE-AO)两个本体。首先,利用系统应用程序接口(Application Programming Interface,API),提取源CAD系统中的产品数据信息并转换成Web本体语言(Web Ontology Language,OWL)实例的形式;然后,利用自动化的算法和规则,在源CAD系统本体和目标装配系统本体之间进行本体映射;最后,对源本体和目标本体匹配上的概念进行实例转换,获得目标系统的有关产品数据。马萨诸塞大学的Altidor等[6]提出一种特征本体映射方法,用于实现CAD系统之间的特征信息交换和互操作。他们采用一种混杂的特征图模型来表达隐式的特征属性(如参数、草图和布尔操作)和显式的特征属性(如点、线、面和体);利用系统API提取出源系统和目标系统中的特征数据信息,转换成资源描述框架(Resource Description Framework,RDF)/可扩展标记语言(eXtensible Markup Language,XML)格式;在源系统特征本体和目标系统特征本体之间进行动态映射并计算相似度,选取目标系统中相似度较大的概念作为匹配成功的特征概念。
本文针对参数化特征模型检索与重用的需要,提出一种新的自动化特征本体映射方法,该方法能够处理复杂的特征本体映射,生成由不同CAD系统创建的异构产品特征模型的基于本体的统一语义描述,从而有效地支持异构参数化特征模型的检索和重用。
1 特征本体建模
在CAD领域存在多个商品化CAD软件系统,不同厂商使用不同数据格式、不同的术语和定义来表达特征信息。目前,CAD系统之间仅能交换和共享基于边界表示的低层产品数据信息,对带有高层语义信息的参数化特征模型还没有一个统一的描述。本体是对某一概念化所做的一种显式的解释说明。采用一套领域相关的专门术语来定义一个本体,以人和机器可以理解的术语来描述某具体领域的概念、概念之间的关系、属性、约束和对象等,并通过形式化的公理来限制和规范这些术语的解释和使用,可以有效地解决领域知识的共享问题。因此,本文采用特征本体来实现异构特征模型的统一语义描述。特征本体建模可采用两种方式:①针对每一CAD系统建立特征本体,然后在各个系统特征本体之间进行本体映射;②对各个CAD系统建立特征本体,同时针对CAD领域建立一个公共特征本体,本体映射在CAD系统特征本体和公共特征本体之间进行。本文采用第2种建模方式,这样建立好的特征本体模型具有更好的通用性和可扩展性,关键在于如何构建一个合适的公共特征本体。下面分别介绍公共特征本体和CAD系统特征本体的构建过程。
1.1 公共特征本体
一个好的领域本体应该具有准确性、清晰性、一致性、完整性、紧凑性、可扩展性、计算有效性和良好的应用性[7]。本着这些原则,公共特征本体(Common Feature Ontology,CFO)(如图1)的构建基于行业标准产品模型数据交换标准(STandard for the Exchange of Product model data,STEP)进行,并根据特征模型检索的实际需求进行了相应的调整。CFO本体构建过程如下:
(1)确定CFO的应用领域和使用范围 本文建立CFO是为了给异构参数化特征模型提供一个统一的语义描述,以支持异构参数化特征模型的检索和重用。因此,CFO应覆盖整个CAD领域,对所有的设计特征都能提供一致的语义描述。
(2)枚举出本体中需要采用的重要术语和词汇
枚举出本体中要采用的关键术语、这些术语可能具有的属性,以及用于描述这些属性所采用的词汇。术语要准确、清晰、无歧义,在行业内具有一定的权威性。因此,CFO中关于特征概念的术语来源于STEP标准的111——基于过程的实体形状建模元素(elements for the procedural modeling of solid shapes),它是CAD系统特征建模操作的标准[8]。要能准确地描述特征,还得对特征涉及的其他概念进行描述。与特征概念相关的其他概念至少有对应的几何实体的边界表示信息,其术语选自STEP标准的42——几何和拓扑表达(geometric and topological representation);草图、参数和约束的术语选自STEP标准的108——几何模型的参数化和约束(parameterization and constraints for explicit geometric product models)。公共特征本体的术语全部选自行业标准STEP和WordNet,使得概念表达具有准确性和清晰性,同时本体中只包含特征概念术语以及特征概念必须涉及的相关概念的术语,使得本体尽可能紧凑。
(3)确定本体建模语言和建模工具 本体建模语言采用OWL的DL(description logics)子语言。DL是一阶逻辑的可判定子集,使得DL子语言既具有较好的表达能力,又可以进行推理,具有计算有效性[9]。选用Protégé作为本体开发环境,它支持许多推理工具,如Fact++,Pellet等,可以在建模过程中随时使用推理机对本体进行一致性检查、自动分类和隐含类型推断,以保证本体的一致性。
(4)定义本体中的类和类之间的层次关系CFO中核心的类有特征(Feature)、零件(Part)、装配体(Assembly)、几何实体(Geometry)和草图(Sketch)等,自顶向下地定义类之间的层次关系。特征可分为体特征(BodyFeature)、辅助特征(Auxiliary)和组合特征(Combined)。体特征可分为正特征(Protrusion)和负特征(Depression),负特征有孔(Hole)、腔体(Pocket)、键槽(Slot)和沟槽(Groove)等,正特征有基本体素特征、拉伸和回转特征等。每个高层特征还有一些子类型,如孔特征可进一步分为盲孔(Blind Hole)和通孔(Through Hole)特征等。几何实体可分为点(Point)、线(Curve)、面(Surface)、体(Volume)和向量(Vector),曲线包含直线 (Line)、圆 锥 曲 线 (Conic)和 样 条 曲 线(Spline)等。
(5)定义本体中类的属性(Slots) 在定义好了本体的类之后,需要对类的内部结构——属性(Slots)进行描述。以核心概念Feature为例,特征具有的主要属性有:①hasParent,特征依赖图中该特征的父特征,其值域也为特征。②hasChildren,特征依赖图中该特征的子特征,其值域也为特征。③hasRefGeometry,创建特征时所基于的几何体,其值域为Geometry。hasRefGeometry细分为子属性 hasRefPoint,hasRefCurve,hasRefSurface和hasRefVolume。④hasParameter,记录特征相关的参数,其值域为参数。hasParameter是特征所有参数属性的父属性,它可细分为子属性hasRadius,hasDistance,hasDepth和hasDirection等,各个子属性分别有自己的数据类型和取值范围。⑤isFeatureOf,特征所属的零件,其值域为Part。⑥alias,特征的别名,其值域为字符串。层次关系图中更低层的类继承高层类的属性,同时拥有自己专门的属性。如孔除了继承来自上层类Feature的所有属性之外,还有自己的属性孔深度hasDepth,它是hasParameter的子属性,其值域为Float,取值大于0。
(6)定义属性的性质(Facets) OWL DL语言中类的属性具有多种性质(Facets),如取值类型、取值范围、属性数目(Cardinality)、传递性(Transitive)、对称性(Symmetric)、功能性(Functional)和互逆属性(Inverse)。指定了属性的性质,本体才具有完整性,方便后续对本体库的执行推理。如has-Parent和hasChildren都具有传递性,且互为逆属性;hasFeature和isFeatureOf互为逆属性,isFeatureOf是Functional的,hasFeature是Inverse-Functional的。
建立好的公共特征本体的局部层次关系如图1所示。
1.2 CAD系统特征本体
根据具体的商用CAD系统所使用的专业术语和定义,建立相应的应用特征本体(Application Feature Ontology,AFO)。以SolidWorks为例,建立的SW本体局部层次关系如图2所示。Solid-Works中的特征可分为基本特征、工程特征和编辑特征三大类。其中:①基本特征包括基础特征和基准特征。基础特征均在草图的基础上生成,有拉伸、回转、扫掠、混成和加厚五种;基准特征指基准面、基准轴、基准曲线、基准点、基准坐标和配合参考等。②工程特征在已有特征的基础上生成,也称为二次特征,包括圆角、倒角、孔、抽壳、筋和圆顶等。③编辑特征也是在已有特征的基础上生成的,主要有切除、复制、阵列和镜像四种。需要说明的是,对于AFO的每个特征概念,都同时保存了特征对应几何实体的基于边界表示的相关信息。
2 特征本体映射
本体映射可以消除语义异构,建立参数化特征模型的统一语义描述。为了实现从AFO本体到CFO本体的有效准确映射,需要解决三个方面的问题:①语义异构问题;②复杂映射问题(现有工作尚未涉及);③映射结果检查。
在不同的CAD系统中,同一个特征概念可能使用不同的专业术语和词汇来表达,同时同一术语也可能在不同的环境下表达不同的特征概念和含义。例如,对于零件之间的配合关系,Pro/Engineer系统使用Mate来表示,CATIA系统使用Contact来表示;对于拉伸特征,SolidWorks系统使用Extruded Boss/Base来表示,而SolidEdge系统使用Protrusion来表示。对于这样的语义异构问题,可以采用文献[5-6]提出的本体映射方法解决。但是,通过对CAD应用系统进行分析,发现还存在如下情形,即源系统中的概念和目标系统中的概念在语义上不仅只是一对一的匹配关系,还可能存在其他多种形式的匹配关系。源系统中的某概念可能在语义上包含目标系统中的多个概念,或者源系统中的某个概念被目标系统中的概念所包含,甚至在目标系统中找不到与源系统中的概念相对应的概念。例如对于阵列/复制特征操作,UG NX系统中使用Instance Feature来表示,而SolidWorks系统中分别使用 Linear Pattern和 Circular Pattern表示;SolidWorks系统中Chamfer既表示边倒角也表示点倒角,而在UG NX系统中Chamfer只表示边倒角,SolidWorks中的术语Chamfer语义上包含了UG NX系统中的术语“Chamfer”。现有的特征本体映射工作有一定的局限性,无法解决这种特征本体概念之间的复杂映射情况(一对多、多对一和奇异特征)。
本文提出的本体映射方法可以解决特征本体之间的复杂映射情形,基本思路如下:①分析CFO和AFO中特征概念的结构,考虑其自身的内外部结构特点,采用新的属性相似度和概念相似度计算方法,从多个角度衡量概念之间的相似程度;②基于从不同角度衡量相似度的相似性评价指标,对特征概念在复杂映射情况下的映射类型作出判别;③采用自动化的特征本体映射算法,先做名称匹配,再做结构匹配;④利用本体的推理能力和语义网规则语言(Semantic Web Rule Language,SWRL),对概念匹配的结果进行一致性检查和验证,以保证本体映射的有效性和准确性。
2.1 相似性评价
相似性评价用于计算来自不同本体的概念之间的相似度。针对特征本体进行相似性评价的难点在于,不同商业CAD系统描述特征概念时不但可能使用不同的术语,而且在语义上也存在多种对应关系(一对一、一对多、多对一和无法对应)。因此,要从多个角度来定义相似性评价指标,才能对这种复杂映射情形下的特征概念进行相似度的计算和衡量。
概念(类)在本体中具有外部结构和内部结构[10]。概念实体的外部结构是概念和本体中其他概念的关系,特征本体概念之间存在的关系主要有层次关系(subClassOf)、组成关系(partOf)和同类关系(siblingOf)。可以把特征本体看成一个带属性边的有向图,概念实体是图中的节点,概念与概念之间的关系是图中的有向属性边。这样就将本体映射问题转换成一个图同构问题,将查找匹配概念变成查找公共有向子图。但对特征本体分析后发现,特征本体的层次关系并不复杂,且AFO和CFO的图结构非常类似,因此难以利用特征概念的外部结构进行相似性评价。
概念的内部结构是概念自身所拥有属性的总和。进行相似性评价时主要利用特征概念在本体中的内部结构,因为不同的特征概念具有完全不同的内部结构,所以可以用作相似性度量。例如Shell特征,它有属性hasRefSurface,是hasRefGeometry的子属性,值域为Surface,Cardinality=1;属性thickness是hasParameter的子属性,Functional=true,cardinality=1,值域为float,取值大于0。Extruded Boss/Base特征,它有属性hasSketch,值域为Sketch,是isSketchOf的逆属性,值域为Sketch,Cardinality=1;属性termination1和termination2式中Wi是权重,依据性质的重要性分配其大小,一般应给予标签和值域以较大的权重。在本文的实验中,设置标签的权值为0.7,值域的权值为0.3。同时,两个等价属性的基数、功能性、对称性、传递性和是否有逆属性等性质,必须完全保持一致。
然后,考虑如何评价两个特征概念之间的相似性。两个特征概念之间共有的属性数目#sim_attributes越多,表明两个概念越相似;在复杂映射情形下,相似性评价指标不仅要能衡量系统特征本体概念s和公共特征本体概念t在一一对应情况下的语义接近程度,还要对s在语义上包含t,或者s在语义上被t包含的情况下的语义相似度进行计算和区分。基于上述考虑,从两个角度出发,定义相似性评价指标如下:是hasParameter的子属性,Functional=true,cardinality=1,值域为int;属性depth1和depth2是hasParameter的子属性,Functional=true,cardinality=1,值域为float。可以利用内部结构的不同来区分Shell特征和Extruded Boss/Base特征。
首先,利用属性自身的性质(Facets)计算出等价的属性,一个属性拥有多种性质,即定义域、值域、标签、描述、基数、功能性、对称性、传递性和是否有逆属性等。因此,两个属性A和B的相似度计算如下:
式中:#sim_attributes指源系统特征本体中概念s和目标公共特征本体中概念t共有的属性数目,#AFO_attributes指源系统特征本体中概念s包含的属性数目,#CFO_attributes指目标公共特征本体中概念t包含的属性数目。
利用阈值将概念相似程度值域划分为匹配区间和差异区间两个区间。定义ThrAFO为AFO中的判别阈值,当SimAFO(s,t)>ThrAFO时,SimAFO(s,t)≈1,两个概念在SimAFO度量下落在匹配区间;否则SimAFO(s,t)≪1,两个概念在SimAFO度量下落在差异区间。ThrCFO为CFO中的判别阈值,当SimCFO(s,t)>ThrCFO时,SimCFO(s,t)≈1,两个概念在SimCFO度量下落在匹配区间;否则SimCFO(s,t)≪1,两个概念在SimCFO度量下落在差异区间。可根据具体的本体映射将阈值设置为不同的值,在本文实验中,当SW 本体和CFO映射时,取ThrAFO=ThrCFO=0.91,NX本体和CFO映射时取ThrAFO=ThrCFO=0.89,实验结果表明选取这样的阈值比较合适。
2.2 映射类型判别
基于相似性评价指标进行相似度计算,得出特征概念在不同角度的相似度值,并获得相似度值所处的区间。在此基础上,可以判别出源AFO中的M个特征概念si(i=1,…,M)和目标CFO中的N个特征概念tj(j=1,…,N)之间的如下对应关系:
(1)一对一特征映射 源本体和目标本体中的特征概念使用相同或者不同的术语来表达,但它们描述的都是同一个特征语义,因此具有几乎相同的内部结构。对于源本体中的si,能够在目标本体中找到tk,使得SimAFO(si,tk)≈1且SimCFO(si,tk)≈1。
(2)多对一特征映射 源本体中的特征概念所表达的特征语义是目标本体中的特征概念所表达的特征语义的一部分,即源本体中的特征概念被目标本体中的特征概念所包含。这时,目标本体中的概念内部结构可分为两部分:①与源本体中的特征概念共有的属性集合;②其他属性集合。对于源本体中的si,能够在目标本体中找到tk,使得SimAFO(si,tk)≈1且SimCFO(si,tk)≪1。在这种情况下,一般还能在接下来的映射过程中,找到另外的源本体概念sx(x = 1,…,l), 使 得 SimAFO(sx,tk) ≈ 1 且SimCFO(sx,tk)≪1,它们共同构成对tk的多对一映射。
(3)一对多特征映射 源本体中的特征概念所表达的特征语义包含目标本体中的特征概念所表达的特征语义。这时源本体中的概念内部结构可分为两部分:①与目标本体中特征概念共有的属性集合;②其他属性集合。对于源本体中的si,能够在目标本体中找到tx(x=1,…,l),使得SimAFO(si,tx)≪1,且SimCFO(si,tx)≈1(x=1,…,l)。此时si和目标本体中的l个概念之间是一对多的映射。
(4)无法映射的特征 之所以会出现这样的情况,是因为CAD应用系统中存在奇异特征,即这样的特征操作是某个CAD系统独有的,在其他系统中没有类似的特征操作。这时对于源本体中的si,目标系统的所有概念tk(k=1,…,n),SimAFO(si,tk)≪1且SimCFO(si,tk)≪1。对于奇异特征,可以根据其对特征模型检索的影响程度,添加新的概念到CFO中,或者简单地将其抛弃。
2.3 映射算法
用于AFO和CFO之间特征概念匹配的本体映射算法,既考虑特征概念的名称,又考虑特征概念的结构。名称匹配简单地比较两个概念的标志符、标签和别名。首先进行基于名称的匹配是考虑这样一个前提,即在大多数情况下,用户通常会使用相同或者相近的词汇来表示语义相同的概念,因此先进行名称匹配可以提高整个映射算法的效率。然而,自然语言中存在同义词现象和一词多义现象,因此名称匹配只能用于预判断,关键是进行后续的结构匹配。结构匹配考虑两个概念的内部结构,通过前面提出的两个相似度评价指标,进行多种类型的匹配判断。
本体映射算法的流程图如图3所示,具体步骤如下:
步骤1 排序。将AFO中所有M个特征概念按字母序排序,形成源本体特征列表;将CFO中的所有N个特征概念按字母序排序,形成目标本体特征列表。排序可使得查找时间复杂度从O(N)降低到O(log N)。
步骤2 名称匹配。选取AFO中的某特征概念si,与CFO中的特征概念tj(j=1,…,n)按基于名称的匹配技术进行概念匹配,匹配成功则转步骤3,否则转步骤4。先做名称匹配的目的是提高映射算法的整体效率。
步骤3 一对一映射识别。将si和名词匹配上的tk做结构匹配,若SimAFO(i,k)≈1且SimCFO(i,k)≈1,则匹配成功,特征si和tk之间是一对一的特征映射,本次匹配结束,转步骤2,进行下一个概念的匹配。
步骤4 全局结构匹配,多路选择判断。将AFO中的特征概念si与CFO中的特征概念tj(j=1,…,k-1,k+1,…,n)按基于结构的匹配技术进行概念匹配,计算SimAFO和SimCFO两个相似度评价指标。对CFO中的特征概念tj(j=1,…,k-1,k+1,…,n)按计算结果降序排列,选出SimAFO和SimCFO较大的特征概念tx。若SimAFO(si,tx)≈1,SimCFO(si,tx)≪1,则si和tx之间存在多对一的特征映射,转步骤5;若存在tx(x=1,…,l)使得SimAFO(si,tx)≪1,SimCFO(si,tp)≈1,则si和tx(x=1,…,l)之间存在一对多的特征映射,转步骤6;若对所有的目标概念tx(x=1,…,k-1,k+1,…,n),SimAFO(si,tx)≪1,SimCFO(si,tx)≪1,则si是奇异概念,转步骤7。
步骤5 多对一映射识别。标记si和tx之间存在多对一的特征映射,建立tx的多对一映射列表,在接下来的匹配过程中,若发现sq与tx之间存在多对一映射,则将sq加入到tx的多对一映射列表。本次匹配结束,转步骤2,进行下一个概念匹配。
步骤6 一对多映射识别。标记si和tx(x=1,…,l)之间存在一对多的特征映射,建立si的一对多映射列表。本次匹配结束,转步骤2,进行下一个概念匹配。
步骤7 奇异特征处理。识别出si是奇异概念,根据si的重要程度简单地抛弃si,或者按照AFO中si的特征定义添加新概念到CFO中,然后转步骤2,重复映射流程。
步骤8 准确性检查。利用OWL的推理能力,结合SWRL规则,对映射结果进行准确性检查,具体方法见2.4节。
2.4 匹配结果准确性检查及修正
执行映射算法到最后,有必要对匹配结果进行准确性检查和验证,因为商用CAD系统并不始终保证特征的语义有效性。例如孔特征是一类非常重要的特征,然而在产品模型的详细设计过程中,随着设计师添加和修改操作的进行,原有的通孔可能会变成盲孔,原有的盲孔也可能会成为通孔,但其原始的特征类型并不改变。如此的AFO特征本体实例的错误难以在概念匹配过程中被发现,会传播到CFO特征本体实例,因此有必要对由映射得到的CFO特征本体实例进行有效性检查及修正。
鉴于特征的语义完全由其特征的边界组成决定,即特征存在特定的边界组成条件。例如在SolidWorks和UG NX应用软件系统中执行一个通孔操作,会新生成一个圆柱面,该圆柱面包含2个Edge(圆弧),每个圆弧边与圆柱面和一个平面邻接,这两个平面的法向是相反的;执行一个盲孔操作,会新生成一个圆柱面和一个平面,圆柱面有两个Edge(圆弧),每个圆弧边与圆环面和一个平面邻接,这两个平面的法向是相同的。在CATIA应用软件系统中,执行一个通孔操作,新生成的圆柱面是通过两个半圆柱面来表达的,但仍然能找到半圆柱面的两个圆弧边,每个圆弧边都与半圆柱面和一个平面邻接。通孔时这两个平面的法向相反,盲孔时这两个平面的法向相同,CAD系统中的其他特征操作也存在类似的语义条件。因此,本文将这样的条件以SWRL规则的形式表达出来,使得本体推理机可以理解,进而对特征实例进行分类、识别、一致性检查和验证。
规则1 通孔识别和有效性验证。
Hole(?h)∧hasCylndricalSurface(?h,?s)∧hasArc(?s,?c1)∧hasArc(?s,?c2)∧has-AdjacentPlane(?c1,?p1)∧hasAdjacentPlane(?c2,?p2)∧hasNormal(?p1,?n1)∧hasNormal(?p2,?n2)∧swrlb:nonEqual(?n1,?n2)→ThroughHole(?h)。
规则2 盲孔识别和有效性验证。
Hole(?h)∧hasCylndricalSurface(?h,?s)∧hasArc(?s,?c1)∧hasArc(?s,?c2)∧has-AdjacentPlane(?c1,?p1)∧hasAdjacentPlane(?c2,?p2)∧hasNormal(?p1,?n1)∧hasNormal(?p2,?n2)∧swrlb:equal(?n1,?n2)→Blind-Hole(?h)。
使用SWRL规则进行准确性检查完毕后,删除掉CFO本体库实例层中不一致的项目,修正错误的特征数据语义表达。
3 异构参数化特征模型检索
使用前述方法,通过本体实例化,对来自不同CAD软件系统的每个参数化零件模型都生成了基于公共特征本体的统一的语义描述。实例化后的公共特征本体的OWL文件与零件模型一一对应,是零件模型的语义描述符。在组成关系上,每个零件实例由若干个特征实例聚合而成。特征实例有特征类型、父特征、子特征、特征尺寸和面的数目等多个属性;根据不同的特征类型,一些与类型相关的具体参数如回转角度、拉伸长度和角度、草图等也包含在各自的特征实例中;此外,如前所述,每个特征实例都同时保存了该特征对应几何实体的基于边界表示的相关信息。
利用基于本体的语义描述符,对零件模型进行相似性评价的过程如下:
(1)由OWL文件中的特征实例的特征类型、父特征和子特征,得到零件模型的特征依赖图(Feature Dependency Graph,FDG),它是一个节点带标签的有向无环图[11]。给定CFO中特征概念名的集合FV,定义FDG=〈V,RV,E〉。其中:V 是图中节点的有限集,表示组成零件的各个特征实例;RV⊆V×FV表示特征实例与关联的特征概念名的关系,例如(vi,Hole)表示节点vi对应的特征实例是一个孔特征;E⊆V×V表示特征之间的依赖关系,例如(vi,vj)表示特征实例vi具有子特征实例vj。某零件模型及其对应的FDG图如图4所示。
(2)根据FDG图,进行带标签有向无环图的精确匹配,即匹配时要求图的节点之间的连接关系相同,同时节点的类型也一样。不同的CAD软件系统可能使用不同的术语来描述具有相同语义的特征概念,例如拉伸操作,SolidWorks软件系统使用Boss/Base Extrude来描述,Pro/E软件系统使用Protrusion来描述,因此其FDG图无法有效匹配。但通过公共特征本体进行统一描述之后,拉伸操作都用Extrusion来表达,此时来自不同CAD系统的异构特征模型的FDG图可以有效地匹配上,因此提高了模型检索的查全率和查准率。
对于两个匹配上的FDG图,计算匹配节点之间的几何相似度[12]
式中:q是查询实例中的节点;t是库中模型实例的特征节点;size(q)是特征q对应几何体的尺寸;#face(q)是特征q对应几何体包含的面的数目;α和β是权值参数,且满足α+β=1,可根据不同的应用需求设置α和β的大小。
(3)根据匹配节点的相似度,得出两个零件模型之间的相似度。
4 实例验证
根据本文提出的本体映射方法,编程实现了映射算法。本体映射算法基于Jena和OWL API进行开发,用于CAD系统特征本体AFO和公共特征本体CFO之间的映射。基于本体的特征模型库是存储异构参数化特征模型本体化描述的知识库,由对象库、类库和规则库等组成。系统特征本体(SolidWorks本体和UG NX本体)和公共特征本体使用本体编辑器Protégé创建,规则库由本体编辑器的插件SWRL Tab面板添加。SolidWorks A-gent和UG NX Agent分别是SolidWorks系统和UG NX系统的插件,利用Eclipse集成开发环境和CAD系统提供的应用程序接口(Application Programming Interface,API)开发,用于捕获商用CAD系统的3D模型特征信息,创建对应的CAD系统特征本体实例,加载进AFO本体库;然后,利用本体映射算法,建立AFO中特征概念和CFO中概念的对应关系,把AFO中的特征实例转换成对应的CFO实例,加载进CFO本体库,实现异构参数化特征数据语义层的统一描述;最后,利用SWRL规则,使用推理机对语义表示的结果做一致性检查和有效性验证,保证语义数据表达的准确性。由此获得了一个基于本体的统一表达的异构参数化特征模型库,可以在此基础上建立索引,开发检索机制,对异构参数化特征模型进行多模式的查询和检索,实现设计重用。
本体映射的部分结果如下:
例1 抽壳特征操作,两个系统的抽壳操作如图5所示。
本体映射算法计算结果如表1所示,SW中的Shell和CFO中的Shell,以及NX中的Shell和CFO中的Shell都是一对一的映射。
例2 圆角特征操作,两个系统的圆角操作如图6所示。
表1 抽壳特征映射结果
本体映射算法计算结果如表2所示,SW中的Fillet和CFO中的Fillet是一对一映射,NX中的Edge Blend,Face Blend和CFO中的Fillet是多对一映射。
表2 圆角特征映射结果
例3 倒角特征操作,两个系统的倒角操作如图7所示。
本体映射算法计算结果如表3所示,SW中的Chamfer和CFO中的Chamfer Edge,Chamfer Vertex是一对多的映射,NX中的Chamfer和CFO中的Chamfer Edge是一对一映射。
表3 倒角特征映射结果
为验证本文提出的基于本体的语义表示方法在异构参数化特征模型检索中应用的有效性,对异构CAD零件模型库进行了检索。异构CAD零件模型库中包含SolidWorks,UG NX,Pro/E等常用CAD应用软件系统创建的零件模型。原型系统采用第3章提出的模型检索方法,利用参数化设计特征这样的高层语义信息,同时结合特征单元对应的几何实体所包含的低层几何拓扑信息,对零件模型进行相似性度量,返回模型库与输入查询零件最相似的前5个零件模型给用户,查询结果按相似度降序排列。使用基于公共特征本体的统一语义表示与不使用公共特征本体的统一语义表示的查询结果对比如图8所示。
5 结束语
本文针对异构三维参数化特征模型检索和重用的需要定义了特征本体,提出一种新的特征本体映射方法将异构参数化特征模型进行统一描述。该方法的主要特点包括:①定义了满足异构参数化特征模型检索和重用需求的公共特征本体和系统特征本体,本体映射在两者之间进行;②提出的特征本体映射方法是全自动的,能够处理异构CAD系统特征概念之间的复杂映射情形;③利用语义规则对匹配结果进行准确性检查,保证本体映射的有效性。
在已建好的基于公共特征本体表示的模型库的基础上,开发多层次的索引机制,使得用户可以采用多种查询方式方便地进行异构参数化特征模型检索,是下一步的研究方向。
[1] GAO Shuming,HE Fazhi.A survey of heterogeneous CAD system integration[J].Journal of Computer-Aided Design &Computer Graphics,2009,21(5):561-568(in Chinese).[高曙明,何发智.异构CAD系统集成技术综述[J].计算机辅助设计与图形学学报,2009,21(5):561-568.]
[2] CHEN Lei,YE Xiuzi,PAN Xiang,et al.Ontology-based semantic interoperability of product data[J].Computer Integrated Manufacturing Systems,2008,14(4):821-828(in Chinese).[陈 磊,叶修梓,潘 翔,等.基于本体的产品语义数据互操作[J].计算机集成制造系统,2008,14(4):821-828.]
[3] GAO Peng,LIN Lanfen,CAI Ming,et al.Automatic acquisition of product configuration model based on ontology mapping[J].Computer Integrated Manufacturing Systems,2003,9(9):810-816(in Chinese).[高 鹏,林兰芬,蔡 铭,等.基于本体映射的产品配置模型自动获取[J].计算机集成制造系统,2003,9(9):810-816.]
[4] YU Xu,LIU Jihong,HE Miao.Design knowledge retrieval technology based on domain ontology for complex products[J].Computer Integrated Manufacturing Systems,2011,17(2):225-231(in Chinese).[余 旭,刘继红,何 苗.基于领域本体的复杂产品设计知识检索技术[J].计算机集成制造系统,2011,17(2):225-231.]
[5] ZHAN Pei,JAYARAM U,KIM O,et al.Knowledge representation and ontology mapping methods for product data in engineering applications[J].Journal of Computing and Information Science in Engineering,2010,10(2):012004.1-01204.11.
[6] ALTIDOR J,WILEDEN J,WANG 段 ,et al.Analyzing and implementing a feature mapping approach to CAD system interoperability[C]//Proceedings of the ASME International Design Engineering Technical Conferences & Computers and Information in Engineering Conference.New York,N.Y.,USA:ASME,2009.
[7] YU J,THOM 段 ,TAM A.Requirements-oriented methodology for evaluating ontologies[J].Information Systems,2009,34(8):766-791.
[8] ISO.10303-111 Industrial automation systems and integration-product data representation and exchange-integrated application resource:elements for the procedural modeling of solid shapes[S].Genevese,Switzerland:ISO,2007.
[9] BAADER F,MCGUINNESS 段 ,NARDI D,et al.The description logic handbook:theory,implementation,and applications[M].Cambridge,Mass.,USA:Cambridge University Press,2003:47-100.
[10] EUZENAT J,SHVAIKO P.Ontology matching[M].Heidelberg,Germany:Springer-Verlag,2007:61-72.
[11] DIESTEL R.Graph theory[M].Heidelberg,Germany:Springer-Verlag,2005:173-240.
[12] BAI J,GAO S,TANG W,et al.Design reuse oriented partial retrieval of CAD models[J].Computer-Aided Design,2010,42(12):1069-1084.