国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

智能家居規(guī)則沖突檢測(cè)系統(tǒng)實(shí)現(xiàn)與驗(yàn)證

2021-03-15 07:01朱慶華?,?/span>
電腦知識(shí)與技術(shù) 2021年3期
關(guān)鍵詞:智能家居

朱慶華 ?,?/p>

摘要:作者曾對(duì)規(guī)則模型和規(guī)則沖突問題進(jìn)行了詳細(xì)的研究分析,本文將實(shí)現(xiàn)智能家居本體,基于創(chuàng)建的本體在SWRLTab中創(chuàng)建智能家居系統(tǒng)規(guī)則庫,并設(shè)計(jì)了規(guī)則沖突檢測(cè)的方法,最后使用Java語言開發(fā)了圖形界面的智能家居規(guī)則沖突檢測(cè)系統(tǒng),并通過實(shí)例驗(yàn)證了沖突檢測(cè)系統(tǒng)的可行性。

關(guān)鍵詞:智能家居;沖突檢測(cè);沖突驗(yàn)證

中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)03-0188-02

1智能家居本體構(gòu)建

作為整個(gè)智能家居系統(tǒng)實(shí)現(xiàn)的基礎(chǔ),首先要對(duì)場(chǎng)景中的本體進(jìn)行定義。本文在構(gòu)建本體時(shí)主要使用了四種OWL實(shí)體,分別為:類(Classes)、個(gè)體(Individuals)、對(duì)象屬性(Objectproperties)、數(shù)據(jù)屬性(Dateproperties)。

類表示的是一組具有相似特征的個(gè)體或者實(shí)例的集合,個(gè)體表示的是領(lǐng)域?qū)ο?,也可以理解為類中的?shí)例。比如如果將國家(Country)作為一個(gè)類,那么中國,加拿大,葡萄牙,敘利亞,越南等國家就可以作為國家這個(gè)類中的個(gè)體。SubclassOf,Equivalent,Disjoint是定義用來描述類之間的三大關(guān)系,即子類,相等類,非相交類,這些關(guān)系可用于本體的推理。

屬性表示的是個(gè)體之間的二元關(guān)系,可以將兩個(gè)個(gè)體連接起來并表明它們之間的聯(lián)系,或者對(duì)個(gè)體進(jìn)行參數(shù)傳遞。比如對(duì)象屬性hasTeacher就可以將學(xué)生Tom與老師Harry的師生關(guān)系表示出來。數(shù)據(jù)屬性hasAge可以連接Bob和23,表示Bob的年齡為23歲。

針對(duì)智能家居的實(shí)際場(chǎng)景,在owl:Thing下定義了control、devices、PM2.5、temperature、time五個(gè)大類。五大類包含了控制類,設(shè)備類,時(shí)間環(huán)境參數(shù)類等,基本覆蓋了真實(shí)的智能家居環(huán)境。其中temperature類又包括三個(gè)子類hot,cold,medium,表示溫度的熱,冷和適中。PM2.5類包括三個(gè)子類high,low,middle,表示PM2.5濃度的高,低和適中。Time類包括兩個(gè)子類day,night,表示白天和夜間。

本文創(chuàng)建了open,close,turnon,turnoff,hastime,hastemp,hasPM25七個(gè)對(duì)象屬性,分別表示動(dòng)作式的打開和關(guān)閉,以及電源開關(guān)式的打開和關(guān)閉,獲取時(shí)間,獲取溫度,獲取PM2.5等環(huán)境參數(shù)。

本文創(chuàng)建了greaterthan,lessthan,PM25,priority,temp,time六個(gè)數(shù)據(jù)屬性,分別表示大于,小于,PM2.5濃度,優(yōu)先級(jí),溫度值,時(shí)間值。

本文創(chuàng)建了control,alarm,airconditioner,aircleaner,curtain,door,light等個(gè)體,分別表示控制器和報(bào)警器,空調(diào),空氣凈化器,窗簾,門,燈等各種家居設(shè)備。

在Protégé自帶的插件OntoGraf中,提供了鏈型,樹形,星型等多種樣式來表示本體之間的關(guān)系圖,我們可以直觀準(zhǔn)確的查看當(dāng)前本體中的類和個(gè)體及其之間的關(guān)系。采用星型圖表示當(dāng)前智能家居系統(tǒng)本體搭建結(jié)果。

2基于SWRL的規(guī)則建立

2.1 SWRLTab簡(jiǎn)介

完成本體的搭建之后,便可以在SWRLTab中自行編寫SWRL規(guī)則。SWRLTab是由斯坦福大學(xué)開發(fā)的一個(gè)基于SWRLAPI的插件,它提供了一個(gè)圖形界面去管理Protégé本體編輯器中的SWRLrules和SQWRLqueries。SWRLTab和protégé緊密結(jié)合,它支持SWRL的所有特性,能夠在編輯SWRLrule與本體文件之間方便地切換,并且建立規(guī)則時(shí)能直接使用OWL中已經(jīng)創(chuàng)建的實(shí)體。它的主要組件包括:

lSWRLEditor,用于編輯SWRL規(guī)則和SQWRL查詢。

l基于Drools的SWRL規(guī)則引擎和相關(guān)的SWRLDroolsTab,用于執(zhí)行SWRL規(guī)則。

l用于執(zhí)行SQWRL查詢的SQWRLQueryTab。

l用于與基于SWRLAPI的OWL 2 RL推理機(jī)交互的OWL 2 RLTab。

SWRLTab建立一條規(guī)則主要包含Name(規(guī)則名),Body(規(guī)則體),Comment(規(guī)則描述)三個(gè)部分,其中描述部分為選填項(xiàng),可以對(duì)規(guī)則的含義進(jìn)行解釋說明。規(guī)則編輯界面有三個(gè)操作按鈕New,Edit,Delete,通過New可以新建一條規(guī)則,Edit對(duì)當(dāng)前規(guī)則進(jìn)行編輯,Delete則可以刪除一條規(guī)則。

2.2 SWRL規(guī)則展示

在本文的智能家居場(chǎng)景中,我們假設(shè)存在A,B兩個(gè)用戶,然后A用戶和B用戶各自預(yù)設(shè)了三條SWRL規(guī)則,如表1、表2所示。

3規(guī)則沖突檢測(cè)系統(tǒng)的實(shí)現(xiàn)

3.1 系統(tǒng)軟件環(huán)境

該智能家居規(guī)則沖突檢測(cè)系統(tǒng)是采用Java語言,使用Eclipse(JUNO版本)集成開發(fā)環(huán)境開發(fā)。其基于jdk1.8版本,實(shí)現(xiàn)了一個(gè)具有圖形用戶界面的規(guī)則沖突檢測(cè)系統(tǒng)。之所以采用Java語言是因?yàn)槲覀兯褂玫谋倔w編輯工具Protégé以及owlapi,swrlapi都是基于Java語言開發(fā)的,在系統(tǒng)實(shí)現(xiàn)過程中需要多次使用其提供的方法。而且Java語言本身有著可跨平臺(tái)運(yùn)行,面向?qū)ο?,而且語法較為簡(jiǎn)單等許多優(yōu)勢(shì)。在該系統(tǒng)中主要使用了Swing工具包,OWLAPI,SWRLAPI等。

Swing是為Java設(shè)計(jì)的進(jìn)行圖形界面應(yīng)用開發(fā)的工具包,是Java基礎(chǔ)類庫的一部分,Swing中包含了構(gòu)建GUI的各種組件,如: 窗口、標(biāo)簽、按鈕、文本框等。它是基于AWT(抽象窗口工具包)架構(gòu)之上,但是Swing可以提供較AWT更好的圖形顯示元素[9]。Swing是用Java寫成的,所以如同Java一樣可以在各個(gè)平臺(tái)上運(yùn)行。

OWLAPI是一個(gè)用于創(chuàng)建,操作和序列化OWL本體的JavaAPI。可以進(jìn)行RDF / XML,OWL / XML格式文件的解析和編寫,包含OWL功能語法分析和寫入,也可以進(jìn)行Turtle解析和編寫,包含了KRSS解析器,OBO格式解析器,以及用于和FaCT ++、HermiT、Pellet、Racer、JFact、Chainsaw等推理機(jī)合作的接口。OWLAPI的jar中提供了很多java包,含有各種類和接口,開發(fā)者使用其中提供的方法可以很方便地完成創(chuàng)建,加載,修改,保存本體,在本體中新建,獲取,修改或者移除Axioms等操作,還可以完成對(duì)本體中的規(guī)則進(jìn)行提取,對(duì)類,屬性等單獨(dú)提取等許多功能。

SWRLAPI是一個(gè)用于處理基于OWL的SWRL規(guī)則和SQWRL查詢語言的JavaAPI,它還包括了用于編輯和執(zhí)行規(guī)則查詢的圖形工具,前面章節(jié)中提到的Protégé中的SWRLTab插件就是基于SWRLAPI開發(fā)的。它提供了新建SWRL規(guī)則,修改SWRL規(guī)則等許多方法,本文在系統(tǒng)實(shí)現(xiàn)中主要使用它進(jìn)行規(guī)則的處理。

3.2 系統(tǒng)需求分析

本文設(shè)計(jì)實(shí)現(xiàn)一個(gè)擁有雙用戶的智能家居規(guī)則沖突檢測(cè)系統(tǒng),需要實(shí)現(xiàn)基于用戶優(yōu)先級(jí)的沖突避免機(jī)制,以及完成在相同優(yōu)先級(jí)下規(guī)則之間的沖突檢測(cè)功能。實(shí)現(xiàn)思路為:首先進(jìn)行智能家居本體的創(chuàng)建,以及構(gòu)建系統(tǒng)規(guī)則庫。然后從本地加載已經(jīng)創(chuàng)建好的包含了預(yù)置SWRL規(guī)則的本體文件,其中A,B用戶各有預(yù)先設(shè)定好的幾條規(guī)則(后續(xù)用戶可以根據(jù)需要在系統(tǒng)界面中添加新的規(guī)則),接著進(jìn)行用戶優(yōu)先級(jí)的選擇,當(dāng)選定優(yōu)先級(jí)之后,啟動(dòng)沖突檢測(cè)模塊進(jìn)行檢測(cè),并將結(jié)果反饋給用戶。

因此,該系統(tǒng)主要包括前端的控制界面,SWRL規(guī)則的提取和顯示模塊,規(guī)則添加模塊,優(yōu)先級(jí)設(shè)置模塊,規(guī)則沖突檢測(cè)模塊,以及沖突結(jié)果反饋展示模塊的設(shè)計(jì)和實(shí)現(xiàn)。

3.3 系統(tǒng)模塊設(shè)計(jì)實(shí)現(xiàn)

3.3.1規(guī)則提取和顯示模塊

該模塊完成規(guī)則提取和規(guī)則顯示兩部分功能。對(duì)于規(guī)則提取,首先將本地的owl本體文件加載至系統(tǒng),然后使用OWLAPI中的OWLOntologyManager類來創(chuàng)建本體管理器。將owl本體載入本體管理器后,由于規(guī)則是以公理的形式存在本體文件中的,我們便可以使用OWLAPI提供的getAxioms()方法將本體中的SWRL規(guī)則提取出來,并且以字符串的方式存儲(chǔ)下來。

對(duì)于規(guī)則顯示,應(yīng)該分別顯示A,B用戶的規(guī)則。因此使用同一智能家居本體,將A,B的規(guī)則文件分開保存。規(guī)則提取部分提取出來的規(guī)則包括Body和Head兩部分,其中包含著各種類,屬性的聲明以及IRI等許多復(fù)雜的信息,通過對(duì)規(guī)則字符串進(jìn)行操作處理,可以將規(guī)則簡(jiǎn)化為簡(jiǎn)明扼要的,以IF,THEN形式展示的規(guī)則,并由前端展示出來方便用戶查看。

3.3.2規(guī)則添加模塊

為了增加系統(tǒng)的靈活性,在規(guī)則添加模塊我們可以為當(dāng)前本體文件添加新的規(guī)則進(jìn)去,SWRLAPI為實(shí)現(xiàn)該功能提供了方法。規(guī)則添加模塊首先也是利用OWLAPI加載本地智能家居本體文件,然后使用SWRLAPI創(chuàng)建一個(gè)SWRLRuleEngine,該規(guī)則引擎可以對(duì)剛加載進(jìn)來的本體文件對(duì)象進(jìn)行處理。然后使用SWRLAPIRule接口中的createSWRLRule()方法便可以將新規(guī)則寫入本體,并且能夠在Protégé的SWRLTab中顯示出來。同樣,在添加規(guī)則時(shí),考慮到不同用戶的需求不同,將選擇用戶A或者B進(jìn)行獨(dú)立添加。

3.3.3 用戶優(yōu)先級(jí)設(shè)定

該系統(tǒng)實(shí)現(xiàn)僅考慮有A,B兩位用戶的情況,因此有三種用戶優(yōu)先級(jí),即A>B,A=B,A

3.3.4規(guī)則沖突檢測(cè)模塊

每一條完整的SWRL規(guī)則都是由條件和動(dòng)作兩部分組成。首先使用OWLAPI提供的getBody()和getHead()方法可以將A,B兩用戶的規(guī)則的條件部分和動(dòng)作部分提取出來并且分開進(jìn)行保存。在選擇用戶優(yōu)先級(jí)后,根據(jù)第三章中規(guī)則沖突類型的判定條件,依次遍歷A,B所有規(guī)則的條件部分和動(dòng)作部分。如果條件部分相同,執(zhí)行動(dòng)作相反,則發(fā)生執(zhí)行矛盾沖突;如果兩規(guī)則的條件和動(dòng)作互相依賴,則發(fā)生依賴沖突;若兩規(guī)則的條件部分相包含且執(zhí)行動(dòng)作一樣,則發(fā)生影子沖突。找出所有沖突規(guī)則并返回沖突類型和規(guī)則序號(hào)。

3.3.5前端界面展示

系統(tǒng)主界面如圖所示,含顯示規(guī)則,添加規(guī)則,沖突檢測(cè),結(jié)果顯示四大功能。其中選定A,B用戶后,點(diǎn)擊顯示規(guī)則,在智能家居規(guī)則展示區(qū)將展示當(dāng)前用戶設(shè)定的規(guī)則。結(jié)果顯示中包括沖突檢測(cè)結(jié)果展示區(qū)以及沖突詳情展示區(qū)。

添加規(guī)則界面如圖所示,需要在Rule name文本框中鍵入規(guī)則名(SWRLAPI中的參數(shù)要求),IF文本框中鍵入條件部分,THEN文本框中鍵入動(dòng)作部分,條件部分和動(dòng)作部分是以形如SWRLTab(如示例所示)中的規(guī)則形式進(jìn)行添加的,非常方便用戶的閱讀和理解。選擇需要添加的用戶后確認(rèn),一條形如示例的完整規(guī)則即可被添加到本體文件之中。

4系統(tǒng)測(cè)試

4.1 顯示規(guī)則

根據(jù)所述,對(duì)于A,B用戶,我們已經(jīng)在Protégé中的SWRLTab中分別創(chuàng)建好了三條規(guī)則,啟動(dòng)檢測(cè)系統(tǒng)后,首先本體文件將會(huì)被加載到系統(tǒng)中。此時(shí)在規(guī)則顯示區(qū)用戶A和用戶B的規(guī)則顯示分別如圖所示,每行作為一條完整規(guī)則,其中IF后面為條件部分,THEN后面為動(dòng)作部分。(在規(guī)則沖突檢測(cè)以及返回檢測(cè)結(jié)果時(shí),規(guī)則的序號(hào)以此顯示順序?yàn)闇?zhǔn)。)

4.2 添加規(guī)則

一條SWRL規(guī)則的形式如Example所示,我們選擇用戶A添加一條規(guī)則,其內(nèi)容表示當(dāng)時(shí)間為晚上時(shí),則關(guān)上窗簾。點(diǎn)擊確認(rèn),重新加載本體便可以看到在A的規(guī)則顯示區(qū)成功添加了該規(guī)則。

4.3 沖突檢測(cè)

當(dāng)前系統(tǒng)中A用戶有四條規(guī)則,B用戶有三條規(guī)則。根據(jù)沖突檢測(cè)的流程,首先應(yīng)該選擇用戶優(yōu)先級(jí),否則將無法啟動(dòng)檢測(cè)模塊。

當(dāng)選擇用戶優(yōu)先級(jí)為A>B時(shí),系統(tǒng)檢測(cè)到未發(fā)生沖突。

當(dāng)選擇用戶優(yōu)先級(jí)為A

當(dāng)選擇用戶優(yōu)先級(jí)為A=B時(shí),根據(jù)上述章節(jié)中的規(guī)則沖突類型分析,我們可以得出目前系統(tǒng)中應(yīng)當(dāng)存在以下幾組沖突。啟動(dòng)檢測(cè),系統(tǒng)檢測(cè)到有沖突發(fā)生,檢測(cè)結(jié)果符合預(yù)期。

(1)A用戶規(guī)則4與B用戶規(guī)則1發(fā)生執(zhí)行矛盾沖突;

(2)A用戶規(guī)則3與B用戶規(guī)則2發(fā)生依賴沖突;

(3)A用戶規(guī)則1與B用戶規(guī)則3發(fā)生條件包含沖突。

參考文獻(xiàn):

[1] CayS.Horstmann, GaryCornell. Java核心技術(shù).卷I,基礎(chǔ)知識(shí)[M].北京:機(jī)械工業(yè)出版社,2016.

[2] 王若思.智能樓宇中規(guī)則驗(yàn)證方法的研究[D].北京:北京郵電大學(xué),2014.

[3] 黃曉輝,李棟,石海龍,等.EasiRCC:面向智能家居的規(guī)則匹配與沖突消除方法[J]. 計(jì)算機(jī)研究與發(fā)展,2017,54(12):2797-2806.

[4] LeeH, JeongYK, LeeIW.A mechanism of ontology-based rule management for smart building energy saving service[C]//InternationalConferenceonICTConvergence. IEEE, 2012:737-738.

【通聯(lián)編輯:王力】

猜你喜歡
智能家居
基于PLC的智能家居控制系統(tǒng)研究
NeST智能家居控制系統(tǒng)的設(shè)計(jì)與應(yīng)用
基于wifi的智能家居設(shè)計(jì)
基于Zigbee的無線通信技術(shù)在智能家居中的應(yīng)用
基于STM32的智能家居控制系統(tǒng)設(shè)計(jì)
智能家居發(fā)展或?qū)?shí)現(xiàn)彎道超車
智能家居未來感初體驗(yàn)
基于ARM cortexTM-A8與Android的智能家居系統(tǒng)
基于LD3320的智能家居控制
通州市| 莒南县| 麻江县| 文水县| 三原县| 筠连县| 右玉县| 隆安县| 广河县| 成都市| 额尔古纳市| 辛集市| 宁海县| 贡嘎县| 拜城县| 霍城县| 关岭| 宣武区| 绥中县| 佛教| 麟游县| 刚察县| 广安市| 永福县| 右玉县| 资兴市| 高清| 郯城县| 若羌县| 潜山县| 习水县| 伊金霍洛旗| 福泉市| 威宁| 武强县| 顺平县| 武乡县| 阿拉善左旗| 双鸭山市| 肇州县| 长治县|