APP下载

基于语义推理的智能家居系统设计与实现

2019-12-16苏晨赵静雅陈梅

电脑知识与技术 2019年30期
关键词:智能家居物联网

苏晨 赵静雅 陈梅

摘要:该文设计了一种基于语义推理的智能家居系统。主要采用了物联网语义推理关键技术和OWL(Ontology WebLanguage,本体网络语言)本体技术,设计了涉及用户安全、生活、健康和娱乐四方面的智能家居系统,搭建了包含所有概念和关系的智能家居本体知识库,编写了基于用户需求的用于语义推理的规则,并搭建了web页面用于智能家居系统的控制与展示。测试结果表明,智能家居本体知识库的构建并由语义推理得到用户需求结果。

关键词:智能家居:语义推理;物联网;OWL;Web

中图分类号:TN392 文献标识码:A

文章编号:1009-3044(2019)30-0082-03

1概述

近些年来,智能化的家电受到广大消费者的热烈欢迎,一整套的涉及家庭各方面设施的智能家居系统能真正地实现家庭生活的智能化。智能家居是以住宅为平台,通过物联网技术将家中的各种设备连接在一起,使他们可以达成自动控制和互联互动,提高家庭环境的安全性、便利性和舒适性。要称之为智能,需要家居系统自动判断环境并据此做出相应的反应而不是依靠人类的操作,这个自动判别与行动的过程也就是智能化的过程。为了实现智能家居的环境判断和互联,可以在物联网中引人语义元素,搭建一个基于语义推理的智能家居系统,使用语义推理来完成自动判别的过程,是未来家居智能化的发展方向。

目前国内已有一些用于研究的智能家居系统规划,例如2000年左右推出的清华同方e-home数字家园和海尔的“e家庭”智能家居系统。e-home数字家园涵盖了家居智能控制器、社区综合管理、网络基础设施、社区“一卡通”和社区信息化服务这些技术实现。e家园的智能化包括三个层次:家庭自动化,将家中的通信设施装置通过网络平台实现互通,并连接到统一管理中心,实现异地监视或外部管理;小区智能化,将小区内家家户户联系在一起,实现家庭智能控制系统互联,并建立信息发布平台和统一管理中心,实现小区内公共设施维护与监控、医疗救助和安防等功能;社区信息化,将社会服务、小区物业和家庭设备管理统一起来,提供更加全面的服务。e家庭的特点可以概括为网络化、智能化、个陛化和人性化,海尔和微软强强联手,共同推出了e家庭软件平台,尽力提高用户的人性化体验。但是总的来说,由于时代和技术的限制,e-home和e家庭只提出了家居智能化的架构和方向而没有实现,但这种方向对我们今天发展智能家居依然起着指引的作用。考虑到物联网和信息产业近些年的发展,新一代的智能家居系统应脱离电力环境的硬性控制,而更多转向软件控制以及虚拟平台管理,这也是我国智能家居系统发展主要考虑的方向。

2智能家居功能分析

家居设施可分为四类:安全防护类、生活服务类、健康服务类、娱乐设施类。因此在设计一个智能家居系统时,首先应确定此智能家居系统包括哪些设施,应完成什么功能,哪些设备之间有联动,需要收集哪些外界信息。系统有两个状态:home-.time和worktime,在worktime时,生活服务类家居设施不会对外界环境做出反应,在hometime时,家居设施才会根据外界环境自动进行打开或关闭等措施,安全防护类设施则在任何时间都正常工作。基于以上原则,提出了一种基于语义推理的智能家居系统设计,功能模块图如图1。

3系统平台功能设计

智能家居本体及推理完成后,为方便用户的使用需要搭建一个智能家居控制平台,所以要对平台的功能进行设计,平台功能可分为前端功能和后台功能两部分,平台功能模块图如图2。

平台的首要功能是展示处理结果,这部分显示在前端,用户可选择手动输入需求环境或者接受默认设置,用户手动输入需求温湿度和pm2.5浓度后,系统将会把本体中原有的规则替换成以用户需求为中心的规则,例如用户输入温度25度,则平台将会判断若此时温度高于25度就打开空调冷风,若温度低于0度则打开壁挂炉,温度高于0度但低于25度则打开空调热风,使得温度向25度靠拢,满足用户需求。用户设置需求后点击提交,就可跳转到下一个页面,展示各个家居设施的运行情况。

后台功能共分为三部分:随机数据产生,家居设施和规则的处理,推理及输出。第一部分是随机数据产生,为了模拟各种环境,当前的环境参数由系统随机产生,每个参数都给了正常生活中的范围,还用变量speciahemp表示着火时高温的特殊情况。家居设施从本体中读人,可在后台程序中进行添加或者删改,但要用于推理还要加入相应规则,同理规则写在本体中,后台程序可读入也可对其进行添加或者删除修改,单以用户设置为例,用户设置需求温度25度,则后台程序将规则修改为使用25度进行判断。有了个体、个体间的关系和规则后,系统可调用推理机进行推理,并将推理结果输出到前端界面。前端负责和用户的交互以及输人和输出的展示,后台负责了本体的调用和整个系统的数据处理。

本体的创建选择了Protege软件5.2.0版本,Protege软件是斯坦福大学医学院生物信息研究中心基于Java语言开发的本体编辑和知识获取软件,是一种本体开发工具,也是基于知识的编辑器,且代码开源。这个软件主要用于语义网中本体的构建,是语义网中本体构建的核心开发工具,现在的最新版本为5.2.0版本。

Protege软件有三大优点:第一是本体创建方便快捷且全面,Protege提供了本体概念类、关系、属性和实例的构建,采用图形化界面,便于操作,用户通过点击对类和关系进行编辑,并且屏蔽了具体的本体描述语言,支持中文,用户只需在概念层次上进行领域本体模型的構建,因此适用于初学者。Protege提供全面的本体创建元素包括类,关系属性,数据属性和个体,除此之外还拥有丰富的可扩展性,可以使用插件或者基于Java的API进行扩展,例如使用Graphviz可以展现拓扑图,对用户友好。第二是可以进行推理,Protege 5.2.0版本可以使用SWRLTab写入规则并且自带推理机,用户可直接在Protege中搭建本体并建立规则,然后使用推理机推理并检查推理结果是否正确,语义推理的整个过程都可以在Protege中完成,适合本次毕业设计使用。第三则是因为Protege是开源软件,易于调用且更新快。

推理机大致可分为通用的面向低层次的CLISP推理机Jess和针对本体语言的推理机例如Rac-er、FaCT、KAON2、Pellet和Jena。

CLISP是一种基础性的正向推理引擎,许多上层的推理任务都要映射到它运行,因此只要被提供特有领域规则和知识,CLISP原则上可以处理各种类型的推理任务。其中Jess是基于Java语言的CLISP推理机,也是最常用的推理机,由于更偏低层,所以扩展性和兼容性非常好,但也随之带来优化困难的问题,而且大量的中间数据导致空间效率很低。因此已经确定使用OWL本体的推理任务还是应该选择在针对本体的效率更高的推理机。

Racer、FaCT、KAON2、Penet和Jena是针对本体的推理机。其中KAON2可以直接调用API,但配置过程比较复杂;FaCT和Racer都需要使用DIG接口或者客户端;Pellet是基于Tableau算法的描述逻辑推理机,引用部分Jena模块把OWL本体中描述的所有类、类的关系等解析为三元组再转换为逻辑描述,Pellet利用subsumption来判断两个类概念之间的关系,归约转化为判断类概念的可满足性问题,一般在涉及到OWL-DL层面的本体语言中会用到Pellet;ena是面向语义web的应用开发包,自身的推理机可以概括为CLISP协同本体领域产生式规则的前向推理系统,基于RDF三元组,自身效率不高,但Jena中包含DIG接口,可以使用Racer、FaCT、KAON2、Penet等推理机。将owl本体加入生成本体模型然后加载推理机进行推理,安装方便且容易调用。但Jena存储基于内存,不擅长处理大规模数据。由智能家居系统基于OWL本体且数据量小的特点,我们选择可编程的Jena推理机进行推理。

系统平台使用web服务器搭建,由于系统主要用于推理系统的输人和输出以及用户交互等方面,数据传输过程较为简单,因此选择前后端不分离的编程方法。Protege和Jean都基于Java语言,web编程也选择了Java框架Spring,编程软件采用可直接调用Spring的IntelliJ。

4系统搭建

完成本体的搭建和规则的编写后,在Protege中已经实现了智能家居系统的基础功能,但为了用户的可读性和便利性,需要搭建一个web页面,方便用户设定需求和查看推理结果。

4.1前端页面

前端页面采用HTML语言编写,有两个页面,一个是输人页面,点击提交后则会跳转到另一个输出页面,两个页面形式上大致相同,只在数据传输方式上有些区别,都使用表格将页面分为了四大部分,分别是传感器信息、防盗报警系统、防火报警系统和设备状态,分别表示智能家居系统的主要功能,传感器信息为输入,设备状态为输出,防盗和防火由于其重要性被单独展示。页面模板使用thymeleaf,样式设置统一采用CSS的内部样式表,使用“

”使页面兼容中文,页面名称为“智能家居(inteHigent house.con)”。

4.2后台处理

后台处理部分是系统的重中之重,包括对本体和推理机的调用和对输人数据的处理同时还有手动设定功能的实现,由于后台和前端没有分离,所以使用java框架spring,后台的代码实现在IntelliJ的MainController.java中,作为一个后台处理程序,首先要实现对html文件的调用和页面的跳转,语法@Request-Mapping(”/index”)表示打开本地ipl27.0.O.1:7777findex时会执行后续函数,也即打开index.html显示输入页面,在输入页面点击提交后,post到back页面,继续执行@RequestMapping("/back”)后的代码,也就是系统的处理代码。

首先是环境的随机生成,与之前的功能设计相同,在正常环境范围内随机给与传感器环境信息,创建随机数生成器语法为Random rand=new Random();通过实例化一个Random对象创建一个随机数生成器,java编译器将以系统当前时间作为随-机数生成器的种子。以温度为例,假设随机温度范围在10-38度,则代码表示为

InsideTemp=rand.nextInt(48)-10;

获取随机环境后就要把随机环境写入本体,这个过程分为三个步骤:读入本体、对应随机数据写人本体和保存新本体。第一步是获取本体的IRI,由于读取到的IRI包括在括号中,因此要使用循环和判断语句对其中每个字符进行判断,若遇到尖括号空格则将其删除,将处理后的IRI写入base后,第二步就是要将随机生成的环境数据写入本体,以温度为例,定义数据属性和个体名称以及处理函数,使用处理函数将随机温度的数值写入本体中的温度个体,同理处理其他随机环境数据,全部加入完毕后,将本体保存为OWL/XML格式,即完成了随机环境写入本体的过程。

其次是从本体中取出数据并进行处理,由前端页面可知,后台发送给前端输出页面的数据有当前环境数据、手动输人数据和推理所得结果,后台将对这三种数据分别处理。当前环境数据只需从本体的个体中读出,去除掉其他符号,然后添加键值对,就能在输出页面读取。手动输入数据处理分为两个方面,在输出页面显示很简便,直接添加键值对就能在输出页面读取;另一方面则是以输入数据为规则进行判断,先根据输入页面表单信息判断用户是否选择了手动设定,若选择了手动设定,则关闭默认模式使用用户输入的数据作为判断标准,替代原有的合适类;若没有选择手动设定,则按照系统默认分类进行判断和推理,分类规则写在了后台的处理代码中,只要将当前环境数据与分类规则进行比较然后代入本体中的规则就可以得到正确的推理结果,推理机采用Jena默认推理机,然后添加推理结果的键值对,就可以在输出页面进行判断选择正确的表单。

系统处理数据,也是外界与本体的交互过程,在后台可以轻松控制个体和规则的增改,若出现规则冲突或者在某一步运行出错,则会返回错误原因,后台处理部分是系统平台的支柱,负责数据在本体与前端展示页面间的传输。

5结论

本文在物联网语义技术和OWL本体语言的基础上,设计了涉及用户安全、生活、健康和娱乐四方面的智能家居系统,搭建了包含所有概念和关系的智能家居本体知识库,编写了基于用户需求的用于语义推理的规则,并搭建了web页面用于智能家居系统的控制与展示。实际使用过程中,测试效果良好,但距离实用还有许多需改进之处,本文只涉及了家居系统中的部分家居设施,未来还有更多可互相联系的家居设施加人,也会增加更多复杂规则,基于语义推理的智能家居是物联网飞速发展条件下智能家居发展的方向,未来会更加完善。

猜你喜欢

智能家居物联网
基于PLC的智能家居控制系统研究
智能家居发展或将实现弯道超车
基于LABVIEW的温室管理系统的研究与设计
论智能油田的发展趋势及必要性
中国或成“物联网”领军者
关于智能家居真正需求的探讨
基于LD3320的智能家居控制