毛金玲
(遼寧建筑職業學院,遼寧遼陽 111000)
OWL本體存儲工具模塊的包和類的詳細設計研究
毛金玲
(遼寧建筑職業學院,遼寧遼陽 111000)
本文基于關系數據庫的OWL本體存儲工具的模塊設計,模塊對應為Java語言中包的概念,每個包對應著一個模塊,功能相近或聯系緊密的模塊合并,放在一個包中。在所有類當中,屬性的訪問權限都是嚴格控制的,一般設置為private。對于所有的private屬性,在類中均提供訪問接口getter,對于有需要通過構造函數以外的函數賦值的屬性,提供賦值器setter,完成賦值操作。
OWL本體 模塊設計 詳細設計
該基于關系數據庫的OWL本體存儲工具的模塊設計如圖1所示。
本軟件按照圖1的模塊設計,可將模塊對應為Java語言中包的概念,每個包對應著一個模塊,功能相近或聯系緊密的模塊合并,放在一個包中?,F對各個包和每個包中的類做如下的詳細設計。
2.1ren.Data包
這個包中的中間數據模型包括了如下類:ClassItem(本體中類的數據模型)、Classes(所有類的集合)、ClassesRelationItem(類之間關系的數據模型)、ClassesRelation(所有類之間關系的集合)、Class OneOfItem(oneOf關系的數據模型)、ClassOneOf(所有oneOf關系的集合)、ClassHasKeyItem(HasKey關系的數據模型)、ClassHasKey (所有HasHey關系的集合)、ClassOperationItem(類之間運算關系的數據模型)、ClassOperation(所有類之間運算關系的集合)、Data(工具類,包含整個中間數據模型的完整元素)、Head(OWL本體頭部的數據模型)、IDAndRest(工具類,解決函數返回多個值的問題)、Indi vidualItem(個體的數據模型)、Individual(所有個體的集合)、Indiv idualsRelationItem(個體之間關系的數據模型)、IndividualsRelat ion(所有個體之間關系的集合)、PropertiesRelationItem(屬性之間關系的數據模型)、PropertiesRelation(所有屬性之間關系的集合)、Pr operty(本體屬性的數據模型)、Properties(所有本體屬性的集合)、R esourceItem(本體資源的數據模型)、Resource(所有本體資源的集合)、Restriction(匿名類以及基數限制的數據模型)、Restrictions(所有匿名類以及基數限制的集合)、SQLs(所有SQL語句的集合)。
2.2ren.RDBOperator包
RDBOperator。功能:此類作為數據庫操作模塊中唯一的類,完成了通過JDBC技術連接數據庫以及對數據庫進行操作的功能。
函數:為簡化代碼,提高代碼的重用率,這個類中只設計了一個函數,函數頭為public boolean operate(String sentence,String method),其中,形參sentence表示要執行的SQL語句,可為create或insert等,因實現時SQL語句的種類不同導致代碼執行方式不同,故用method表示執行的方式。函數的返回值為boolean類型,執行成功則返回true,失敗則返回false。
2.3ren.ReaderAndAnalyser包
(1)AFileReader。功能:此類作為文件讀取模塊中的唯一類,完成了通過Java語言的IO操作對存儲有OWL本體的文本文件讀取內容并存儲的操作。
屬性:File類型的變量file表示存儲這OWL本體的源文件,通過構造函數傳入。Vector<String>類型的向量變量text存放本體源文件的字符串向量,讀取到的每一行作為一個元素加入其中。
函數:此類中最重要的函數為void類型的readFile()函數,此函數通過輸入流對文件對象file中的內容進行讀取,同時存儲到text向量中。
此類還提供了獲得text的訪問接口public Vector<String>getText()。
(2)Analyser。功能:此類為文檔解析模塊和映射轉化模塊合并后的類。因為中間數據模型已經定義好,故在對OWL本體源文件進行解析的同時,可將解析的結果存儲到中間數據模型中,也就是在解析的同時完成了從OWL本體到中間數據模型的映射,將兩個模塊合并操作可簡化程序,提高執行效率。此類也是本軟件中最重要的類之一。
屬性:Vector<String>類型的變量strings表示存儲著OWL本體源文件的字符串向量,與AFileReader類中的text相對應,通過構造函數獲得。boolean類型的syntax是判斷本體語法是否符合格式的變量。Vector<Sring>類型的向量results用于存儲解析后的結果,可在界面操作模塊調用,在用戶界面上顯示出每條公理的詳細解析結果,并附有注釋說明。
(3)SQLAnalyser。功能:此類將SQL語句進行分析,結果是存儲了字段名稱或者是字段值的向量Vector<String>,此類的結果在用戶界面上不直接顯示,其目的在于為用戶界面中模擬映射轉化后的關系數據庫中的表提供數據,即存有每個表字段名和每條記錄中的

圖1 基于關系數據庫的OWL本體存儲工具模塊設計圖
············字段值的字符串向量。
函數:由于SQL語句中的create語句格式固定,例如“create table Resource_Table(resourceID int,resourceName varchar(20),resourceType varchar(20),primary key(resourceID))”,故設計一個函數public Vector<String> analyseCreate(String create)即可實現;而對于SQL語句中的insert語句,因有是否指定插入順序的兩種格式。
在所有類當中,屬性的訪問權限都是嚴格控制的,一般設置為private,對于所有的private屬性,在類中均提供訪問接口getter,對于有需要通過構造函數以外的函數賦值的屬性,提供賦值器setter,完成賦值操作。對以上所有類中的Vector和ArrayList類型的向量屬性,因屬性的訪問權限是private,且沒有setter接口,故對所有向量屬性提供add方法,用于向向量中添加元素。
[1]甘健侯,姜躍,夏幼明.本體方法及其應用[M].北京:科學出版社, 2011.
[2]朱姬鳳,馬宗民,呂艷輝.OWL本體到關系數據庫模式的映射[J].計算機科學,2008,35(8):165-169.
[3]Vysniauskas E, Nemuraite L, Sukys A. A hybrid approach for relating OWL 2 ontologies and relational databases[M]//Perspectives in Business Informatics Research. Springer Berlin Heidelberg, 2010: 86-101.