張小麗
摘要:提出了一種可以精確表達智能家居設備語義數據的方法,該智能家居的語義網關是在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