毛金玲
(遼寧建筑職業(yè)學院,遼寧遼陽 111000)
OWL本體存儲工具模塊的包和類的詳細設計研究
毛金玲
(遼寧建筑職業(yè)學院,遼寧遼陽 111000)
本文基于關系數(shù)據(jù)庫的OWL本體存儲工具的模塊設計,模塊對應為Java語言中包的概念,每個包對應著一個模塊,功能相近或聯(lián)系緊密的模塊合并,放在一個包中。在所有類當中,屬性的訪問權(quán)限都是嚴格控制的,一般設置為private。對于所有的private屬性,在類中均提供訪問接口getter,對于有需要通過構(gòu)造函數(shù)以外的函數(shù)賦值的屬性,提供賦值器setter,完成賦值操作。
OWL本體 模塊設計 詳細設計
該基于關系數(shù)據(jù)庫的OWL本體存儲工具的模塊設計如圖1所示。
本軟件按照圖1的模塊設計,可將模塊對應為Java語言中包的概念,每個包對應著一個模塊,功能相近或聯(lián)系緊密的模塊合并,放在一個包中?,F(xiàn)對各個包和每個包中的類做如下的詳細設計。
2.1ren.Data包
這個包中的中間數(shù)據(jù)模型包括了如下類:ClassItem(本體中類的數(shù)據(jù)模型)、Classes(所有類的集合)、ClassesRelationItem(類之間關系的數(shù)據(jù)模型)、ClassesRelation(所有類之間關系的集合)、Class OneOfItem(oneOf關系的數(shù)據(jù)模型)、ClassOneOf(所有oneOf關系的集合)、ClassHasKeyItem(HasKey關系的數(shù)據(jù)模型)、ClassHasKey (所有HasHey關系的集合)、ClassOperationItem(類之間運算關系的數(shù)據(jù)模型)、ClassOperation(所有類之間運算關系的集合)、Data(工具類,包含整個中間數(shù)據(jù)模型的完整元素)、Head(OWL本體頭部的數(shù)據(jù)模型)、IDAndRest(工具類,解決函數(shù)返回多個值的問題)、Indi vidualItem(個體的數(shù)據(jù)模型)、Individual(所有個體的集合)、Indiv idualsRelationItem(個體之間關系的數(shù)據(jù)模型)、IndividualsRelat ion(所有個體之間關系的集合)、PropertiesRelationItem(屬性之間關系的數(shù)據(jù)模型)、PropertiesRelation(所有屬性之間關系的集合)、Pr operty(本體屬性的數(shù)據(jù)模型)、Properties(所有本體屬性的集合)、R esourceItem(本體資源的數(shù)據(jù)模型)、Resource(所有本體資源的集合)、Restriction(匿名類以及基數(shù)限制的數(shù)據(jù)模型)、Restrictions(所有匿名類以及基數(shù)限制的集合)、SQLs(所有SQL語句的集合)。
2.2ren.RDBOperator包
RDBOperator。功能:此類作為數(shù)據(jù)庫操作模塊中唯一的類,完成了通過JDBC技術(shù)連接數(shù)據(jù)庫以及對數(shù)據(jù)庫進行操作的功能。
函數(shù):為簡化代碼,提高代碼的重用率,這個類中只設計了一個函數(shù),函數(shù)頭為public boolean operate(String sentence,String method),其中,形參sentence表示要執(zhí)行的SQL語句,可為create或insert等,因?qū)崿F(xiàn)時SQL語句的種類不同導致代碼執(zhí)行方式不同,故用method表示執(zhí)行的方式。函數(shù)的返回值為boolean類型,執(zhí)行成功則返回true,失敗則返回false。
2.3ren.ReaderAndAnalyser包
(1)AFileReader。功能:此類作為文件讀取模塊中的唯一類,完成了通過Java語言的IO操作對存儲有OWL本體的文本文件讀取內(nèi)容并存儲的操作。
屬性:File類型的變量file表示存儲這OWL本體的源文件,通過構(gòu)造函數(shù)傳入。Vector<String>類型的向量變量text存放本體源文件的字符串向量,讀取到的每一行作為一個元素加入其中。
函數(shù):此類中最重要的函數(shù)為void類型的readFile()函數(shù),此函數(shù)通過輸入流對文件對象file中的內(nèi)容進行讀取,同時存儲到text向量中。
此類還提供了獲得text的訪問接口public Vector<String>getText()。
(2)Analyser。功能:此類為文檔解析模塊和映射轉(zhuǎn)化模塊合并后的類。因為中間數(shù)據(jù)模型已經(jīng)定義好,故在對OWL本體源文件進行解析的同時,可將解析的結(jié)果存儲到中間數(shù)據(jù)模型中,也就是在解析的同時完成了從OWL本體到中間數(shù)據(jù)模型的映射,將兩個模塊合并操作可簡化程序,提高執(zhí)行效率。此類也是本軟件中最重要的類之一。
屬性:Vector<String>類型的變量strings表示存儲著OWL本體源文件的字符串向量,與AFileReader類中的text相對應,通過構(gòu)造函數(shù)獲得。boolean類型的syntax是判斷本體語法是否符合格式的變量。Vector<Sring>類型的向量results用于存儲解析后的結(jié)果,可在界面操作模塊調(diào)用,在用戶界面上顯示出每條公理的詳細解析結(jié)果,并附有注釋說明。
(3)SQLAnalyser。功能:此類將SQL語句進行分析,結(jié)果是存儲了字段名稱或者是字段值的向量Vector<String>,此類的結(jié)果在用戶界面上不直接顯示,其目的在于為用戶界面中模擬映射轉(zhuǎn)化后的關系數(shù)據(jù)庫中的表提供數(shù)據(jù),即存有每個表字段名和每條記錄中的
圖1 基于關系數(shù)據(jù)庫的OWL本體存儲工具模塊設計圖
············字段值的字符串向量。
函數(shù):由于SQL語句中的create語句格式固定,例如“create table Resource_Table(resourceID int,resourceName varchar(20),resourceType varchar(20),primary key(resourceID))”,故設計一個函數(shù)public Vector<String> analyseCreate(String create)即可實現(xiàn);而對于SQL語句中的insert語句,因有是否指定插入順序的兩種格式。
在所有類當中,屬性的訪問權(quán)限都是嚴格控制的,一般設置為private,對于所有的private屬性,在類中均提供訪問接口getter,對于有需要通過構(gòu)造函數(shù)以外的函數(shù)賦值的屬性,提供賦值器setter,完成賦值操作。對以上所有類中的Vector和ArrayList類型的向量屬性,因?qū)傩缘脑L問權(quán)限是private,且沒有setter接口,故對所有向量屬性提供add方法,用于向向量中添加元素。
[1]甘健侯,姜躍,夏幼明.本體方法及其應用[M].北京:科學出版社, 2011.
[2]朱姬鳳,馬宗民,呂艷輝.OWL本體到關系數(shù)據(jù)庫模式的映射[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.