蘇晨 趙靜雅 陳梅
摘要:該文設(shè)計了一種基于語義推理的智能家居系統(tǒng)。主要采用了物聯(lián)網(wǎng)語義推理關(guān)鍵技術(shù)和OWL(Ontology WebLanguage,本體網(wǎng)絡(luò)語言)本體技術(shù),設(shè)計了涉及用戶安全、生活、健康和娛樂四方面的智能家居系統(tǒng),搭建了包含所有概念和關(guān)系的智能家居本體知識庫,編寫了基于用戶需求的用于語義推理的規(guī)則,并搭建了web頁面用于智能家居系統(tǒng)的控制與展示。測試結(jié)果表明,智能家居本體知識庫的構(gòu)建并由語義推理得到用戶需求結(jié)果。
關(guān)鍵詞:智能家居:語義推理;物聯(lián)網(wǎng);OWL;Web
中圖分類號:TN392 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)30-0082-03
1概述
近些年來,智能化的家電受到廣大消費(fèi)者的熱烈歡迎,一整套的涉及家庭各方面設(shè)施的智能家居系統(tǒng)能真正地實(shí)現(xiàn)家庭生活的智能化。智能家居是以住宅為平臺,通過物聯(lián)網(wǎng)技術(shù)將家中的各種設(shè)備連接在一起,使他們可以達(dá)成自動控制和互聯(lián)互動,提高家庭環(huán)境的安全性、便利性和舒適性。要稱之為智能,需要家居系統(tǒng)自動判斷環(huán)境并據(jù)此做出相應(yīng)的反應(yīng)而不是依靠人類的操作,這個自動判別與行動的過程也就是智能化的過程。為了實(shí)現(xiàn)智能家居的環(huán)境判斷和互聯(lián),可以在物聯(lián)網(wǎng)中引人語義元素,搭建一個基于語義推理的智能家居系統(tǒng),使用語義推理來完成自動判別的過程,是未來家居智能化的發(fā)展方向。
目前國內(nèi)已有一些用于研究的智能家居系統(tǒng)規(guī)劃,例如2000年左右推出的清華同方e-home數(shù)字家園和海爾的“e家庭”智能家居系統(tǒng)。e-home數(shù)字家園涵蓋了家居智能控制器、社區(qū)綜合管理、網(wǎng)絡(luò)基礎(chǔ)設(shè)施、社區(qū)“一卡通”和社區(qū)信息化服務(wù)這些技術(shù)實(shí)現(xiàn)。e家園的智能化包括三個層次:家庭自動化,將家中的通信設(shè)施裝置通過網(wǎng)絡(luò)平臺實(shí)現(xiàn)互通,并連接到統(tǒng)一管理中心,實(shí)現(xiàn)異地監(jiān)視或外部管理;小區(qū)智能化,將小區(qū)內(nèi)家家戶戶聯(lián)系在一起,實(shí)現(xiàn)家庭智能控制系統(tǒng)互聯(lián),并建立信息發(fā)布平臺和統(tǒng)一管理中心,實(shí)現(xiàn)小區(qū)內(nèi)公共設(shè)施維護(hù)與監(jiān)控、醫(yī)療救助和安防等功能;社區(qū)信息化,將社會服務(wù)、小區(qū)物業(yè)和家庭設(shè)備管理統(tǒng)一起來,提供更加全面的服務(wù)。e家庭的特點(diǎn)可以概括為網(wǎng)絡(luò)化、智能化、個陛化和人性化,海爾和微軟強(qiáng)強(qiáng)聯(lián)手,共同推出了e家庭軟件平臺,盡力提高用戶的人性化體驗(yàn)。但是總的來說,由于時代和技術(shù)的限制,e-home和e家庭只提出了家居智能化的架構(gòu)和方向而沒有實(shí)現(xiàn),但這種方向?qū)ξ覀兘裉彀l(fā)展智能家居依然起著指引的作用??紤]到物聯(lián)網(wǎng)和信息產(chǎn)業(yè)近些年的發(fā)展,新一代的智能家居系統(tǒng)應(yīng)脫離電力環(huán)境的硬性控制,而更多轉(zhuǎn)向軟件控制以及虛擬平臺管理,這也是我國智能家居系統(tǒng)發(fā)展主要考慮的方向。
2智能家居功能分析
家居設(shè)施可分為四類:安全防護(hù)類、生活服務(wù)類、健康服務(wù)類、娛樂設(shè)施類。因此在設(shè)計一個智能家居系統(tǒng)時,首先應(yīng)確定此智能家居系統(tǒng)包括哪些設(shè)施,應(yīng)完成什么功能,哪些設(shè)備之間有聯(lián)動,需要收集哪些外界信息。系統(tǒng)有兩個狀態(tài):home-.time和worktime,在worktime時,生活服務(wù)類家居設(shè)施不會對外界環(huán)境做出反應(yīng),在hometime時,家居設(shè)施才會根據(jù)外界環(huán)境自動進(jìn)行打開或關(guān)閉等措施,安全防護(hù)類設(shè)施則在任何時間都正常工作?;谝陨显瓌t,提出了一種基于語義推理的智能家居系統(tǒng)設(shè)計,功能模塊圖如圖1。
3系統(tǒng)平臺功能設(shè)計
智能家居本體及推理完成后,為方便用戶的使用需要搭建一個智能家居控制平臺,所以要對平臺的功能進(jìn)行設(shè)計,平臺功能可分為前端功能和后臺功能兩部分,平臺功能模塊圖如圖2。
平臺的首要功能是展示處理結(jié)果,這部分顯示在前端,用戶可選擇手動輸入需求環(huán)境或者接受默認(rèn)設(shè)置,用戶手動輸入需求溫濕度和pm2.5濃度后,系統(tǒng)將會把本體中原有的規(guī)則替換成以用戶需求為中心的規(guī)則,例如用戶輸入溫度25度,則平臺將會判斷若此時溫度高于25度就打開空調(diào)冷風(fēng),若溫度低于0度則打開壁掛爐,溫度高于0度但低于25度則打開空調(diào)熱風(fēng),使得溫度向25度靠攏,滿足用戶需求。用戶設(shè)置需求后點(diǎn)擊提交,就可跳轉(zhuǎn)到下一個頁面,展示各個家居設(shè)施的運(yùn)行情況。
后臺功能共分為三部分:隨機(jī)數(shù)據(jù)產(chǎn)生,家居設(shè)施和規(guī)則的處理,推理及輸出。第一部分是隨機(jī)數(shù)據(jù)產(chǎn)生,為了模擬各種環(huán)境,當(dāng)前的環(huán)境參數(shù)由系統(tǒng)隨機(jī)產(chǎn)生,每個參數(shù)都給了正常生活中的范圍,還用變量speciahemp表示著火時高溫的特殊情況。家居設(shè)施從本體中讀人,可在后臺程序中進(jìn)行添加或者刪改,但要用于推理還要加入相應(yīng)規(guī)則,同理規(guī)則寫在本體中,后臺程序可讀入也可對其進(jìn)行添加或者刪除修改,單以用戶設(shè)置為例,用戶設(shè)置需求溫度25度,則后臺程序?qū)⒁?guī)則修改為使用25度進(jìn)行判斷。有了個體、個體間的關(guān)系和規(guī)則后,系統(tǒng)可調(diào)用推理機(jī)進(jìn)行推理,并將推理結(jié)果輸出到前端界面。前端負(fù)責(zé)和用戶的交互以及輸人和輸出的展示,后臺負(fù)責(zé)了本體的調(diào)用和整個系統(tǒng)的數(shù)據(jù)處理。
本體的創(chuàng)建選擇了Protege軟件5.2.0版本,Protege軟件是斯坦福大學(xué)醫(yī)學(xué)院生物信息研究中心基于Java語言開發(fā)的本體編輯和知識獲取軟件,是一種本體開發(fā)工具,也是基于知識的編輯器,且代碼開源。這個軟件主要用于語義網(wǎng)中本體的構(gòu)建,是語義網(wǎng)中本體構(gòu)建的核心開發(fā)工具,現(xiàn)在的最新版本為5.2.0版本。
Protege軟件有三大優(yōu)點(diǎn):第一是本體創(chuàng)建方便快捷且全面,Protege提供了本體概念類、關(guān)系、屬性和實(shí)例的構(gòu)建,采用圖形化界面,便于操作,用戶通過點(diǎn)擊對類和關(guān)系進(jìn)行編輯,并且屏蔽了具體的本體描述語言,支持中文,用戶只需在概念層次上進(jìn)行領(lǐng)域本體模型的構(gòu)建,因此適用于初學(xué)者。Protege提供全面的本體創(chuàng)建元素包括類,關(guān)系屬性,數(shù)據(jù)屬性和個體,除此之外還擁有豐富的可擴(kuò)展性,可以使用插件或者基于Java的API進(jìn)行擴(kuò)展,例如使用Graphviz可以展現(xiàn)拓?fù)鋱D,對用戶友好。第二是可以進(jìn)行推理,Protege 5.2.0版本可以使用SWRLTab寫入規(guī)則并且自帶推理機(jī),用戶可直接在Protege中搭建本體并建立規(guī)則,然后使用推理機(jī)推理并檢查推理結(jié)果是否正確,語義推理的整個過程都可以在Protege中完成,適合本次畢業(yè)設(shè)計使用。第三則是因?yàn)镻rotege是開源軟件,易于調(diào)用且更新快。
推理機(jī)大致可分為通用的面向低層次的CLISP推理機(jī)Jess和針對本體語言的推理機(jī)例如Rac-er、FaCT、KAON2、Pellet和Jena。
CLISP是一種基礎(chǔ)性的正向推理引擎,許多上層的推理任務(wù)都要映射到它運(yùn)行,因此只要被提供特有領(lǐng)域規(guī)則和知識,CLISP原則上可以處理各種類型的推理任務(wù)。其中Jess是基于Java語言的CLISP推理機(jī),也是最常用的推理機(jī),由于更偏低層,所以擴(kuò)展性和兼容性非常好,但也隨之帶來優(yōu)化困難的問題,而且大量的中間數(shù)據(jù)導(dǎo)致空間效率很低。因此已經(jīng)確定使用OWL本體的推理任務(wù)還是應(yīng)該選擇在針對本體的效率更高的推理機(jī)。
Racer、FaCT、KAON2、Penet和Jena是針對本體的推理機(jī)。其中KAON2可以直接調(diào)用API,但配置過程比較復(fù)雜;FaCT和Racer都需要使用DIG接口或者客戶端;Pellet是基于Tableau算法的描述邏輯推理機(jī),引用部分Jena模塊把OWL本體中描述的所有類、類的關(guān)系等解析為三元組再轉(zhuǎn)換為邏輯描述,Pellet利用subsumption來判斷兩個類概念之間的關(guān)系,歸約轉(zhuǎn)化為判斷類概念的可滿足性問題,一般在涉及到OWL-DL層面的本體語言中會用到Pellet;ena是面向語義web的應(yīng)用開發(fā)包,自身的推理機(jī)可以概括為CLISP協(xié)同本體領(lǐng)域產(chǎn)生式規(guī)則的前向推理系統(tǒng),基于RDF三元組,自身效率不高,但Jena中包含DIG接口,可以使用Racer、FaCT、KAON2、Penet等推理機(jī)。將owl本體加入生成本體模型然后加載推理機(jī)進(jìn)行推理,安裝方便且容易調(diào)用。但Jena存儲基于內(nèi)存,不擅長處理大規(guī)模數(shù)據(jù)。由智能家居系統(tǒng)基于OWL本體且數(shù)據(jù)量小的特點(diǎn),我們選擇可編程的Jena推理機(jī)進(jìn)行推理。
系統(tǒng)平臺使用web服務(wù)器搭建,由于系統(tǒng)主要用于推理系統(tǒng)的輸人和輸出以及用戶交互等方面,數(shù)據(jù)傳輸過程較為簡單,因此選擇前后端不分離的編程方法。Protege和Jean都基于Java語言,web編程也選擇了Java框架Spring,編程軟件采用可直接調(diào)用Spring的IntelliJ。
4系統(tǒng)搭建
完成本體的搭建和規(guī)則的編寫后,在Protege中已經(jīng)實(shí)現(xiàn)了智能家居系統(tǒng)的基礎(chǔ)功能,但為了用戶的可讀性和便利性,需要搭建一個web頁面,方便用戶設(shè)定需求和查看推理結(jié)果。
4.1前端頁面
前端頁面采用HTML語言編寫,有兩個頁面,一個是輸人頁面,點(diǎn)擊提交后則會跳轉(zhuǎn)到另一個輸出頁面,兩個頁面形式上大致相同,只在數(shù)據(jù)傳輸方式上有些區(qū)別,都使用表格將頁面分為了四大部分,分別是傳感器信息、防盜報警系統(tǒng)、防火報警系統(tǒng)和設(shè)備狀態(tài),分別表示智能家居系統(tǒng)的主要功能,傳感器信息為輸入,設(shè)備狀態(tài)為輸出,防盜和防火由于其重要性被單獨(dú)展示。頁面模板使用thymeleaf,樣式設(shè)置統(tǒng)一采用CSS的內(nèi)部樣式表,使用“
”使頁面兼容中文,頁面名稱為“智能家居(inteHigent house.con)”。
4.2后臺處理
后臺處理部分是系統(tǒng)的重中之重,包括對本體和推理機(jī)的調(diào)用和對輸人數(shù)據(jù)的處理同時還有手動設(shè)定功能的實(shí)現(xiàn),由于后臺和前端沒有分離,所以使用java框架spring,后臺的代碼實(shí)現(xiàn)在IntelliJ的MainController.java中,作為一個后臺處理程序,首先要實(shí)現(xiàn)對html文件的調(diào)用和頁面的跳轉(zhuǎn),語法@Request-Mapping(”/index”)表示打開本地ipl27.0.O.1:7777findex時會執(zhí)行后續(xù)函數(shù),也即打開index.html顯示輸入頁面,在輸入頁面點(diǎn)擊提交后,post到back頁面,繼續(xù)執(zhí)行@RequestMapping("/back”)后的代碼,也就是系統(tǒng)的處理代碼。
首先是環(huán)境的隨機(jī)生成,與之前的功能設(shè)計相同,在正常環(huán)境范圍內(nèi)隨機(jī)給與傳感器環(huán)境信息,創(chuàng)建隨機(jī)數(shù)生成器語法為Random rand=new Random();通過實(shí)例化一個Random對象創(chuàng)建一個隨機(jī)數(shù)生成器,java編譯器將以系統(tǒng)當(dāng)前時間作為隨-機(jī)數(shù)生成器的種子。以溫度為例,假設(shè)隨機(jī)溫度范圍在10-38度,則代碼表示為
InsideTemp=rand.nextInt(48)-10;
獲取隨機(jī)環(huán)境后就要把隨機(jī)環(huán)境寫入本體,這個過程分為三個步驟:讀入本體、對應(yīng)隨機(jī)數(shù)據(jù)寫人本體和保存新本體。第一步是獲取本體的IRI,由于讀取到的IRI包括在括號中,因此要使用循環(huán)和判斷語句對其中每個字符進(jìn)行判斷,若遇到尖括號空格則將其刪除,將處理后的IRI寫入base后,第二步就是要將隨機(jī)生成的環(huán)境數(shù)據(jù)寫入本體,以溫度為例,定義數(shù)據(jù)屬性和個體名稱以及處理函數(shù),使用處理函數(shù)將隨機(jī)溫度的數(shù)值寫入本體中的溫度個體,同理處理其他隨機(jī)環(huán)境數(shù)據(jù),全部加入完畢后,將本體保存為OWL/XML格式,即完成了隨機(jī)環(huán)境寫入本體的過程。
其次是從本體中取出數(shù)據(jù)并進(jìn)行處理,由前端頁面可知,后臺發(fā)送給前端輸出頁面的數(shù)據(jù)有當(dāng)前環(huán)境數(shù)據(jù)、手動輸人數(shù)據(jù)和推理所得結(jié)果,后臺將對這三種數(shù)據(jù)分別處理。當(dāng)前環(huán)境數(shù)據(jù)只需從本體的個體中讀出,去除掉其他符號,然后添加鍵值對,就能在輸出頁面讀取。手動輸入數(shù)據(jù)處理分為兩個方面,在輸出頁面顯示很簡便,直接添加鍵值對就能在輸出頁面讀取;另一方面則是以輸入數(shù)據(jù)為規(guī)則進(jìn)行判斷,先根據(jù)輸入頁面表單信息判斷用戶是否選擇了手動設(shè)定,若選擇了手動設(shè)定,則關(guān)閉默認(rèn)模式使用用戶輸入的數(shù)據(jù)作為判斷標(biāo)準(zhǔn),替代原有的合適類;若沒有選擇手動設(shè)定,則按照系統(tǒng)默認(rèn)分類進(jìn)行判斷和推理,分類規(guī)則寫在了后臺的處理代碼中,只要將當(dāng)前環(huán)境數(shù)據(jù)與分類規(guī)則進(jìn)行比較然后代入本體中的規(guī)則就可以得到正確的推理結(jié)果,推理機(jī)采用Jena默認(rèn)推理機(jī),然后添加推理結(jié)果的鍵值對,就可以在輸出頁面進(jìn)行判斷選擇正確的表單。
系統(tǒng)處理數(shù)據(jù),也是外界與本體的交互過程,在后臺可以輕松控制個體和規(guī)則的增改,若出現(xiàn)規(guī)則沖突或者在某一步運(yùn)行出錯,則會返回錯誤原因,后臺處理部分是系統(tǒng)平臺的支柱,負(fù)責(zé)數(shù)據(jù)在本體與前端展示頁面間的傳輸。
5結(jié)論
本文在物聯(lián)網(wǎng)語義技術(shù)和OWL本體語言的基礎(chǔ)上,設(shè)計了涉及用戶安全、生活、健康和娛樂四方面的智能家居系統(tǒng),搭建了包含所有概念和關(guān)系的智能家居本體知識庫,編寫了基于用戶需求的用于語義推理的規(guī)則,并搭建了web頁面用于智能家居系統(tǒng)的控制與展示。實(shí)際使用過程中,測試效果良好,但距離實(shí)用還有許多需改進(jìn)之處,本文只涉及了家居系統(tǒng)中的部分家居設(shè)施,未來還有更多可互相聯(lián)系的家居設(shè)施加人,也會增加更多復(fù)雜規(guī)則,基于語義推理的智能家居是物聯(lián)網(wǎng)飛速發(fā)展條件下智能家居發(fā)展的方向,未來會更加完善。