唐绍华
摘 要随着智能家居数据规模的不断增大,结构清晰、查询效率高、语义完整,可扩展性好的本体存储模式是解决现代家居本体共享和重用的有效方法,通过分析智能家居中本体存储方法的不足,结合智能家居领域本体特点,给出了一种基于关系数据库特点的存储智能家居本体的关系模式,最后通过实例证明了该方案的有效性和可行性。
关键词智能家居 本体存储 关系数据库
一、引 言
智能家居以住宅为平台,利用计算机、物联网、网络通信等技术将智能家居用户生活有关的设备集成的智能管理系统,从而提升家居安全性、便利性、舒适性、艺术性。本体是共享概念化明确的形式化规范,由哲学概念引入到人工智能领域,智能家居系统所采集的数据包括传感器的数据、设备本身的运行状态数据、用户和设备交互的数据,客户端产生的数据、用户自身的使用习惯和生活场景数据等等,随着智能家居数据规模的不断增大及语义Web的快速发展和广泛应用,选择一種合适的本体存储方法尤为重要。
本文在分析传统本体存储方法的基础之上,提出了一种结构清晰、查询效率高、语义完整,可扩展性好的基于改进的关系数据库的方法实现对本体进行存储,最后通过相关的实验验证了该理论的可行性和有效性。
二、相关研究
目前,国内外的很多专家和学者对本体的存储问题已经进行了相关的研究并取得了一定的成就,主要包括文本式存储、内存式存储、关系数据库式存储、基于面向对象数据库存储、基于图数据库的存储。
(1)基于内存的存储方式。基于内存存储方式具有很高的运行效率,不存在磁盘更新的问题,但只能处理很少量的数据,记忆能力差,主要适用于小规模本体的高效存储管理。
(2)文本存储方式。文本方式简单快捷、管理方便、可扩展性好,能完整保留语义下信息,但查询性能差,系统效率低,很难适应大数据量的存储。
(3)关系数据库式存储。基于关系数据库技术成熟,较好的事物处理能力和访问机制,能充分利用SQL语言的优势,是目前本体存储管理本体的主要方式;但也存在如与本体之间存在模式不匹配、存储模式设计复杂,可扩展性和语义支持较差等问题,传统的基于关系模式的存储模式主要有水平模式、垂直模式、分解模式和混合模式四种。
(4)基于面向对象数据库存储。基于面向对象数据库与面向对象技术能很好对接,不需要对本体进行拆分或转换,语义完整性 较高,本体查询效率高,但在存储复杂关系本体时有些不足,推理能力不强,学术界已有相关研究,但研究不多,具有一定的研究潜力,在本体存储系统中也有部分应用。
(5)基于图数据库的存储。基于图的存储方式能解决本体与本体存储介质逻辑结构不匹配的问题,应用在小规模查询上,性能较高,一旦应用于大规模的智能家居系统性能会急剧下降,无法提高总TPS,不适合大规模的数据计算。
关系数据库并不是本体存储最佳方式,本体中有丰富的语义信息,其逻辑性比关系模式复杂,但是关系数据库有着相对成熟的技术作为支撑,有很多中间软件可以配合其一起使用,适合大规模数据存储,其特点是效率高、易管理、便于查找。
三、设计规则
在智能家居本体模型构建过程中,采用了从整体到部分,从上到下的方式来对智能家居领域知识进行分类和提取,在智能家居体系中,可以分为用户本体、环境本体和设备本体,根据关系数据库和智能家居本体的特点,设计一个合适的关系数据库存储智能家居本体,需要满足以下原则。
原则 1:较好的规范化程度,设计出的存储模式需要满足3NF 和BCNF要求,尽量避免同名异义和同义异名的情况,以实现对本体数据的有效管理和应用。
原则 2:模式结构清晰,易于理解,能够提高查询效率,有利于相互交流,方便开发人员设计实现。
原则 3:模式结构稳定,为了实现海量和动态存储智能家居本体,存储模式具有较好的稳定性,即本体的变化不会引起或者微弱影响着数据库表结构的变化,从而增加数据库系统的维护代价。
原则 4:较高的查询效率。存储的最终目的就是进行查询,所以该指标是衡量存储模式好坏的一个重要标准。当一个表中的数据量过大或表连接过多时,都将影响查询效率,所以在设计存储模式时应该避免此类问题。
原则 5:为重要的概念单独创建表。包括本体中的类、属性、类关系中的父類、子类、类实例、属性实例等,从而减少表与表之间的连接,提高查询效率。
原则 6:对词频度低的概念合并处理。如对不同的约束信息通过模式的设计,查询频率较低,在设计时可以将其存储在同一张表中,从而减少关系数据库中表的个数,提高存储效率。
原则 7:对同一概念的不同情况灵活处理。如对于属性这一概念,在存储属性实例时,将数据类型属性实例与对象属性实例分开存储,这主要考虑到后者相比较前者而言,查询频度高,动态变化较大;在存储属性关系时,考虑到属性关系分为两种,如果分开存储将会产生四张表,加上其查询频度不高,所以就不区分。
四、关系模式设计
根据智能家居本体存储模式设计规则,结合 OWL 语法的构词分析和关系数据库存储数据的特点,并在保证 OWL 语义完整性的基础上,提出如下的关系数据库存储智能家居本体的设计模式。
(1)设计思路
①类的存储。设计表classes存储本体类信息,包括类编号、类名,其中类编号是主键;
②属性的存储。设计表property存储本体属性,包括属性编号、属性名、定义域、值域,其中属性编号是主键,定义域是外键,值域存放属性的取值范围;
③实例的存储。实例存储包括类实例存储和属性实例存储,类实例存储:设计表InstanceClass存储类实例,包括编号、实例名称、类编号,其中类编号是外键;属性实例存储:设计表InstanceDataTypeProperty存储数据属性,包括属性编号、实例编号、实例属性值,其中属性编号和实例编号组成主键;设计表InstanceObjectProperty存储对象属性,包括属性编号、实例A编号、实例B编号,实例A和实例B表示对象属性联系的两个实例
④关系的存储。
类关系的存储:设计表SubClassRelation 和OtherClassRelation分别存储父子类关系(subclass or super class)和其他类关系如等价类(equivalent class)、不相交类(disjoint class),其中表SubClassRelation主要包括父类ID、子类ID,表OtherClassRelation主要包括类编号、类关系类型、类关系描述;
属性关系的存储:属性之间的关系可以分为子属性/父属性关系(sub property or super property)、等价关系(equivalent property)、不相交关系(disjoint property)、翻转关系(inverse of)、传递关系(transitive)、对称关系(symmetric)、函数关系(functional)、逆函数关系(inverse functional)等几类,因为子属性/父属性关系、等价关系、翻转关系和不相交关系是表达两个关系之间的关系,是双目运算,而其他四个属性表达的是一个属性的特性,是单目运算,所以在存储时将两者分开存储在Unary Property Relation和Dual Property Relation中,设计表UnaryPropertyRelation存储属性关系,包括属性关系类型(传递、对称、函数和逆函数关系四种)、属性编号,其中属性关系类型包括传递、对称、函数和逆函数关系四种,设计表UnaryPropertyRelation存储其他属性关系(父子属性关系、等价关系、翻转关系和不相交关系四种),包括属性关系类型、属性A编号、属性B编号;
实例关系的存储:设计表InstanceRelation存储本体实例关系,包括实例关系类型、实例A编号、实例B编号,两个实例之间的关系可以分为相同实例(same individual as)、不同实例(different from)两种。
⑤约束关系的存储:OWL中的约束包括all Values From、some Values From、min Cardinality、max Cardinality以及has Value等,设计表Restriction存储本体约束关系,包括约束类型、属性编号、约束描述信息。
(2)模式结构
①classes(classId,name) ②property(propertyId,name,domain,range)
③InstanceClass(ID,Name,ClassID) ④InstanceDataTypeProperty(PropertyID,InstanceID,Value)
⑤InstanceObjectProperty(PropertyID,InstanceAID,InstanceBID) ⑥SubClassRelation(SubClassID,SuperClassID)
⑦OtherClassRelation(ClassID,ClassRelationType,ClassRelationDescription)⑧UnaryPropertyRelation(PropertyRelationType,PropertyID)⑨DualPropertyRelation(PropertyRelationType,PropertyAID,PropertyBID)⑩InstanceRelation(InstanceRelationType,InstanceAID,InstanceBID)?Restriction(RestrictionType,PropertyID,RestrictionDescription)
本文提出的设计模式有以下几个特点:尽可能的保留了本体的语义信息,并使用 OWL 自身的语法元素作為表名或字段名;模式结构简单,易于理解,能够明确地描述本体与本体之间的关系;模式结构稳定,当本体发生变化是,只要增加、修改或删除相应表中的一些元组,不需要对数据库模式进行修改;维护代价较小,根据查询频度,例如对于类之间的三种关系,设计时分为父类子类关系和其他关系进行存储,查询效率明显提高;而五种不同的约束信息的查询频度较低,设计存储在一张表中;根据实际情况,属性实例存储时,分为数据类型属性和对象属性两种存储模式,数据类型属性的变动性较小,同对象属性相比,查询频度也低,如果放在一张表中,将会降低查询和维护效率。
(3)性能优化
为了优化基于关系数据库的智能家居本体的存储和查询效率,可以在关系数据库中建立索引、视图和触发器。索引:对查询频率比较高的字段通过建立索引,如类表、属性表、实例表的主键上建立索引,除此之外,其他表不需要建立除了主键之外的索引;视图:对查询频率较高的数据表可以建立相关视图;数据更新:对于简单的自动删除和更新操作可以通过建立外键约束来实现,对于复杂的更新操作可以通过建立触发器来实现,如父子类表、对象属性表、约束关系表。
五、实验结果与分析
(1)测试方法
本实验设计了 7组数据,测试的本体数据集是建立的智能家居本体,用 protégé 本体编辑器把该本体数据分别以文本模式、垂直模式、混合模式和新设计的基于关系数据库的模式進行存储。每一组使用7 个具体查询来测试存储模式的性能,7 个查询分别为:1) 设备类的所有子类;2) 空调类的所有等价类;3) 用户基本需求属性的所有子属性;4) 用户基本需求属性的定义域是什么;5) 用户基本需求属性的值域是什么;6) 设备类的所有实例是什么;7) 制冷空调实例的当前温度属性的值是什么。
(2)测试结果
对每一条查询进行 100 次,计算所需的时间,实验结果如表1所示。从类、属性和实例 3 个方面对比了 4种模式的性能,发现在相同查询条件的情况下,本文设计的基于关系数据库的存储模式要比垂直模式和 DLDB 混合模式的查询时间短,说明本文设计的基于关系数据库的存储模式查询性能更好,同时由于智能家居领域本体是一个大规模本体,因此说明本文模式在处理大规模本体是具有良好的性能。
六、结 语
对本体存储模式分析的基础上,结合智能家居本体与关系数据库存储本体的特点,提出了一种基于关系数据库的智能家居本体存储模式,该模式可以存储各种类型的智能家居本体,存储本体信息较完整,结构稳定性很好,并能在当前流行的RDBMS 中较好地实现根据语义查询智能家居本体等功能,能利用RDBMS 完整性、索引、视图、触发器和存储过程等技术提高智能家居本体存储和查询效率。
参考文献
[1]全立新. 教育资源本体在关系数据库中的存储方法及其实现[J]. 廊坊师范学院学报(自然科学版),2016,16(02):8-11. [2017-09-30].
[2]刁进. 一种基于语义的用户可配置的智能家居系统的设计与实现[D].南京邮电大学,2015.
[3]胡甜甜,曹旻. 基于本体理论的关系数据库存储模式[J]. 计算机工程与设计,2014,35(09):3075-3079. [2017-09-30]. DOI:10.16208/j.issn1000-7024.2014.09.017
[4]胡曼冬. 基于本体的智能家居关键技术研究[D].中国海洋大学,2014.
[5]王学良. 智能家居领域本体模型的构建与存储方法研究[D].中国海洋大学,2014.