安 晶,陽(yáng) 程,李青祝
(鹽城工學(xué)院 優(yōu)集學(xué)院,鹽城 224051 )
信息化已成為企業(yè)生存的關(guān)鍵,各種不同的PDM/PLM系統(tǒng)得到廣泛應(yīng)用,目前國(guó)外的PDM/PLM系統(tǒng)大都價(jià)格昂貴,很多功能并不實(shí)用,不適合在一些中小企業(yè)中推廣,針對(duì)這種狀況,本文提出一種基于本體的產(chǎn)品結(jié)構(gòu)管理系統(tǒng)的框架模型, 并在系統(tǒng)層面上加以實(shí)現(xiàn),該系統(tǒng)已在鹽城某機(jī)床廠試用。系統(tǒng)的開發(fā)對(duì)提高鹽城地區(qū)中小企業(yè)產(chǎn)品結(jié)構(gòu)管理的效率,節(jié)約企業(yè)的生產(chǎn)成本具有重要意義。
產(chǎn)品數(shù)據(jù)管理(PDM)是以產(chǎn)品為核心,用于管理所有與產(chǎn)品相關(guān)的信息和過(guò)程的一種使用技術(shù)。它提供一個(gè)企業(yè)數(shù)據(jù)管理的集成框架,是企業(yè)信息化的基礎(chǔ)。作為PDM系統(tǒng)的重要組成部分,產(chǎn)品結(jié)構(gòu)管理以BOM(bi l l of mater ial)信息為其組織核心,把定義最終產(chǎn)品的所有工程數(shù)據(jù)與產(chǎn)品結(jié)構(gòu)關(guān)聯(lián)起來(lái),實(shí)現(xiàn)對(duì)產(chǎn)品數(shù)據(jù)的有效組織、管理和控制。
本體是通過(guò)對(duì)于概念、術(shù)語(yǔ)及其相互關(guān)系的規(guī)范化描述,勾畫出某一領(lǐng)域的基本知識(shí)體系和描述語(yǔ)言。它屬于人工智能領(lǐng)域中的內(nèi)容理論,研究特定領(lǐng)域知識(shí)的對(duì)象分類、對(duì)象屬性和對(duì)象間的關(guān)系,為領(lǐng)域知識(shí)的描述提供術(shù)語(yǔ)。
OWL(Web Onto l ogy Language)作為一種本體建模語(yǔ)言,是W3C推薦的語(yǔ)義互聯(lián)網(wǎng)中本體描述語(yǔ)言的標(biāo)準(zhǔn)。針對(duì)不同的需求OWL有3個(gè)子語(yǔ)言:OWL-Li te、OWL-DL和OWL-Ful l,主要的分類依據(jù)是它們的表達(dá)能力。
OWL的基本元素:類、個(gè)體和屬性。
OWL規(guī)定,任何東西都是類owl:Thing的一個(gè)成員(實(shí)例)。因此,任何用戶定義的類都是owl:Thing類的子類。
Jena是惠普公司的一個(gè)項(xiàng)目,Jena為應(yīng)用程序開發(fā)人員提供了一套java接口對(duì)本體進(jìn)行操作。Jena主要由API、SPI組成。用戶編程只需使用API。Jena庫(kù)由包來(lái)管理,Jena API以接口方式定義??梢哉{(diào)用Jena API,構(gòu)建應(yīng)用程序,實(shí)現(xiàn)RDF,OWL本體進(jìn)行創(chuàng)建,修改,查詢以及推理操作。其功能包括:讀寫RDF數(shù)據(jù)、本體子系統(tǒng)、推理子系統(tǒng)、本體的持久化存儲(chǔ)、查詢模型等。
Protégé是由美國(guó)Stanford大學(xué)開發(fā)研制。它使用Java和開放資源作為操作平臺(tái),可自己設(shè)置輸入格式,也可插入插件擴(kuò)展特殊的功能。它提供一個(gè)圖形和交互式的知識(shí)本體設(shè)計(jì)和基于知識(shí)的開發(fā)環(huán)境。Protégé支持以文件或數(shù)據(jù)庫(kù)形式存儲(chǔ)知識(shí)本體。
參照PDM的國(guó)際標(biāo)準(zhǔn),基于本體的產(chǎn)品結(jié)構(gòu)管理系統(tǒng)為B/S結(jié)構(gòu),其系統(tǒng)結(jié)構(gòu)如圖1。
圖1 體系結(jié)構(gòu)圖
系統(tǒng)結(jié)構(gòu)分為4層:數(shù)據(jù)層、應(yīng)用層、表示層和客戶端層。數(shù)據(jù)層保存產(chǎn)品數(shù)據(jù)和用戶信息;應(yīng)用層主要實(shí)現(xiàn)系統(tǒng)的功能邏輯,在接受調(diào)用請(qǐng)求后進(jìn)行邏輯處理,可將處理結(jié)果保存到數(shù)據(jù)層,同樣也可從數(shù)據(jù)層取出數(shù)據(jù),經(jīng)過(guò)處理后,發(fā)送給表示層;表示層用來(lái)接收客戶端請(qǐng)求,然后調(diào)用應(yīng)用層的功能模塊進(jìn)行處理,并把處理結(jié)果返回到客戶端;客戶端層則用來(lái)提供應(yīng)用的Web操作界面。
系統(tǒng)模塊主要包括2部分:用戶功能模塊和領(lǐng)域功能模塊。領(lǐng)域功能模塊的實(shí)現(xiàn)以Jena作為本體開發(fā)接口,主要有Item、Master_Form、Dataset、BOMLine、BOMView等類,每個(gè)類都有一些簡(jiǎn)單屬性。本體模型主要類及類之間的關(guān)系說(shuō)明如下:
Item(產(chǎn)品條目):表示真實(shí)世界中的一個(gè)產(chǎn)品、部件或零件對(duì)象等。
Master_Form:Form(表格)將各種屬性信息數(shù)據(jù)直接存入關(guān)系型數(shù)據(jù)庫(kù)中。Form與Item直接關(guān)聯(lián)。Form的屬性包括圖紙編號(hào)、中文名稱、材料、設(shè)計(jì)者等。
Dataset:用來(lái)管理(存放)應(yīng)用軟件生成的數(shù)據(jù)(文件)的一種對(duì)象。
BOMView:一種具體定義Item(裝配件)信息的數(shù)據(jù)對(duì)象,它存放了該Item(裝配件)的裝配結(jié)構(gòu)。BOMView必須依附于It em。
BOMLine:當(dāng)添加一個(gè)零組件到一個(gè)裝配件時(shí),就是創(chuàng)建一個(gè)從零組件到上級(jí)裝配件的裝配關(guān)系,這個(gè)裝配關(guān)系的顯示為一個(gè)BOMLine。
系統(tǒng)所采用的層次結(jié)構(gòu)為自頂向下法:由某一領(lǐng)域中最大的概念開始,而后再通過(guò)添加子類將這些概念細(xì)化。Product St ructure Management包括以下幾個(gè)主要部分:BOMView、Mas ter_Form、BOMLine、Dataset、Item等,每個(gè)類有各自的子類。
在Protégé圖形界面環(huán)境下創(chuàng)建本體模型,系統(tǒng)的類圖如圖2。
圖2 本體模型類層次圖
類定義后,要描述類的屬性之間的內(nèi)在結(jié)構(gòu),其中子類繼承其父類的屬性,還要描述類中的個(gè)體成員與其它類之間的關(guān)系 。為了更形象的描述類及其屬性之間的關(guān)系,Protégé中通過(guò)Onto-Viz圖形工具顯示本體關(guān)系如圖3。
其中Item的幾個(gè)屬性Item_Name、Relat ion_Item_BOMView、Relation_Item_Dataset、Relat ion_Item_Maste_Form、Relat ion_Item_Par t_Class,后4個(gè)屬性分別定義Item類與BOMView、Dataset、Maste_Form、Par t_Class等類之間的關(guān)系。
圖3 類與屬性關(guān)系圖
本體模型完成后,可以用XML導(dǎo)出模型。以Dataset_Reference、Dataset_Tool、Dataset_Type和Dataset_Volume等。
系統(tǒng)實(shí)現(xiàn)所需功能模塊包括登陸、注冊(cè)、本體實(shí)例操作模塊等。
主要的類及其關(guān)系如圖4。JenaAct ion.java和JenaAc t ionForm.j ava實(shí)現(xiàn)信息的瀏覽和刪除。AddAct ion.java和MFAct ionForm.java實(shí)現(xiàn)信息的添加和修改。ClassJena.java用于讀寫本體模型。XML文檔中數(shù)據(jù)集為例,XML部分代碼如下:
圖4 系統(tǒng)主要類及其關(guān)系
rdf:resource="#PDM"/> rdf:ID="Dataset_Reference"> rdf:resource="#Dataset"/> rdf:ID="Dataset_Tool"> rdf:resource="#Dataset"/> rdf:ID="Dataset_Type"> rdf:resource="#Dataset"/> rdf:ID="Dataset_Volume"> rdf:resource="#Dataset"/> 首先定義一個(gè)元素的ID:Dataset,Dataset是PDM的一個(gè)子類,然后定義Da t a s e t的屬性: 本體模型讀寫功能的實(shí)現(xiàn)。 //類初始化和讀取OWL文件、在內(nèi)存中建立本體模型。 public class ClassJena { publ ic OntModel model; ClassJena() { model = Model Factory.createOntologyModel(OntModel Spec.OWL_DL_MEM, nul l); try { Fi le InputSt ream fs = new FileInputSt ream("E:\PDM_Model.owl"); model.read(fs, ""); fs.close(); } catch (IOException e) { System.err.println(e.toString()); } } 基于以上的系統(tǒng)設(shè)計(jì)和關(guān)鍵技術(shù)分析,本系統(tǒng)采用Protégé構(gòu)建產(chǎn)品結(jié)構(gòu)管理本體的類、屬性和實(shí)例,并將其導(dǎo)出為XML文檔,然后通過(guò)Jean本體開發(fā)接口工具包在NetBeans集成開發(fā)環(huán)境中采用JSP、St ruts技術(shù)實(shí)現(xiàn)對(duì)產(chǎn)品結(jié)構(gòu)的瀏覽、刪除、添加和修改等管理功能。系統(tǒng)采用4層B/S體系結(jié)構(gòu)將復(fù)雜的業(yè)務(wù)邏輯封裝到應(yīng)用層,并從數(shù)據(jù)層和表示層分離出來(lái),使系統(tǒng)具有良好的擴(kuò)展性、開放性和可維護(hù)性。 系統(tǒng)開發(fā)環(huán)境:操作系統(tǒng):Windows XP;數(shù)據(jù)庫(kù):MySQL;JSP服務(wù)器:Tomca t 6.0;瀏覽器:IE 6.0;開發(fā)工具:本體開發(fā)工具Protégé;本體開發(fā)接口工具包Jean;Net Beans 6.5集成開發(fā)環(huán)境; 以單級(jí)圓柱齒輪減速器產(chǎn)品結(jié)構(gòu)為例,如圖5。系統(tǒng)實(shí)現(xiàn)如圖6。 圖5 單級(jí)圓柱齒輪減速器產(chǎn)品結(jié)構(gòu) 圖6 系統(tǒng)實(shí)現(xiàn)主界面 通過(guò)參照PDM的國(guó)際標(biāo)準(zhǔn)確定系統(tǒng)中產(chǎn)品結(jié)構(gòu)管理模塊的框架結(jié)構(gòu),在Prot-égé中構(gòu)建該領(lǐng)域本體的類、屬性和實(shí)例來(lái)確立領(lǐng)域本體模型,采用JSP開發(fā)本系統(tǒng)。要實(shí)現(xiàn)企業(yè)有效的產(chǎn)品結(jié)構(gòu)管理,還有許多探索性的工作要做,如何更簡(jiǎn)便的構(gòu)建產(chǎn)品管理系統(tǒng)中領(lǐng)域本體,如何更好地實(shí)現(xiàn)系統(tǒng)領(lǐng)域概念的共享,這些都是未來(lái)的研究方向。 [1] 倪益華.基于本體的制造企業(yè)知識(shí)集成技術(shù)的研究[D]. 浙江:浙江大學(xué),2005. [2] 胡 建. 產(chǎn)品設(shè)計(jì)知識(shí)管理關(guān)鍵技術(shù)研究及實(shí)現(xiàn)[D]. 南京:南京航空航天大學(xué),2005. [3] 龐士宗,肖平陽(yáng),唐家福. 產(chǎn)品數(shù)據(jù)管理(PDM)-現(xiàn)代企業(yè)信息化管理與集成的理想平臺(tái)[M]. 北京:機(jī)械工業(yè)出版社,2001. [4]陳繼忠. 面向協(xié)同設(shè)計(jì)的產(chǎn)品結(jié)構(gòu)與配置管理系統(tǒng)[J]. 清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,8. [5]尹建偉,王冰冰,陳 剛,等.集團(tuán)級(jí)分布式產(chǎn)品數(shù)據(jù)管理系統(tǒng)的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)集成制造系統(tǒng),2005,11.4 系統(tǒng)實(shí)現(xiàn)
5 結(jié)束語(yǔ)