OWL本体存储工具模块的包和类的详细设计研究
2015-05-28毛金玲
毛金玲
【摘 要】本文基于关系数据库的OWL本体存储工具的模块设计,模块对应为Java语言中包的概念,每个包对应着一个模块,功能相近或联系紧密的模块合并,放在一个包中。在所有类当中,属性的访问权限都是严格控制的,一般设置为private。对于所有的private属性,在类中均提供访问接口getter,对于有需要通过构造函数以外的函数赋值的属性,提供赋值器setter,完成赋值操作。
【关键词】OWL本体 模块设计 详细设计
1 模块设计
该基于关系数据库的OWL本体存储工具的模块设计如图1所示。
图1 基于关系数据库的OWL本体存储工具模块设计图
2 详细设计
本软件按照图1的模块设计,可将模块对应为Java语言中包的概念,每个包对应着一个模块,功能相近或联系紧密的模块合并,放在一个包中。现对各个包和每个包中的类做如下的详细设计。
2.1 ren.Data包
这个包中的中间数据模型包括了如下类:ClassItem(本体中类的数据模型)、Classes(所有类的集合)、ClassesRelationItem(类之间关系的数据模型)、ClassesRelation(所有类之间关系的集合)、ClassOneOfItem(oneOf关系的数据模型)、ClassOneOf(所有oneOf关系的集合)、ClassHasKeyItem(HasKey关系的数据模型)、ClassHasKey(所有HasHey关系的集合)、ClassOperationItem(类之间运算关系的数据模型)、ClassOperation(所有类之间运算关系的集合)、Data(工具类,包含整个中间数据模型的完整元素)、Head(OWL本体头部的数据模型)、IDAndRest(工具类,解决函数返回多个值的问题)、IndividualItem(个体的数据模型)、Individual(所有个体的集合)、IndividualsRelationItem(个体之间关系的数据模型)、IndividualsRelation(所有个体之间关系的集合)、PropertiesRelationItem(属性之间关系的数据模型)、PropertiesRelation(所有属性之间关系的集合)、Property(本体属性的数据模型)、Properties(所有本体属性的集合)、ResourceItem(本体资源的数据模型)、Resource(所有本体资源的集合)、Restriction(匿名类以及基数限制的数据模型)、Restrictions(所有匿名类以及基数限制的集合)、SQLs(所有SQL语句的集合)。
2.2 ren.RDBOperator包
RDBOperator。功能:此类作为数据库操作模块中唯一的类,完成了通过JDBC技术连接数据库以及对数据库进行操作的功能。
函数:为简化代码,提高代码的重用率,这个类中只设计了一个函数,函数头为public boolean operate(String sentence,String method),其中,形参sentence表示要执行的SQL语句,可为create或insert等,因实现时SQL语句的种类不同导致代码执行方式不同,故用method表示执行的方式。函数的返回值为boolean类型,执行成功则返回true,失败则返回false。
2.3 ren.ReaderAndAnalyser包
(1)AFileReader。功能:此类作为文件读取模块中的唯一类,完成了通过Java语言的IO操作对存储有OWL本体的文本文件读取内容并存储的操作。
属性:File类型的变量file表示存储这OWL本体的源文件,通过构造函数传入。Vector
函数:此类中最重要的函数为void类型的readFile()函数,此函数通过输入流对文件对象file中的内容进行读取,同时存储到text向量中。
此类还提供了获得text的访问接口public Vector
(2)Analyser。功能:此类为文档解析模块和映射转化模块合并后的类。因为中间数据模型已经定义好,故在对OWL本体源文件进行解析的同时,可将解析的结果存储到中间数据模型中,也就是在解析的同时完成了从OWL本体到中间数据模型的映射,将两个模块合并操作可简化程序,提高执行效率。此类也是本软件中最重要的类之一。
属性:Vector
(3)SQLAnalyser。功能:此类将SQL语句进行分析,结果是存储了字段名称或者是字段值的向量Vector
函数:由于SQL语句中的create语句格式固定,例如“create table Resource_Table(resourceID int,resourceName varchar(20),resourceType varchar(20),primary key(resourceID))”,故设计一个函数public Vector
3结语
在所有类当中,属性的访问权限都是严格控制的,一般设置为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.