毛金玲
【摘 要】本文基于關(guān)系數(shù)據(jù)庫(kù)的OWL本體存儲(chǔ)工具的模塊設(shè)計(jì),模塊對(duì)應(yīng)為Java語(yǔ)言中包的概念,每個(gè)包對(duì)應(yīng)著一個(gè)模塊,功能相近或聯(lián)系緊密的模塊合并,放在一個(gè)包中。在所有類當(dāng)中,屬性的訪問(wèn)權(quán)限都是嚴(yán)格控制的,一般設(shè)置為private。對(duì)于所有的private屬性,在類中均提供訪問(wèn)接口getter,對(duì)于有需要通過(guò)構(gòu)造函數(shù)以外的函數(shù)賦值的屬性,提供賦值器setter,完成賦值操作。
【關(guān)鍵詞】OWL本體 模塊設(shè)計(jì) 詳細(xì)設(shè)計(jì)
1 模塊設(shè)計(jì)
該基于關(guān)系數(shù)據(jù)庫(kù)的OWL本體存儲(chǔ)工具的模塊設(shè)計(jì)如圖1所示。
圖1 基于關(guān)系數(shù)據(jù)庫(kù)的OWL本體存儲(chǔ)工具模塊設(shè)計(jì)圖
2 詳細(xì)設(shè)計(jì)
本軟件按照?qǐng)D1的模塊設(shè)計(jì),可將模塊對(duì)應(yīng)為Java語(yǔ)言中包的概念,每個(gè)包對(duì)應(yīng)著一個(gè)模塊,功能相近或聯(lián)系緊密的模塊合并,放在一個(gè)包中?,F(xiàn)對(duì)各個(gè)包和每個(gè)包中的類做如下的詳細(xì)設(shè)計(jì)。
2.1 ren.Data包
這個(gè)包中的中間數(shù)據(jù)模型包括了如下類:ClassItem(本體中類的數(shù)據(jù)模型)、Classes(所有類的集合)、ClassesRelationItem(類之間關(guān)系的數(shù)據(jù)模型)、ClassesRelation(所有類之間關(guān)系的集合)、ClassOneOfItem(oneOf關(guān)系的數(shù)據(jù)模型)、ClassOneOf(所有oneOf關(guān)系的集合)、ClassHasKeyItem(HasKey關(guān)系的數(shù)據(jù)模型)、ClassHasKey(所有HasHey關(guān)系的集合)、ClassOperationItem(類之間運(yùn)算關(guān)系的數(shù)據(jù)模型)、ClassOperation(所有類之間運(yùn)算關(guān)系的集合)、Data(工具類,包含整個(gè)中間數(shù)據(jù)模型的完整元素)、Head(OWL本體頭部的數(shù)據(jù)模型)、IDAndRest(工具類,解決函數(shù)返回多個(gè)值的問(wèn)題)、IndividualItem(個(gè)體的數(shù)據(jù)模型)、Individual(所有個(gè)體的集合)、IndividualsRelationItem(個(gè)體之間關(guān)系的數(shù)據(jù)模型)、IndividualsRelation(所有個(gè)體之間關(guān)系的集合)、PropertiesRelationItem(屬性之間關(guān)系的數(shù)據(jù)模型)、PropertiesRelation(所有屬性之間關(guān)系的集合)、Property(本體屬性的數(shù)據(jù)模型)、Properties(所有本體屬性的集合)、ResourceItem(本體資源的數(shù)據(jù)模型)、Resource(所有本體資源的集合)、Restriction(匿名類以及基數(shù)限制的數(shù)據(jù)模型)、Restrictions(所有匿名類以及基數(shù)限制的集合)、SQLs(所有SQL語(yǔ)句的集合)。
2.2 ren.RDBOperator包
RDBOperator。功能:此類作為數(shù)據(jù)庫(kù)操作模塊中唯一的類,完成了通過(guò)JDBC技術(shù)連接數(shù)據(jù)庫(kù)以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的功能。
函數(shù):為簡(jiǎn)化代碼,提高代碼的重用率,這個(gè)類中只設(shè)計(jì)了一個(gè)函數(shù),函數(shù)頭為public boolean operate(String sentence,String method),其中,形參sentence表示要執(zhí)行的SQL語(yǔ)句,可為create或insert等,因?qū)崿F(xiàn)時(shí)SQL語(yǔ)句的種類不同導(dǎo)致代碼執(zhí)行方式不同,故用method表示執(zhí)行的方式。函數(shù)的返回值為boolean類型,執(zhí)行成功則返回true,失敗則返回false。
2.3 ren.ReaderAndAnalyser包
(1)AFileReader。功能:此類作為文件讀取模塊中的唯一類,完成了通過(guò)Java語(yǔ)言的IO操作對(duì)存儲(chǔ)有OWL本體的文本文件讀取內(nèi)容并存儲(chǔ)的操作。
屬性:File類型的變量file表示存儲(chǔ)這OWL本體的源文件,通過(guò)構(gòu)造函數(shù)傳入。Vector
函數(shù):此類中最重要的函數(shù)為void類型的readFile()函數(shù),此函數(shù)通過(guò)輸入流對(duì)文件對(duì)象file中的內(nèi)容進(jìn)行讀取,同時(shí)存儲(chǔ)到text向量中。
此類還提供了獲得text的訪問(wèn)接口public Vector
(2)Analyser。功能:此類為文檔解析模塊和映射轉(zhuǎn)化模塊合并后的類。因?yàn)橹虚g數(shù)據(jù)模型已經(jīng)定義好,故在對(duì)OWL本體源文件進(jìn)行解析的同時(shí),可將解析的結(jié)果存儲(chǔ)到中間數(shù)據(jù)模型中,也就是在解析的同時(shí)完成了從OWL本體到中間數(shù)據(jù)模型的映射,將兩個(gè)模塊合并操作可簡(jiǎn)化程序,提高執(zhí)行效率。此類也是本軟件中最重要的類之一。
屬性:Vector
(3)SQLAnalyser。功能:此類將SQL語(yǔ)句進(jìn)行分析,結(jié)果是存儲(chǔ)了字段名稱或者是字段值的向量Vector
函數(shù):由于SQL語(yǔ)句中的create語(yǔ)句格式固定,例如“create table Resource_Table(resourceID int,resourceName varchar(20),resourceType varchar(20),primary key(resourceID))”,故設(shè)計(jì)一個(gè)函數(shù)public Vector
3結(jié)語(yǔ)
在所有類當(dāng)中,屬性的訪問(wèn)權(quán)限都是嚴(yán)格控制的,一般設(shè)置為private,對(duì)于所有的private屬性,在類中均提供訪問(wèn)接口getter,對(duì)于有需要通過(guò)構(gòu)造函數(shù)以外的函數(shù)賦值的屬性,提供賦值器setter,完成賦值操作。對(duì)以上所有類中的Vector和ArrayList類型的向量屬性,因?qū)傩缘脑L問(wèn)權(quán)限是private,且沒(méi)有setter接口,故對(duì)所有向量屬性提供add方法,用于向向量中添加元素。
參考文獻(xiàn):
[1]甘健侯,姜躍,夏幼明.本體方法及其應(yīng)用[M].北京:科學(xué)出版社,2011.
[2]朱姬鳳,馬宗民,呂艷輝.OWL 本體到關(guān)系數(shù)據(jù)庫(kù)模式的映射[J].計(jì)算機(jī)科學(xué),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.