APP下载

OWL本体存储工具模块的包和类的详细设计研究

2015-05-28毛金玲

中国科技纵横 2015年9期
关键词:模块设计

毛金玲

【摘 要】本文基于关系数据库的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类型的向量变量text存放本体源文件的字符串向量,读取到的每一行作为一个元素加入其中。

函数:此类中最重要的函数为void类型的readFile()函数,此函数通过输入流对文件对象file中的内容进行读取,同时存储到text向量中。

此类还提供了获得text的访问接口public Vector getText()。

(2)Analyser。功能:此类为文档解析模块和映射转化模块合并后的类。因为中间数据模型已经定义好,故在对OWL本体源文件进行解析的同时,可将解析的结果存储到中间数据模型中,也就是在解析的同时完成了从OWL本体到中间数据模型的映射,将两个模块合并操作可简化程序,提高执行效率。此类也是本软件中最重要的类之一。

属性:Vector类型的变量strings表示存储着OWL本体源文件的字符串向量,与AFileReader类中的text相对应,通过构造函数获得。boolean类型的syntax是判断本体语法是否符合格式的变量。Vector类型的向量results用于存储解析后的结果,可在界面操作模块调用,在用户界面上显示出每条公理的详细解析结果,并附有注释说明。

(3)SQLAnalyser。功能:此类将SQL语句进行分析,结果是存储了字段名称或者是字段值的向量Vector,此类的结果在用户界面上不直接显示,其目的在于为用户界面中模拟映射转化后的关系数据库中的表提供数据,即存有每个表字段名和每条记录中的字段值的字符串向量。

函数:由于SQL语句中的create语句格式固定,例如“create table Resource_Table(resourceID int,resourceName varchar(20),resourceType varchar(20),primary key(resourceID))”,故设计一个函数public Vector analyseCreate(String create)即可实现;而对于SQL语句中的insert语句,因有是否指定插入顺序的两种格式。

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.

猜你喜欢

模块设计
汽车销售行业中数据挖掘技术的应用
基于小型ERP管理系统
爬壁机器人应用嵌入式控制的探讨
针织横机生产CAPP软件开发系统主要功能模块设计
舆情监测系统设计
一种基于DDS的信号源的设计与实现