王巖巖 張春燕 張勝文 陳世輝
(江蘇科技大學機械工程學院,江蘇 鎮(zhèn)江 212003)
信息完備性檢查是一項輔助性的技術(shù),是自動標注技術(shù)發(fā)展過程中的一個過渡技術(shù)。主要檢查產(chǎn)品制造信息(product manufacturing information,PMI)的正確性、完整性及清晰性。正確性是指信息是否符合工藝標準;完整性是指信息是否完整,包括冗余和缺失兩方面;清晰性是指信息空間布局是否符合要求。PMI作為產(chǎn)品基于模型定義(model based definition,MBD)三維模型的重要組成部分,由傳統(tǒng)的二維標注不斷向三維標注發(fā)展。但MBD模型中的PMI往往較為復(fù)雜且分散,容易造成可讀性差,用戶交互性差等問題。為了充分發(fā)揮MBD模型的優(yōu)勢,減少信息傳遞過程中的差錯,需要對MBD模型中的PMI進行完備性檢查。
目前的三維自動標注技術(shù)尚不成熟,PMI標注過程主要仍需依賴于人工操作,因此容易導(dǎo)致模型中的PMI標注出現(xiàn)冗余、缺失和不合理等問題。在這樣的背景下,研究PMI的完備性檢查技術(shù)對于計算機輔助設(shè)計(computer aided design,CAD)與計算機輔助工藝規(guī)劃(computer aided process planning,CAPP)的發(fā)展都具有重要的現(xiàn)實意義。
為提高工作效率和PMI標注準確率,國內(nèi)外學者進行了大量研究,并獲得階段性的成果。譚禎[1]建立空間標注模型,將二維坐標轉(zhuǎn)化為三維空間坐標,實現(xiàn)了多視圖的尺寸完備性檢查,但是該方法只適用于二維工程圖。程亞龍[2]等借助于幾何約束圖,針對順序標注的三維尺寸標注實現(xiàn)了完備性檢查。Luisa Martínez M[3]提出根據(jù)幾何約束來求解幾何元素的過約束問題,但并沒有有效解決尺寸缺失問題。張菲菲[4]針對航天薄壁件制造特點,構(gòu)建了基于MBD的信息模型,并以三維模型為主體,進行知識圖譜的融合,最終實現(xiàn)信息集成。
在前人研究的基礎(chǔ)上,本文結(jié)合知識圖譜技術(shù),采用自頂向下的方法構(gòu)造了PMI領(lǐng)域知識圖譜,通過標注的冗余關(guān)系、標注的取代關(guān)系和標注的矛盾性3個方面構(gòu)建SWRL規(guī)則,在此基礎(chǔ)上,實現(xiàn)對PMI的完備性檢查。
知識圖譜(knowledge graph,KG)是具有有向圖結(jié)構(gòu)的一個知識庫,近年來在人工智能領(lǐng)域應(yīng)用廣泛,它以圖的形式表現(xiàn)事物間的關(guān)系。從本質(zhì)上看,知識圖譜是一種關(guān)系網(wǎng)絡(luò)[5],以一種通用的語義知識形式化的方法對事物進行描述,其基本單位為三元組。主要采用(實體,屬性,關(guān)系)和(實體,屬性,屬性值)兩種三元組形式[6]。知識圖譜的邏輯層次,可表達為
式中:KG表示知識圖譜;TBox表示模式層,即本體;ABox為數(shù)據(jù)層即具體的信息。
領(lǐng)域知識圖譜是知識圖譜在特定領(lǐng)域中的應(yīng)用。本文采用自頂向下的方法構(gòu)建PMI領(lǐng)域知識圖譜,即先構(gòu)建本體并定義好數(shù)據(jù)形式,再提取實體進行填充。在知識圖譜構(gòu)造的工具方面,Protégé是一種常用的可視化本體構(gòu)造軟件[7],相比于其他同類軟件,Protégé的優(yōu)勢在于可以進行模塊化的設(shè)計,并能夠?qū)崿F(xiàn)部分功能對中文的支持,可以實現(xiàn)本體的構(gòu)造、推理及可視化顯示。Neo4j是目前最流行的知識圖譜構(gòu)造軟件,它是一款基于Java語言開發(fā)的事務(wù)型數(shù)據(jù)庫,可以實現(xiàn)圖形數(shù)據(jù)的處理和存儲[8]。
PMI表示產(chǎn)品MBD模型的非幾何信息,包含產(chǎn)品的尺寸標注、形位公差、工藝基準、表面粗糙度、零件屬性和技術(shù)要求等產(chǎn)品制造信息[9]。它是傳統(tǒng)二維圖紙中的尺寸、公差和技術(shù)要求等標注信息在MBD模型中的可視化集成化的表達[10],可以將PMI直觀地顯示在三維模型的表面或剖面中,以此提高使用效率,保證產(chǎn)品質(zhì)量。圖1展示了機架MBD模型中某一模型視圖的PMI實例。
圖1 機架MBD模型中某一視圖的PMI實例
PMI標注對象間存在著復(fù)雜的聯(lián)系。要完成模式層的構(gòu)建,不僅需要對相關(guān)術(shù)語進行梳理,還需要整理機械工藝手冊、工藝卡片和相關(guān)標準文件(如GB/T 1958-2017)等資料對PMI相關(guān)的知識術(shù)語進行抽取。在對各術(shù)語進行梳理之后,提煉出的PMI相關(guān)知識術(shù)語間的邏輯關(guān)系如圖2所示。
圖2 PMI知識術(shù)語關(guān)系圖
PMI領(lǐng)域本體是一個復(fù)雜的模型,不僅具有較多的概念,而且概念間的彼此關(guān)系也錯綜復(fù)雜。本文從局部開始采用七步法來構(gòu)建PMI本體,最后將各局部本體按照相互關(guān)系合并為PMI的領(lǐng)域本體。本體構(gòu)建流程如圖3所示。
圖3 本體構(gòu)建流程
這里以形位公差的局部本體為例來說明本體的構(gòu)造過程。其步驟如下:
步驟1 確定本體所在的領(lǐng)域為PMI標注的形位公差部分;
步驟2 確定相關(guān)領(lǐng)域的概念術(shù)語。根據(jù)形位公差的相關(guān)概念在Protégé中建立形位公差類;
步驟3 定義概念層次結(jié)構(gòu),對應(yīng)于Protégé中的Class。頂層概念為“形位公差”,中間層概念為“形狀公差”和“位置公差”,底層概念為“直線度”、“線輪廓度”、“同軸度”等;
步驟4 定義概念屬性,概念屬性包括對象屬性和數(shù)據(jù)屬性兩部分。在Protégé中,對象屬性對應(yīng)于Object Properties,數(shù)據(jù)屬性對應(yīng)于Data Properties。對象屬性用于連接兩個實體,表示類與類之間的關(guān)系;數(shù)據(jù)屬性用于連接個體和具體的數(shù)據(jù)類型值,表示某個類特有的數(shù)據(jù)值,值域是某種數(shù)據(jù)類型;通過設(shè)置定義域(domain)和值域(range)對屬性進行定義。部分屬性及約束列于表1所示。
表1 部分屬性及約束
步驟5 本體評價。結(jié)合Protégé自帶的Pellet推理機功能,完成一致性檢查;
步驟6 本體實例化。對應(yīng)于Protégé中的Individuals。為給類及子類添加相應(yīng)的實例;
步驟7 本體的可視化顯示及存儲。檢驗無誤后,保存局部本體。
以同樣的方法建立其他局部本體。最后,將這些局部本體按照邏輯關(guān)系進行合并,形成最終的PMI領(lǐng)域本體。在Protégé中構(gòu)造的PMI領(lǐng)域知識圖譜的本體如圖4所示。
圖4 PMI領(lǐng)域知識圖譜的本體
本體構(gòu)造完成后,使用Pellet推理機對最終的本體進行一致性檢查,經(jīng)檢驗,所構(gòu)建的PMI領(lǐng)域本體符合要求。
數(shù)據(jù)層的構(gòu)建涉及兩個方面問題,即數(shù)據(jù)的收集和存儲。領(lǐng)域知識圖譜的主要特點就是“小樣本”,有著較小的數(shù)據(jù)量和對專業(yè)知識庫較高的依賴度。因此,在數(shù)據(jù)收集方面,為了更好地反映船用柴油機關(guān)鍵件的特性,以PMI知識庫為基礎(chǔ),結(jié)合對船用柴油機典型零件庫進行信息提取進行整理歸納。在數(shù)據(jù)存儲方面,運用圖數(shù)據(jù)庫的形式存儲生成的知識圖譜實現(xiàn)。
由于MBD模型中的PMI數(shù)量繁多,種類較為分散,難以進行統(tǒng)一管理,所以需要根據(jù)不同類型,對PMI進行集中分類提取。首先,讀取MBD模型中的所有PMI標注,記錄PMI數(shù)目為N,分別對每一個PMI標注進行處理,判斷其具體類型提取信息。最后,進行集中存儲。
本文以C語言的編程思想為指導(dǎo),通過偽代碼表達MBD模型中的PMI提取過程。將PMI類型(PMI_type)分為尺寸標注類(Dimension)、形位公差類(GeometricTol)、表面粗糙度類(SurfaceRou)、工藝基準類(Datum)、技術(shù)要求類(TechnicalReq)進行提取。PMI分類提取的偽代碼如表2所示。
表2 PMI分類提取的偽代碼
知識融合過程分為實體鏈接和知識合并兩個部分[11]。實體鏈接是指將數(shù)據(jù)對象鏈接到知識圖譜中,知識合并是指將有歧義的實體信息進行處理。知識融合流程如圖5所示。
圖5 知識融合流程
模式層具有較高的統(tǒng)一性和準確性,因此只需要對數(shù)據(jù)層進行融合。數(shù)據(jù)層構(gòu)造采用了不同來源的數(shù)據(jù),需要對知識進行實體鏈接和實體合并。先對各實體屬性信息進行相似度計算[12],當相似度超過設(shè)定的閾值時,則進行實體鏈接消除冗余。對于從數(shù)據(jù)庫中的實體信息IA和從零件中抽取的信息IB,由于數(shù)據(jù)庫實體信息具有更高的置信度,應(yīng)優(yōu)先選用IA中的信息進行替換。通過D2RQ映射將數(shù)據(jù)轉(zhuǎn)化為RDF格式的三元組格式完成知識融合。最后,利用Neo4j對PMI領(lǐng)域知識圖譜進行儲存,將融合后的數(shù)據(jù)導(dǎo)入Neo4j,得到PMI領(lǐng)域知識圖譜的部分可視化顯示。
語義網(wǎng)絡(luò)規(guī)則語言(semantic web rule lan-guage,SWRL)是一種專門描述規(guī)則的語言,使用規(guī)則與OWL(web ontology language)知識庫的結(jié)合。通過對本體的實例進行規(guī)則推理,實現(xiàn)本體與SWRL的結(jié)合,有效地彌補了本體推理能力不足的缺陷。
PMI領(lǐng)域知識圖譜中的存在著大量隱含規(guī)則,需要通過對已有知識進行知識推理和關(guān)系的挖掘。PMI標注對信息完備性的影響主要體現(xiàn)在3個方面:(1)冗余的標注會影響信息的完整性。(2)矛盾的標注會影響信息的準確性。(3)冗余和矛盾的標注間接影響著信息顯示的清晰性。
本文以各標注的關(guān)聯(lián)對象要素作為聯(lián)系的樞紐,建立具體的完備性檢查規(guī)則。
(1)標注的冗余關(guān)系
建立標注冗余性相關(guān)規(guī)則如表3所示。
表3 標注冗余性相關(guān)的SWRL規(guī)則
(2)標注的取代關(guān)系
建立的標注取代性相關(guān)規(guī)則如表4所示。
表4 標注取代性相關(guān)的SWRL規(guī)則
(3)標注的矛盾關(guān)系
建立的標注矛盾性相關(guān)規(guī)則如表5所示。
表5 標注矛盾性相關(guān)的SWRL規(guī)則
將PMI完備性檢查的規(guī)則按照3種類型編寫完成后,在Protégé的SWRLTab中進行整理,Protégé中的PMI完備性檢查規(guī)則庫如圖6所示。規(guī)則創(chuàng)建完成,在Protégé的“Individual by class”模塊中創(chuàng)建對應(yīng)類的實例。通過Protégé自帶的Drools引擎完成規(guī)則推理,將OWL與SWRL合并生成Drools規(guī)則語言。經(jīng)OWL+SWRL->、Run Drools、Drools->OWL等操作進行推理和OWL文件更新。與本體中的類相對應(yīng),在前文所創(chuàng)建的實體基礎(chǔ)上進行擴充,并為新創(chuàng)建的實體設(shè)置屬性。PMI領(lǐng)域的實體通過關(guān)聯(lián)對象產(chǎn)生聯(lián)系,每個關(guān)聯(lián)對象依據(jù)其xsd:int類型的tag值進行區(qū)分,經(jīng)過推理后生成推理結(jié)果。
圖6 PMI完備性檢查規(guī)則庫
本文中的知識推理功能的實現(xiàn)是基于Web網(wǎng)頁開發(fā)技術(shù),并通過網(wǎng)頁的形式實現(xiàn)與NX系統(tǒng)的集成。采用Java編程語言解決Web問題的技術(shù)稱為Java Web[13],它是Spring框架的常用技術(shù)。這里知識推理部分將利用Java Web進行功能頁面的開發(fā)。
開發(fā)過程中運用的Java Web是基于MVC分層模式進行設(shè)計的,采用了Spring Boot框架進行業(yè)務(wù)邏輯控制。通過Spring Boot對Spring體系框架進行了整合優(yōu)化,能夠利用更簡易的配置快速實現(xiàn)Java Web的啟動。通過采用MySQL數(shù)據(jù)庫進行數(shù)據(jù)存儲,結(jié)合Mybatis框架進行數(shù)據(jù)庫訪問[14],借助提供從數(shù)據(jù)表到Java類的映射實現(xiàn)降低數(shù)據(jù)傳輸?shù)膹?fù)雜性的需求。MVC分層模式的原理如圖7所示。
圖7 MVC分層模式原理
Jena提供的API接口[15]支持OWL、RDFS及DAML+OIL,可以實現(xiàn)對本體文件數(shù)據(jù)進行處理,通過讀取OWL文件,對本體進行拓展應(yīng)用。
本文以船用柴油機某型號的機架為實例對系統(tǒng)進行驗證。首先需要輸入機架的MBD模型,以機架的MBD模型為信息源,所集成的信息包括視圖信息、標注信息、特征信息(對應(yīng)加工工序信息)、幾何信息等。點擊“數(shù)據(jù)預(yù)處理”,系統(tǒng)對MBD模型PMI信息進行自動遍歷和分類;點擊“PMI信息提取”按鈕后,會彈出如圖8的界面,PMI的詳細信息會以樹列表的形式顯示,點擊“確定”按鈕后,后臺自動保存。MBD信息提取的內(nèi)容,包括尺寸標注、形位公差及表面粗糙度。提取后的信息通過界面顯示,同時后臺以文件形式進行保存。機架MBD模型如圖9所示。
圖8 PMI信息提取界面
圖9 導(dǎo)入MBD模型
PMI完備性檢查部分是結(jié)合Web編程技術(shù),在Web網(wǎng)頁上實現(xiàn)的。點擊“PMI完備性檢查”按鈕,會自動通過瀏覽器進入PMI完備性檢查平臺。PMI完備性檢查包含“關(guān)系查詢”和“知識推理”兩個模塊?!瓣P(guān)系查詢”模塊可以通過輸入實體名或關(guān)系名進行搜索?!爸R推理”模塊通過讀取所提取的模型PMI信息,根據(jù)SWRL規(guī)則庫對PMI標注進行知識推理。PMI信息包括標注的編號、類型、公差值和關(guān)聯(lián)對象編號。點擊“開始推理”按鈕,自動在所導(dǎo)入的PMI信息基礎(chǔ)上進行推理。推理完成后,會在界面右側(cè)按照冗余性標注、取代性標注、矛盾性標注3種類型自動對推理結(jié)果進行歸類。詳細信息包括尺寸類型及其對應(yīng)的tag值。如圖10所示。
圖10 PMI完備性檢查結(jié)果
由推理結(jié)果可知,機架MBD模型中出現(xiàn)3個冗余性標注,2個取代性標注,3個矛盾性標注。導(dǎo)出PMI完備性檢查結(jié)果,部分PMI完備性檢查報告如圖11所示。在第1個平面的第2個角度和第3個角度存在2個取代性標注,分別是Tag值為53 620和64 606的形狀公差,這兩個形狀公差可以相互取代。同理可以通過Tag值的不同找到機架MBD模型中的冗余性標注和矛盾性標注。經(jīng)檢驗,關(guān)于尺寸標注、形狀公差和表面粗糙度的錯誤標注均能根據(jù)該方法進行檢查。
圖11 部分PMI完備性檢查報告
本文針對MBD模型的PMI完備性檢查問題展開了研究,結(jié)合NX平臺的相關(guān)開發(fā)技術(shù),開發(fā)了船用柴油機關(guān)鍵件MBD模型的PMI完備性檢查系統(tǒng)。通過船用柴油機典型零件實例,驗證了系統(tǒng)方案的良好性能。針對當前信息標注過度依賴人工、PMI信息提取及完備性檢查困難以及工序模型存儲成本較高等問題,提出了以MBD模型為唯一數(shù)據(jù)源的PMI完備性檢查技術(shù)研究方案。將知識圖譜技術(shù)與完備性檢查技術(shù)相結(jié)合,自頂向下地構(gòu)建了PMI領(lǐng)域知識圖譜,并通過Neo4j技術(shù)實現(xiàn)了信息的可視化及存儲。在此基礎(chǔ)上結(jié)合SWRL規(guī)則推理建立PMI完備性檢查的相關(guān)規(guī)則,實現(xiàn)了PMI完備性檢查。在完成了系統(tǒng)方案設(shè)計及系統(tǒng)關(guān)鍵技術(shù)理論研究的基礎(chǔ)上,利用NX二次開發(fā)工具,結(jié)合Visual Studio2012等編程開發(fā)工具,以C++等編程語言進行了系統(tǒng)的開發(fā)。最后通過船用柴油機典型零件實例對系統(tǒng)進行了驗證。