毛金玲
摘要:本文介紹了存儲工具設計的過程,包括模塊設計,數據庫設計,包和類的概要設計以及系統的詳細設計。其中模塊設計將該軟系統計分為三個模塊,分別是數據模塊、控制模塊和視圖模塊。這三個模塊符合了常用的MVC模式,即將數據層、控制器和用戶界面分開設計。
關鍵詞:OWL本體 關系數據庫 數據庫設計
中圖分類號:TP391.1 文獻標識碼:A 文章編號:1007-9416(2014)12-0165-02
1 模塊設計
該基于關系數據庫的OWL本體存儲工具的模塊設計如圖1所示。
2 數據庫設計
數據庫的設計按照OWL本體在關系數據庫中的存儲方式所設計的數據庫結構來進行。
(1)Head表。存儲OWL本體的頭部信息,屬性包括版本信息versionInfo,本體標簽label,本體注釋comment和本體來源imports(如表1)。
(2)Resource_Table表。存儲本體中所有的資源匯總,包括類、數據類型屬性、對象屬性和個體,并為每個資源分配互不相同的ID號碼加以區別。屬性包括資源編號resourceID,資源名稱resource Name,資源類型resourceType。主鍵為resourceID(如表2)。
(3)Property_Field_Table表。存儲每個屬性(數據類型屬性或對象屬性)的主要信息。屬性包括資源編號propertyID,屬性名稱propertyName,屬性類型propertyType,定義域domain,值域range,限制條件restriction。主鍵為propertyID(如表3)。
(4)Property_Relation_Table表。存儲多個屬性之間的關系。屬性為n個屬性編號ProID1,ProID2,……ProIDn,屬性關系relationship(如表4)。
(5)Restriction表。存儲OWL本體中表示數據約束的匿名類以及類公理中表示基數限制的關系和自我限制的關系。屬性為匿名類的資源編號classID,基數限制屬性所屬類編號classID1, 數據約束屬性的資源編號proID,數據約束類型type,數據約束值value。主鍵為(classID,proID)(如表5)。
(6)Class_Relation_Table表。存儲多個類之間的關系,屬性為n個類資源編號ClassID1,ClassID2……ClassIDn,類之間的關系relationship(如表6)。
(7)Class_Operation_Table表。存儲類公理中定義一個類時,主類與其他類(包括匿名類)之間的關系。屬性為主類的資源編號ClassID,主類和其他類之間的關系type,n個從類編號 ClassID1,ClassID2……ClassIDn(如表7)。
(8)Class_OneOf_Table表。存儲EnumeratedClass(A one of(…))公理中的oneOf關系。屬性為類的資源編號ClassID,關系類型type,n個個體編號IndividualID1,IndividualID2……IndividualIDn(如表8)。
(9)Class_HasKey_ Table表。存儲HasKey公理。屬性為類的資源編號ClassID,關系類型type,n個屬性編號PropertyID1,PropertyID2……PropertyIDn(如表9)。
(10)Individual_Class_Relation_Table表。存儲類和類的個體之間的關系。屬性為類的資源編號classID,個體的資源編號IndividualID,主鍵為(classID,IndividualID)(如表10)。
(11)Individual_Relation_Table表。存儲了多個個體之間的SameIndividual(相等個體)和DifferentIndividuals(不等個體)關系以及否定的對象屬性斷言和否定的數據屬性斷言。屬性為n個個體編號IndividualID1,IndividualID2……IndividualIDn,否定數據屬性斷言中的文本text,個體之間的關系relationship,屬性編號propertyid(如表11)。
3 包和類的概要設計
本軟件按照模塊設計,可將模塊對應為Java語言中包的概念,每個包對應著一個模塊,功能相近或聯系緊密的模塊合并,放在一個包中。現對各個包和每個包中的類做如下概要說明。
3.1 ren.Data包
這個包中的類為本軟件的中間數據模型,用于在分析OWL本體的源文件后存儲分析結果,為生成SQL語句提供數據基礎。
3.2 ren.RDBOperator包
此包表示的是數據庫操作模塊,程序調用此模塊,只需導入需要執行的SQL語句,即可對關系數據庫進行操作,而不用在程序中的在其他位置以其它方式對數據庫進行操作,保證內部對外屏蔽,留有操作接口即可,從而保證了操作數據庫的安全性,提高了代碼的重用率,便于實現和維護。
此包中只包含一個類RDBOperator完成以上功能。
3.3 ren.SQL包
此包對應的是SQL語句生成模塊。通過調用中間數據模型,按照SQL語言的語法規則,按照章節4.2的數據庫設計,生成各個表的創建語句和插入語句。
SQLMaker是SQL語句生成模塊的唯一類。
3.4 ren.UI包
此包表示的是顯示操作模塊和視圖模塊的集合。此包中的類可以繪制用戶界面,同時控制程序的流程。具體通過Java語言提供的Swing組件進行繪制,并利用事件監聽機制來獲取用戶的操作,對數據進行處理。因此其功能是顯示操作模塊和視圖模塊的結合體。
OWLToRDBManager類為基于關系數據庫的OWL本體存儲工具的用戶界面的繪制類,用于完成繪制工具窗體、初始化工具說明、添加菜單欄、為工具窗體的主要控件添加監聽器等操作。此類中最重要的函數是initial(JFrame frame)函數,用于初始化界面,并為菜單欄中的菜單項(如打開文件、退出、顯示版本信息等)添加監聽器和執行函數。
類MainPanel包括顯示操作模塊和視圖模塊兩個模塊。視圖模塊作為主顯示區域,包含顯示操作的模塊,控制程序的主流程。paint()用于繪制用戶界面、控制并添加監聽器來獲取用戶操作和執行處理,operations()函數用于繪圖后完成主要工作。 treeMaker(Data data),該函數是模型參數的中間數據中的data來創建一個樹結構中存儲的數據的使用。 initialTable()函數是用來設置模擬的關系數據庫中的表中的表的內容的用戶界面。
4 結語
本文介紹了存儲工具設計的過程,包括模塊設計,數據庫設計,包和類的概要設計以及系統的詳細設計。其中模塊設計將該軟系統計分為三個模塊,分別是數據模塊、控制模塊和視圖模塊。這三個模塊符合了常用的MVC模式,即將數據層、控制器和用戶界面分開設計。
參考文獻
[1]余永紅.Java程序設計教程[M].北京:機械工業出版社,2008.
[2]Grau B C, Horrocks I, Motik B, et al. OWL 2: The next step for OWL[J]. Web Semantics: Science,Services and Agents on the World Wide Web,2008,6(4):309-322.endprint