張小麗
摘要:提出了一種可以精確表達智能家居設(shè)備語義數(shù)據(jù)的方法,該智能家居的語義網(wǎng)關(guān)是在Android平臺上采用語義網(wǎng)技術(shù)、protégé本體和開源的SWIP架構(gòu)并結(jié)合Andorid Content Provider構(gòu)建而成的,把無語義的智能家居數(shù)據(jù)轉(zhuǎn)換成有語義的智能家居數(shù)據(jù),用戶可通過本地的RDF Browser或者瀏覽器實時獲取有語義數(shù)據(jù)的智能家居設(shè)備,實現(xiàn)不同廠商的智能家居設(shè)備的語義融合。
關(guān)鍵詞:智能家居網(wǎng)絡(luò);語義網(wǎng)關(guān);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引言
互聯(lián)網(wǎng)的海量數(shù)據(jù)給人們帶來了許多困擾,為了使網(wǎng)絡(luò)能夠給用戶提供更加智能化的服務(wù),萬維網(wǎng)的創(chuàng)始人Tim Berners-Lee于2001年正式提出了基于本體的語義網(wǎng)概念[1]。語義網(wǎng)的核心思想是通過使用機器可以理解的元數(shù)據(jù)語言來描述網(wǎng)絡(luò)信息資源內(nèi)容[2],從而使網(wǎng)絡(luò)應(yīng)用程序通過檢索基于不同規(guī)則的信息語義來表達信息。
目前,大多數(shù)的智能家居生產(chǎn)廠家都有自己的協(xié)議標準,很難實現(xiàn)設(shè)備間的數(shù)據(jù)融合[3]。為了解決智能家居設(shè)備語義數(shù)據(jù)融合的問題,有2個主要的難題需要攻克:①如何統(tǒng)一由不同生產(chǎn)廠家協(xié)議標準不同而產(chǎn)生的數(shù)據(jù)格式;②如何精準地表達智能家居設(shè)備的語義數(shù)據(jù)。為了解決第2個難題,通過采用基于本體的語義技術(shù),提出了一種基于智能家居網(wǎng)絡(luò)的語義網(wǎng)關(guān)設(shè)計方法。
1智能家居語義網(wǎng)關(guān)總體實現(xiàn)方案
1.1智能家居網(wǎng)絡(luò)系統(tǒng)的總體設(shè)計
本文所設(shè)計的智能家居網(wǎng)絡(luò)系統(tǒng)由一個智能家居語義網(wǎng)關(guān)和信息家電系統(tǒng)組成,其中信息家電系統(tǒng)包含溫濕度傳感器、光照傳感器、空調(diào)、冰箱及電視5個家居設(shè)備。
與傳統(tǒng)的智能家居網(wǎng)關(guān)相比,該智能家居語義網(wǎng)關(guān)主要實現(xiàn)4個功能:①在家庭中通過局域網(wǎng)的方式將信息家電系統(tǒng)的各個設(shè)備接入到智能家居語義網(wǎng)關(guān)中,對各個設(shè)備傳來的無語義數(shù)據(jù)進行存儲;②將無語義數(shù)據(jù)轉(zhuǎn)換成語義數(shù)據(jù);③允許用戶通過基于Android操作系統(tǒng)的平板電腦或者手機語義網(wǎng)關(guān)設(shè)備瀏覽語義數(shù)據(jù);④將用戶語義網(wǎng)關(guān)數(shù)據(jù)作為外部數(shù)據(jù)鏈接供其他用戶在瀏覽器上訪問。
1.2智能家居語義網(wǎng)關(guān)的功能組成
智能家居語義網(wǎng)關(guān)的功能組件如圖1所示。由六大功能模塊組成,分別是智能家居設(shè)備數(shù)據(jù)采集模塊、數(shù)據(jù)存儲模塊、數(shù)據(jù)訪問接口模塊、語義數(shù)據(jù)轉(zhuǎn)換接口模塊、RDF解析接口模塊和語義數(shù)據(jù)瀏覽及共享模塊。其中,數(shù)據(jù)采集和存儲模塊主要用來接收、解析智能家居設(shè)備數(shù)據(jù)并存入到Android平板的數(shù)據(jù)庫中,數(shù)據(jù)訪問接口模塊用來訪問數(shù)據(jù)庫中存儲的設(shè)備無語義數(shù)據(jù)。
語義網(wǎng)關(guān)中的語義數(shù)據(jù)模塊由語義數(shù)據(jù)轉(zhuǎn)換接口、RDF語義解析接口和語義數(shù)據(jù)瀏覽及共享這三大模塊構(gòu)成,并且都是基于Android語義服務(wù)框架來構(gòu)建的。智能家居語義網(wǎng)關(guān)通過4個APP實現(xiàn),與語義網(wǎng)關(guān)各模塊間的關(guān)系如圖2所示。
2智能家居語義網(wǎng)關(guān)的實現(xiàn)過程
2.1語義網(wǎng)關(guān)工作原理
以訪問存儲在TemProvider數(shù)據(jù)庫表temp_data中第1條溫濕度傳感器設(shè)備記錄為例,說明該語義網(wǎng)關(guān)的工作原理,如圖3所示。
①用戶在網(wǎng)頁地址欄中輸入要該條記錄對應(yīng)的外部Uri(http://域名:端口號+智能家居設(shè)備的Authority+路徑)并點擊搜索,此時會將該請求發(fā)送給RDF Server服務(wù)器。
②RDF Server服務(wù)器接收請求后將外部Uri轉(zhuǎn)換為本地Uri(Content://authority/path),并將本地Uri發(fā)送給RDF Content Resolver。
③RDF解析接口模塊(RDF Content Resolver)再根據(jù)本地Uri查找安裝在其上面的所有注冊了的語義轉(zhuǎn)換接口,此時滿足條件的RDF Temperature and Humidity Sensors Provider將響應(yīng)該請求查找TemProvider數(shù)據(jù)庫表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將語義數(shù)據(jù)的封裝在RDF文件中,最終返回給RDF Server服務(wù)器。
⑦RDF Server服務(wù)器進而響應(yīng)用戶查看該設(shè)備某條記錄語義數(shù)據(jù)的請求將RDF文件返回給用戶端。
2.2使用protégé構(gòu)建溫濕度傳感器的本體模型
OWL本體文件刻畫智能家居設(shè)備中涉及到的詞匯以及詞匯之間的關(guān)系,是語義數(shù)據(jù)轉(zhuǎn)換接口模塊輸出語義數(shù)據(jù)的基礎(chǔ)[4]。實現(xiàn)智能家居語義數(shù)據(jù)轉(zhuǎn)換接口之前,需要構(gòu)建智能家居設(shè)備的本體描述文件。根據(jù)本體模型建立的方法用prot佴g佴4.3構(gòu)建的溫濕度傳感器本體如圖4所示,最終生成用本體語言表述該設(shè)備屬性的Temperature.owl文件,它的Uri為http://localhost/temperature.owl。
2.3構(gòu)建溫濕度傳感器的Content Provider
溫濕度傳感器的Content Provider繼承了Android Content Provider,可實現(xiàn)不同設(shè)備應(yīng)用程序間傳輸結(jié)構(gòu)化的數(shù)據(jù),通過query()、insert()、delete()及update()方法,分別實現(xiàn)是對相應(yīng)的智能家居數(shù)據(jù)庫表中的數(shù)據(jù)進行查詢、插入、刪除及更新的操作[5]。語義數(shù)據(jù)訪問接口的應(yīng)用程序RDF Provider Manager通過該接口來訪問數(shù)據(jù)庫表存儲的溫濕度傳感器設(shè)備數(shù)據(jù)。
構(gòu)建溫濕度傳感器的Content Provider需經(jīng)過以下4個步驟:①設(shè)計基于Sqlite數(shù)據(jù)庫表,用于存儲采集到的溫濕度傳感器設(shè)備數(shù)據(jù);②定義TemProvider并為其實現(xiàn)query()、insert()、delete()及update()方法;③定義Provider的Authority,content Uris及列名;④注冊用戶自定義的Content Provider,并為該Content Provider綁定一個唯一標識的Uri。設(shè)置訪問權(quán)限,允許其他應(yīng)用程序訪問該接口。注冊溫濕度傳感器設(shè)備的Cotent Provider,其中,Authority為“com.zxl.homeatuoprovider. temps”,ContentResolver查詢TemProvider的數(shù)據(jù)庫表中記錄時用唯一標識該記錄的Uri[6]。
2.4語義網(wǎng)關(guān)的服務(wù)層
語義網(wǎng)關(guān)服務(wù)層的整體架構(gòu)由RDF * Provider、RDF Server, RDF Content Resolver和RDF Browser組成。各組成部分的功能如下:
1 RDF * Provider:允許智能家居設(shè)備數(shù)據(jù)存儲模塊中的應(yīng)用程序的數(shù)據(jù)暴露為RDF語義數(shù)據(jù),供其他應(yīng)用程序訪問。
2 RDF Content Resolver:RDF解析接口模塊是訪問語義數(shù)據(jù)的統(tǒng)一接口,作為一個后臺服務(wù),主要用于維護已安裝的RDF* Provider列表,并從已有的RDF* Provider解析Uri和檢索RDF語義數(shù)據(jù)。
3 RDF Browser:類似于訪問數(shù)據(jù)鏈接的客戶端,通過檢索在RDF* Provider注冊的設(shè)備Uri訪問本地的語義網(wǎng)關(guān)中的智能家居設(shè)備語義數(shù)據(jù),RDF Server作為一個Web服務(wù)器,將用戶語義網(wǎng)關(guān)數(shù)據(jù)作為外部數(shù)據(jù)鏈接供其他用戶在瀏覽器上訪問。
2.5語義數(shù)據(jù)的實現(xiàn)
RDFContentProvider該接口允許應(yīng)用程序?qū)⒆约旱臄?shù)據(jù)暴露為RDF語義數(shù)據(jù),以溫濕度傳感器為例分析語義數(shù)據(jù)實現(xiàn)過程:①為該傳感器構(gòu)建一個RDFTemperatureandHumidity SensorsProvider類,在該類中創(chuàng)建一個HashMap實例HashMap