楊健 董立勇 馬金梁 王志濤 王龍興
當(dāng)前,組件技術(shù)成為基于組件仿真與建模(Component Based Simulation and Modeling,CBSM)的一個重要的技術(shù)要素[1].組件技術(shù)適應(yīng)市場的快速變化,能夠有效縮減開發(fā)費用,減少開發(fā)時間[2?3],也為復(fù)雜大型仿真軟件和系統(tǒng)的快速標(biāo)準(zhǔn)化開發(fā)提供了可能[4].
基于組件建模與仿真面臨的一個問題是選用組件的可組合性.它決定了用戶通過組合建模得到的模型是否符合用戶的目的.基于組件開發(fā)仿真系統(tǒng)與基于組件進(jìn)行一般的軟件開發(fā)存在很大不同,因為仿真系統(tǒng)的功能是基于時序的,仿真系統(tǒng)的開發(fā)需要考慮內(nèi)部功能組件之間的時間邏輯的問題.因此,對仿真模型的可組合性檢驗更加困難[5].
組合建模需考慮兩個層次的可組合性問題:語法可組合(Syntactic composability)和語義可組合(Semantic composability)[6].語法可組合性主要關(guān)注模型組合規(guī)則、數(shù)據(jù)格式、語法方面的問題,語義則主要關(guān)注模型功能實現(xiàn)層次的問題.本文研究仿真組合建模中的語義可組合性問題.語義可組合性檢驗可在組合建模完成前的組件選擇階段和組合建模完成后的驗證階段進(jìn)行[7?8].本文在已有研究的基礎(chǔ)上研究組件選擇階段的語義可組合性檢驗問題.
用戶從模型組件庫中獲取的組件其行為和屬性應(yīng)當(dāng)是描述清晰和易于理解的.所以語義可組合性檢驗首先需解決的是對仿真組件的語義描述問題.本文研究基于本體的組件語義描述方法,首先建立本體的分類樹,然后基于領(lǐng)域知識細(xì)致描述組件的完善語義信息[5,9].進(jìn)一步,本文研究了基于語義本體的分層語義可組合性檢驗方法,以支持高效的組件選擇和建模.
仿真組件的語義包含很多與實體行為相關(guān)的屬性和約束等信息[11].比如應(yīng)用領(lǐng)域、參數(shù)范圍、接口限制、語義條件下的輸入輸出.此處關(guān)注的語義信息如下:
意圖.意圖描述了組件被用來干什么,例如引擎的作用是提供動力,用語句描述為Purpose(Supplying_power);卡車的作用是運輸貨物,Purpose(Carring cargo)等.
單位.單位表示了參數(shù)的領(lǐng)域意義.例如引擎的單位是“馬力”,雷達(dá)的掃描范圍以“千米”為度量單位.
范圍.組件的范圍描述了組件之間的邏輯關(guān)系,通常是以函數(shù)的方式描述的.例如機(jī)載雷達(dá)可以與飛機(jī)平臺相連接,同時可以與空中控制部件相連接.
接口規(guī)則.組件需要通過接口與外部進(jìn)行交互.接口規(guī)則定義接口間的鏈接關(guān)系,說明了接口應(yīng)當(dāng)服從的規(guī)則和習(xí)慣[12].
接口限制.組件接口之間的連接揭示了領(lǐng)域內(nèi)的慣例,邏輯規(guī)則.可以通過{數(shù)據(jù)輸入,數(shù)據(jù)輸出,事件輸入,事件輸出}來描述.
語義信息需清晰完整地描述組件的行為、用途與能力,如圖1所示.組件庫中有很多的組件,如孤立地對每個組件的語義分別描述而不是通過描述各個組件與其他組件間的關(guān)系來表達(dá)其語義,大量異構(gòu)組件的管理和使用將變得混亂,無法讓用戶清晰了解組件的作用和屬性[13].
不同組件的功能作用不同,但各個組件之間由于功能的相似性或功效發(fā)揮的相互依托產(chǎn)生的在邏輯上的關(guān)聯(lián)關(guān)系使得組件之間存在聯(lián)系.例如汽車平臺組件與卡車平臺組件的功能相似性、不同類型雷達(dá)組件的功能相似性,雷達(dá)組件與控制器組件的功能關(guān)聯(lián)關(guān)系等.因此,可通過描述某一組件與其他組件間的關(guān)系來描述該組件的語義.組件語義的描述須滿足以下兩個條件:1)相關(guān)組件的語義信息描述清晰;2)組件之間的關(guān)系被描述清楚.
本文基于元數(shù)據(jù)本體深入研究組件語義.本體中每一個組件被描述為一個元組件.組件的語義描述和約束基本確定了組件間的相互關(guān)系.這種相互關(guān)系可被分解為橫向語義關(guān)系與縱向語義關(guān)系.如圖2所示,遺傳性規(guī)則是縱向語義的產(chǎn)生原因;領(lǐng)域邏輯是橫向語義的產(chǎn)生原因.例如汽車組件和卡車組件共享基本車輛的屬性,因此,存在縱向語義關(guān)系.引擎組件是車輛模型的一個部分,它向車輛平臺組件輸送動力,可以定義語句HasEngine(Car),SupplyPower(engine,car).另一方面,每個組件的能力存在一定的限制,例如引擎有最大馬力MaxPower(engine).應(yīng)用本體描述清晰的組件間關(guān)系能為用戶和計算機(jī)提供清晰的組件庫視圖.
本體分類樹是本體的骨架.首先研究基于本體分類樹的組件間縱向關(guān)系描述方法[10].例如F22猛禽的語義可描述為:
分類樹可清晰描述組件間的縱向關(guān)系:分類樹中每個節(jié)點描述一個子類,每個子類中的組件共享一部分相同的語義信息.組件的語義可以被描述為一般語義和特殊語義,一般語義是由多個組件共享的語義信息,而特殊語義是某個組件特有的語義.例如所有的運載器(Vehicles)具有運載器的基本語義信息,而飛機(jī)有區(qū)別于陸上運載器、海上運載器、潛水運載器以及航天運載器的特有屬性.
任意組件的完整語義信息是一般語義和特殊語義之和,一個元本體可以描述為:Sc=
圖1 仿真組件的語義組成分析
圖2 組件之間的語義關(guān)系
圖3 組件語義的層次化結(jié)構(gòu)示意圖
定義語義路徑:對于分類樹中的各個組件,從樹的頂部到底部,每個組件分別屬于逐漸細(xì)致的一系列子集.這一系列子集構(gòu)成了一條從頂?shù)降椎慕Y(jié)點通路,將這條通路定義為語義路徑(Semantics Route(C)).例如,圖3中C1的語義路徑可表述為:Semantics Route(C1)={S11...Sm1}.語義路徑可直觀說明一個組件的語義被分別表示在其語義路徑的各子集中.
每個組件與同一集合的組件共享一部分一般語義.這樣層次化的記錄和表達(dá)模式可表示一些有益信息.如圖3所示,組件C1和C2共享集合Sm1中的語義,這意味著它們有某些相似的行為和能力.有良好結(jié)構(gòu)的組件庫使查找組件時能夠方便獲得所有符合要求的組件.
語義路徑中每個組件子集記錄將這個子集中的組件和同一層次其他子集中的組件是區(qū)分開的,且集合內(nèi)每個組件都擁有的語義.一般語義和特殊語義在定義上完全不相交,但組件的大多語義都界于一般和特殊之間.如飛機(jī)平臺類組件繼承運輸器組件的屬性,繼承的語義信息是飛機(jī)平臺子集中所有組件的一般語義,而它們的特殊語義描述了其航空運載能力,配備設(shè)施如動力系統(tǒng),傳感器系統(tǒng)等語義信息;下一層,飛機(jī)平臺的特殊語義又成為戰(zhàn)斗機(jī)類的一般語義,而戰(zhàn)斗機(jī)類的特殊語義描述戰(zhàn)斗機(jī)類功用、氣動外形、載荷等信息.
圖4展示了組件的一般語義和特殊語義的演化趨勢.在語義層頂端,所有組件由基本組件處繼承得到的語義信息是最一般性、最通用的語義信息,反應(yīng)了特定領(lǐng)域的基本知識和規(guī)則.第二層,組件庫中組件被分為若干子類,分類樹由每一個子類中抽取出該子類所有組件共有的語義.此時每一個組件獲得了自己的另一部分一般語義的描述.這部分語義具備的一般性稍弱,同時具有一定的特殊性.隨著分類越精細(xì),語義越具有特殊性.分類樹葉節(jié)點記錄的語義是各個組件完全特殊的語義.
分層語義記錄方法沿著語義路徑的節(jié)點描述將組件和同一層次別的節(jié)點區(qū)分開的語義.組件的一般性語義是該組件的語義路徑上所有子集存儲的語義的并集.假設(shè)組件A從頂點到葉節(jié)點所述的子集集合為為語義本體的層數(shù).子集存儲的語義為Si,A,在第i層有另一個子集應(yīng)滿足:
組件A的一般語義可表達(dá)為:SAg=S1,A∪S2,A∪···∪Snh-1,A,完整語義為:SA=SAg∪SAs.
圖4 組件中不同層級語義的性質(zhì)過渡趨勢圖
縱向關(guān)系僅描述組件間繼承性語義關(guān)系,如車載雷達(dá)是雷達(dá)的子集,雷達(dá)是感知器的子集.但分類樹缺少描述橫向語義的能力,無法描述基于功用的相關(guān)關(guān)系.例如某組件如何與其他組件交互,組件間在功能上的關(guān)聯(lián).橫向關(guān)系是領(lǐng)域相關(guān)的.它描述了特定領(lǐng)域內(nèi)組件之間的相互關(guān)系.獲取領(lǐng)域知識對于模型發(fā)現(xiàn),語義檢驗具有重要意義[10].
橫向關(guān)系相關(guān)的語義包含兩部分,分別是一般的規(guī)則和屬性.一般規(guī)則指客觀邏輯和特殊的領(lǐng)域內(nèi)基本限制.客觀邏輯規(guī)范了在組合模型中的組件如何基于一定的時序邏輯傳遞數(shù)據(jù),進(jìn)行交互以保證模型正常工作.例如:假設(shè)組成飛機(jī)模型的基本組件包括機(jī)載雷達(dá)、控制中心、飛機(jī)組件、武器系統(tǒng).需要設(shè)定特殊的信息交互流程以實現(xiàn)特定的功能.當(dāng)機(jī)載雷達(dá)探測到敵方的信號,其處理的基本流程如圖5所示.
當(dāng)雷達(dá)探測到緊急情況時,它首先向指揮中心報告,指揮中心經(jīng)過評估與決策后發(fā)出機(jī)動命令給平臺,發(fā)出開火命令給機(jī)載武器.對遇敵事件的處理順序體現(xiàn)了作戰(zhàn)指揮控制的客觀邏輯.
組件開發(fā)階段客觀邏輯以程序的形式實現(xiàn).如雷達(dá)組件功能包括導(dǎo)引、掃描和追蹤,以及向指揮節(jié)點上報.開發(fā)者將這些功能邏輯以O(shè)WL(Web Ontology Language)的形式描述在語義本體中.雷達(dá)可以被約束為:receiveOrder(Radar,ControlCenter),report(Radar,ControlCenter),getOwnPosition(Radar,Platform)等.
圖5 雷達(dá)組件與指控中心的交互流程示意圖
共同規(guī)則包括組件類型限制.這些限制特殊但卻根據(jù)實際需要.戰(zhàn)斗機(jī)裝備了機(jī)載火控雷達(dá)(has-Radar(Jetfighters fire-contro radar)).共同規(guī)則作為基本的知識記錄于本體中.它構(gòu)建了組件開發(fā)的基本標(biāo)準(zhǔn).通常認(rèn)為這些知識應(yīng)由領(lǐng)域?qū)<掖_定,由組件開發(fā)者根據(jù)規(guī)則描述組件語義.為了保證一致性,需要根據(jù)一套完整嚴(yán)謹(jǐn)?shù)牧鞒檀_定規(guī)則,此處不做進(jìn)一步討論.
基本屬性描述包括基本參數(shù)單位、參數(shù)范圍,如雷達(dá)的搜索半徑和工作周期,飛機(jī)的載荷.這些參數(shù)是開發(fā)者選擇組件時的一個重要考量.這些屬性也限制了組件之間的橫向語義.
在本體中,所有的橫向語義由OWL描述.OWL缺乏定義規(guī)則的能力,因此,本文應(yīng)用語義網(wǎng)絡(luò)規(guī)則語言SWRL(Semantic Web Rule Language)定義組件的規(guī)則,以汽車平臺為例,汽車的引擎是汽油機(jī),因此,可以定義為:
由此可見,當(dāng)組件開發(fā)者由若干組件組合建模時,可以應(yīng)用這些規(guī)則檢驗語義可組合性.
本節(jié)闡述了應(yīng)用本體描述組件語義的基本方法,應(yīng)用縱向語義實現(xiàn)基于分類樹的組件庫語義關(guān)系基本結(jié)構(gòu)構(gòu)建,通過橫向語義建立基于基本結(jié)構(gòu)的領(lǐng)域組件本體知識庫.
在基于組件仿真建模技術(shù)流行的今天,建模人員可能是面向具體應(yīng)用的用戶,其知識儲備達(dá)不到領(lǐng)域?qū)<业乃?由他們根據(jù)自己的已有知識與經(jīng)驗確定兩組件是否滿足語義可組合性存在困難.由于元數(shù)據(jù)本體描述了組件的領(lǐng)域知識,促進(jìn)了機(jī)器和用戶對組件能力的理解.因此,本文提出基于本體的語義檢驗方法.
當(dāng)前大多數(shù)的仿真系統(tǒng)是定制型的,用戶的系統(tǒng)開發(fā)需求基于各自的職能任務(wù).另一方面由于武器裝備更新迭代快,同時服役使用的裝備型號多種多樣.因此,大多時間根據(jù)用戶的具體應(yīng)用場景與需求難以找到完全匹配需求的組件.在組件庫中有若干與已有組件部分匹配的組件,那些不匹配的部分一方面可以進(jìn)行修改以匹配需求[8],另一方面也有可能在組合模型的實際使用中不會被用到.因此,可以根據(jù)具體需求選擇滿足一定可組合程度的組件.
在選擇滿足語義可組合組件時可采用分層檢驗的方法分析組件可組合度.在組件的本體語義中,每層語義對具體組件的影響不一樣.頂層的語義決定了組件的結(jié)構(gòu),低層的語義描述了組件的功能細(xì)節(jié).本文提出權(quán)重系數(shù)wi∈[0,1],i∈nh以量化這種知識,nh是組件本體語義的層數(shù)[14].wi是第i層語義的重要性權(quán)值,其取值說明這層語義的重要性,需要滿足的條件為:
由于建模人員可能對組件間的匹配程度有不同需求.為了描述這種需求,定義λ描述了建模人員可接受的可組合程度下限.假設(shè)選用n個仿真組件構(gòu)建一個仿真系統(tǒng),這些組件滿足語義可組合的要求是:
設(shè)計逐層檢驗算法以確定組件間的可組合性程度.假設(shè)建模人員選擇了兩個組件,并設(shè)定組件接口之間的映射關(guān)系.需要確定此兩個組件的可組合性程度.檢驗基于已經(jīng)建立起來的元數(shù)據(jù)本體.由于各個層次的語義對組件功能的影響程度不同[15].以航空仿真為例,建模人員希望構(gòu)建一個飛機(jī),他選擇了一個旋翼直升機(jī)和一個機(jī)載雷達(dá),雖然機(jī)載雷達(dá)的各個接口和旋翼直升機(jī)的借口可能會匹配的很好,但是由于選擇錯誤,這樣的匹配是無意義的.因此,設(shè)置了一個從上至下的檢驗機(jī)制.算法中如果驗證器檢測到有語義沖突,則會立即中斷檢驗并且輸出已有的可組合性檢驗結(jié)果.如果在檢驗過程中沒有發(fā)現(xiàn)沖突,則說明是完全可組合的.算法如圖6所示.
算法自頂?shù)降字饘哟_定組件所屬的語義子集.然后整理確定此子集描述的語義信息,接著將組件已有語義信息放入檢驗算法中進(jìn)行檢驗.
圖6 語義可組合性檢驗算法
應(yīng)用一個用例驗證本文提出的基于本體的語義描述方法與基于本體的仿真組件語義可組合性驗證算法.以軍事裝備仿真模型開發(fā)為例.在組件庫中有很多的標(biāo)準(zhǔn)化仿真組件,當(dāng)建模人員想通過組合建模構(gòu)建一個戰(zhàn)斗機(jī),首先基于OWL語言構(gòu)建軍事領(lǐng)域仿真組件本體.
根據(jù)本文提出的基于本體的領(lǐng)域語義知識的描述方法,首先基于仿真組件的功能構(gòu)建元數(shù)據(jù)本體.所有的仿真組件被分類為控制組件,數(shù)據(jù)收集組件,平臺組件,裝備組件和通訊組件.
控制組件模擬真實裝備與系統(tǒng)中控制模塊的各種控制行為和功能,發(fā)揮認(rèn)知、判斷、決策與控制的作用.控制組件接收其他類型組件的事件交互,根據(jù)信息進(jìn)行判斷、決策和控制.同時作為中樞組件管理組合模型內(nèi)部的所有事件,負(fù)責(zé)與組合模型外的環(huán)境交互通信,包括組合模型間的信息交流和與上級的交互.
裝備組件仿真各型武器、裝備的功能,例如搭載于戰(zhàn)斗機(jī)的各種武器裝備、電磁對抗裝備等.
平臺模塊仿真基本模型的搭載平臺,能夠模擬平臺的動力系統(tǒng)功能、組合模型外形等物理屬性信息,平臺組件管理組合模型的位置,速度等相關(guān)屬性.
信息采集模塊對具有信息收集功能模塊進(jìn)行模擬.包括雷達(dá),傳感器等.
將所有的組件分為5個大類,再根據(jù)功能、使用場景以及屬性對每個大類中的組件進(jìn)行細(xì)分,從而建立了領(lǐng)域本體的分類樹.進(jìn)一步應(yīng)用OWL描述橫向關(guān)系相關(guān)的語義信息,建立完整的語義本體,如圖7所示.
以分類樹為基本架構(gòu)的語義本體中,由于每個組件的復(fù)雜度不同,具體的組件可能不在本體分類樹的同一層中,如圖7中的通信系統(tǒng)和控制組件.在實際檢驗中需要考慮到這個情況.算法在具體的檢驗中應(yīng)當(dāng)執(zhí)行到兩個組件中處于更低層次的組件.
本文以建模人員使用6個功能組件構(gòu)建一個戰(zhàn)斗機(jī)的基本模型為例.這6個組件分別是仿真平臺模型組件、飛行控制模塊組件、通信組件、傳感器組件、雷達(dá)組件、掛載武器組件.組件間的交互關(guān)系如圖8所示.
圖7 軍事仿真本體實例
圖8 組件間基于功能實現(xiàn)的數(shù)據(jù)交互示意
組件間的交互關(guān)系確定了具體的檢驗時應(yīng)當(dāng)檢驗?zāi)男┙M件對之間的語義可組合程度.依據(jù)具體的應(yīng)用需求,仿真建模人員規(guī)定各組件間可組合程度下限為0.8.定義每一層權(quán)值如表1所示:
表1 各層的語義重要權(quán)重
首次選擇組件:BattlePlaneControllerOne、Airborne Communicate System,General Sensor System1、FireControlOne、GeneralplanePlatform1與 Air to Ground missile.
應(yīng)用檢驗算法檢驗由圖8描述的交互關(guān)系確定的相關(guān)組件間的語義可組合性,得到了相關(guān)組件對之間的可組合程度,如表2所示.
組件組{BattlePlaneControllerOne,General Sensor System},{BattlePlaneControllerOne,General Plane Module},{FireControlOne,General Plane Module}的語義可組合性程度低于建模人員設(shè)定的閾值.因為General Sensor System1是為地面車輛設(shè)計的傳感器組件,缺乏獲得平臺姿態(tài)信息的能力;Generalplane-Platform1是固定翼飛機(jī)標(biāo)準(zhǔn)化的平臺組件,缺少戰(zhàn)斗機(jī)特有的功能.
用組件General Sensor System2與Battleplane-Platform替換不滿足語義可組合性的組件并再次執(zhí)行檢驗.檢驗結(jié)果如表3所示.
根據(jù)結(jié)果進(jìn)行分析,可知第2批組件中相關(guān)組件對之間的語義可組合程度的最低值為0.9,大于用戶確定的最小可行閾值0.8.因此,第2批組件符合用戶的要求.
本文提出的基于本體的語義可組合性檢驗算法能夠逐層檢驗組件間的可組合性水平,能夠明確發(fā)現(xiàn)組件相互組合在語義上導(dǎo)致的錯誤,同時能夠提示組件選擇的需求方向.該算法能夠運用于基于組合建模構(gòu)建復(fù)雜仿真系統(tǒng)的實際場景中.
表2 初次選擇組件間語義可組合性程度檢查結(jié)果
表3 第2批選擇的組件間語義可組合性程度檢驗結(jié)果
研究了組合建模的語義可組合性問題.提出應(yīng)用本體描述組件語義,研究應(yīng)用組件間語義關(guān)系描述組件語義信息.組件間語義關(guān)系被區(qū)分為橫向語義和縱向語義關(guān)系.將語義信息分為一般語義和特殊語義,并深入地研究了語義的內(nèi)部結(jié)構(gòu).最后提出了基于本體的逐層語義檢驗算法.利用一個仿真實例驗證了該算法的實用性.