基于关系数据库的OWL本体存储工具的设计
2015-05-04毛金玲
毛金玲
摘要:本文介绍了存储工具设计的过程,包括模块设计,数据库设计,包和类的概要设计以及系统的详细设计。其中模块设计将该软系统计分为三个模块,分别是数据模块、控制模块和视图模块。这三个模块符合了常用的MVC模式,即将数据层、控制器和用户界面分开设计。
关键词:OWL本体 关系数据库 数据库设计
中图分类号:TP391.1 文献标识码:A 文章编号:1007-9416(2014)12-0165-02
1 模块设计
该基于关系数据库的OWL本体存储工具的模块设计如图1所示。
2 数据库设计
数据库的设计按照OWL本体在关系数据库中的存储方式所设计的数据库结构来进行。
(1)Head表。存储OWL本体的头部信息,属性包括版本信息versionInfo,本体标签label,本体注释comment和本体来源imports(如表1)。
(2)Resource_Table表。存储本体中所有的资源汇总,包括类、数据类型属性、对象属性和个体,并为每个资源分配互不相同的ID号码加以区别。属性包括资源编号resourceID,资源名称resource Name,资源类型resourceType。主键为resourceID(如表2)。
(3)Property_Field_Table表。存储每个属性(数据类型属性或对象属性)的主要信息。属性包括资源编号propertyID,属性名称propertyName,属性类型propertyType,定义域domain,值域range,限制条件restriction。主键为propertyID(如表3)。
(4)Property_Relation_Table表。存储多个属性之间的关系。属性为n个属性编号ProID1,ProID2,……ProIDn,属性关系relationship(如表4)。
(5)Restriction表。存储OWL本体中表示数据约束的匿名类以及类公理中表示基数限制的关系和自我限制的关系。属性为匿名类的资源编号classID,基数限制属性所属类编号classID1, 数据约束属性的资源编号proID,数据约束类型type,数据约束值value。主键为(classID,proID)(如表5)。
(6)Class_Relation_Table表。存储多个类之间的关系,属性为n个类资源编号ClassID1,ClassID2……ClassIDn,类之间的关系relationship(如表6)。
(7)Class_Operation_Table表。存储类公理中定义一个类时,主类与其他类(包括匿名类)之间的关系。属性为主类的资源编号ClassID,主类和其他类之间的关系type,n个从类编号 ClassID1,ClassID2……ClassIDn(如表7)。
(8)Class_OneOf_Table表。存储EnumeratedClass(A one of(…))公理中的oneOf关系。属性为类的资源编号ClassID,关系类型type,n个个体编号IndividualID1,IndividualID2……IndividualIDn(如表8)。
(9)Class_HasKey_ Table表。存储HasKey公理。属性为类的资源编号ClassID,关系类型type,n个属性编号PropertyID1,PropertyID2……PropertyIDn(如表9)。
(10)Individual_Class_Relation_Table表。存储类和类的个体之间的关系。属性为类的资源编号classID,个体的资源编号IndividualID,主键为(classID,IndividualID)(如表10)。
(11)Individual_Relation_Table表。存储了多个个体之间的SameIndividual(相等个体)和DifferentIndividuals(不等个体)关系以及否定的对象属性断言和否定的数据属性断言。属性为n个个体编号IndividualID1,IndividualID2……IndividualIDn,否定数据属性断言中的文本text,个体之间的关系relationship,属性编号propertyid(如表11)。
3 包和类的概要设计
本软件按照模块设计,可将模块对应为Java语言中包的概念,每个包对应着一个模块,功能相近或联系紧密的模块合并,放在一个包中。现对各个包和每个包中的类做如下概要说明。
3.1 ren.Data包
这个包中的类为本软件的中间数据模型,用于在分析OWL本体的源文件后存储分析结果,为生成SQL语句提供数据基础。
3.2 ren.RDBOperator包
此包表示的是数据库操作模块,程序调用此模块,只需导入需要执行的SQL语句,即可对关系数据库进行操作,而不用在程序中的在其他位置以其它方式对数据库进行操作,保证内部对外屏蔽,留有操作接口即可,从而保证了操作数据库的安全性,提高了代码的重用率,便于实现和维护。
此包中只包含一个类RDBOperator完成以上功能。
3.3 ren.SQL包
此包对应的是SQL语句生成模块。通过调用中间数据模型,按照SQL语言的语法规则,按照章节4.2的数据库设计,生成各个表的创建语句和插入语句。
SQLMaker是SQL语句生成模块的唯一类。
3.4 ren.UI包
此包表示的是显示操作模块和视图模块的集合。此包中的类可以绘制用户界面,同时控制程序的流程。具体通过Java语言提供的Swing组件进行绘制,并利用事件监听机制来获取用户的操作,对数据进行处理。因此其功能是显示操作模块和视图模块的结合体。
OWLToRDBManager类为基于关系数据库的OWL本体存储工具的用户界面的绘制类,用于完成绘制工具窗体、初始化工具说明、添加菜单栏、为工具窗体的主要控件添加监听器等操作。此类中最重要的函数是initial(JFrame frame)函数,用于初始化界面,并为菜单栏中的菜单项(如打开文件、退出、显示版本信息等)添加监听器和执行函数。
类MainPanel包括显示操作模块和视图模块两个模块。视图模块作为主显示区域,包含显示操作的模块,控制程序的主流程。paint()用于绘制用户界面、控制并添加监听器来获取用户操作和执行处理,operations()函数用于绘图后完成主要工作。 treeMaker(Data data),该函数是模型参数的中间数据中的data来创建一个树结构中存储的数据的使用。 initialTable()函数是用来设置模拟的关系数据库中的表中的表的内容的用户界面。
4 结语
本文介绍了存储工具设计的过程,包括模块设计,数据库设计,包和类的概要设计以及系统的详细设计。其中模块设计将该软系统计分为三个模块,分别是数据模块、控制模块和视图模块。这三个模块符合了常用的MVC模式,即将数据层、控制器和用户界面分开设计。
参考文献
[1]余永红.Java程序设计教程[M].北京:机械工业出版社,2008.
[2]Grau B C, Horrocks I, Motik B, et al. OWL 2: The next step for OWL[J]. Web Semantics: Science,Services and Agents on the World Wide Web,2008,6(4):309-322.endprint