张小丽
摘要:提出了一种可以精确表达智能家居设备语义数据的方法,该智能家居的语义网关是在Android平台上采用语义网技术、protégé本体和开源的SWIP架构并结合Andorid Content Provider构建而成的,把无语义的智能家居数据转换成有语义的智能家居数据,用户可通过本地的RDF Browser或者浏览器实时获取有语义数据的智能家居设备,实现不同厂商的智能家居设备的语义融合。
关键词:智能家居网络;语义网关;SWIP框架;本体;Android
中图分类号:TP274文献标志码:A文章编号:1008-1739(2018)20-68-4
An Implement Method of Semantic Gateway for Home Automation Networks
ZHANG Xiaoli(The 2nd Middle School of Ordos, Ordos Inner Mongolia 017000, China)
0引言
互聯网的海量数据给人们带来了许多困扰,为了使网络能够给用户提供更加智能化的服务,万维网的创始人Tim Berners-Lee于2001年正式提出了基于本体的语义网概念[1]。语义网的核心思想是通过使用机器可以理解的元数据语言来描述网络信息资源内容[2],从而使网络应用程序通过检索基于不同规则的信息语义来表达信息。
目前,大多数的智能家居生产厂家都有自己的协议标准,很难实现设备间的数据融合[3]。为了解决智能家居设备语义数据融合的问题,有2个主要的难题需要攻克:①如何统一由不同生产厂家协议标准不同而产生的数据格式;②如何精准地表达智能家居设备的语义数据。为了解决第2个难题,通过采用基于本体的语义技术,提出了一种基于智能家居网络的语义网关设计方法。
1智能家居语义网关总体实现方案
1.1智能家居网络系统的总体设计
本文所设计的智能家居网络系统由一个智能家居语义网关和信息家电系统组成,其中信息家电系统包含温湿度传感器、光照传感器、空调、冰箱及电视5个家居设备。
与传统的智能家居网关相比,该智能家居语义网关主要实现4个功能:①在家庭中通过局域网的方式将信息家电系统的各个设备接入到智能家居语义网关中,对各个设备传来的无语义数据进行存储;②将无语义数据转换成语义数据;③允许用户通过基于Android操作系统的平板电脑或者手机语义网关设备浏览语义数据;④将用户语义网关数据作为外部数据链接供其他用户在浏览器上访问。
1.2智能家居语义网关的功能组成
智能家居语义网关的功能组件如图1所示。由六大功能模块组成,分别是智能家居设备数据采集模块、数据存储模块、数据访问接口模块、语义数据转换接口模块、RDF解析接口模块和语义数据浏览及共享模块。其中,数据采集和存储模块主要用来接收、解析智能家居设备数据并存入到Android平板的数据库中,数据访问接口模块用来访问数据库中存储的设备无语义数据。
语义网关中的语义数据模块由语义数据转换接口、RDF语义解析接口和语义数据浏览及共享这三大模块构成,并且都是基于Android语义服务框架来构建的。智能家居语义网关通过4个APP实现,与语义网关各模块间的关系如图2所示。
2智能家居语义网关的实现过程
2.1语义网关工作原理
以访问存储在TemProvider数据库表temp_data中第1条温湿度传感器设备记录为例,说明该语义网关的工作原理,如图3所示。
①用户在网页地址栏中输入要该条记录对应的外部Uri(http://域名:端口号+智能家居设备的Authority+路径)并点击搜索,此时会将该请求发送给RDF Server服务器。
②RDF Server服务器接收请求后将外部Uri转换为本地Uri(Content://authority/path),并将本地Uri发送给RDF Content Resolver。
③RDF解析接口模块(RDF Content Resolver)再根据本地Uri查找安装在其上面的所有注册了的语义转换接口,此时满足条件的RDF Temperature and Humidity Sensors Provider将响应该请求查找TemProvider数据库表temp_data中的第1条记录。
④TemProvider返回三元组给RDF Temperature and Humidity Sensors Provider。
⑤RDF Temperature and Humidity Sensors Provider通过哈希表映射返回RDF语义三元组给RDF Content Resolver。
⑥RDF Content Resolver通过Jena的RDF API接口为RDF建模,并将三元组对象放入到模型中,并通过写RDF将语义数据的封装在RDF文件中,最终返回给RDF Server服务器。
⑦RDF Server服务器进而响应用户查看该设备某条记录语义数据的请求将RDF文件返回给用户端。
2.2使用protégé构建温湿度传感器的本体模型
OWL本体文件刻画智能家居设备中涉及到的词汇以及词汇之间的关系,是语义数据转换接口模块输出语义数据的基础[4]。实现智能家居语义数据转换接口之前,需要构建智能家居设备的本体描述文件。根据本体模型建立的方法用prot佴g佴4.3构建的温湿度传感器本体如图4所示,最终生成用本体语言表述该设备属性的Temperature.owl文件,它的Uri为http://localhost/temperature.owl。
2.3构建温湿度传感器的Content Provider
温湿度传感器的Content Provider继承了Android Content Provider,可实现不同设备应用程序间传输结构化的数据,通过query()、insert()、delete()及update()方法,分别实现是对相应的智能家居数据库表中的数据进行查询、插入、删除及更新的操作[5]。语义数据访问接口的应用程序RDF Provider Manager通过该接口来访问数据库表存储的温湿度传感器设备数据。
构建温湿度传感器的Content Provider需经过以下4个步骤:①设计基于Sqlite数据库表,用于存储采集到的温湿度传感器设备数据;②定义TemProvider并为其实现query()、insert()、delete()及update()方法;③定义Provider的Authority,content Uris及列名;④注册用户自定义的Content Provider,并为该Content Provider绑定一个唯一标识的Uri。设置访问权限,允许其他应用程序访问该接口。注册温湿度传感器设备的Cotent Provider,其中,Authority为“com.zxl.homeatuoprovider. temps”,ContentResolver查询TemProvider的数据库表中记录时用唯一标识该记录的Uri[6]。
2.4语义网关的服务层
语义网关服务层的整体架构由RDF * Provider、RDF Server, RDF Content Resolver和RDF Browser组成。各组成部分的功能如下:
1 RDF * Provider:允许智能家居设备数据存储模块中的应用程序的数据暴露为RDF语义数据,供其他应用程序访问。
2 RDF Content Resolver:RDF解析接口模块是访问语义数据的统一接口,作为一个后台服务,主要用于维护已安装的RDF* Provider列表,并从已有的RDF* Provider解析Uri和检索RDF语义数据。
3 RDF Browser:类似于访问数据链接的客户端,通过检索在RDF* Provider注册的设备Uri访问本地的语义网关中的智能家居设备语义数据,RDF Server作为一个Web服务器,将用户语义网关数据作为外部数据链接供其他用户在浏览器上访问。
2.5语义数据的实现
RDFContentProvider該接口允许应用程序将自己的数据暴露为RDF语义数据,以温湿度传感器为例分析语义数据实现过程:①为该传感器构建一个RDFTemperatureandHumidity SensorsProvider类,在该类中创建一个HashMap实例HashMap