999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

自定義SWRL知識圖譜推理補全插件的實現

2021-01-11 09:12:56蔣同海唐新余季文飛
計算機工程與應用 2021年1期
關鍵詞:規則資源系統

陳 光,蔣同海,王 蒙,唐新余,季文飛

1.中國科學院 新疆理化技術研究所,烏魯木齊830011

2.中國科學院大學,北京100049

3.新疆民族語音語言信息處理實驗室,烏魯木齊830011

4.江蘇中科西北星信息科技有限公司,江蘇 無錫214135

知識圖譜是由具有屬性的實體通過關系邊進行連接而形成的圖型數據結構[1-2],其中圖的節點代表實體(Individual)或者概念(Concept),而圖的邊代表實體或者概念之間的關系(Property)。知識圖譜的本質是一種揭示實體之間關系的語義網絡,是對現實世界的事物及其相互關系進行結構化描述而形成的知識庫[1-2]。在人工智能領域,知識圖譜逐漸成為知識表示、知識鏈接和機器認知的重要手段,在智能搜索、機器翻譯、機器理解、自然語言問答中發揮著重要作用[2],并在大數據風控、推薦系統、金融以及教育等領域應用中得到了廣泛應用[1,3]。

知識圖譜技術經歷了語義網絡、描述邏輯和本體論以及開放鏈接數據[4]等發展階段。當前主流的知識圖譜表達方式[3]是由W3C 制定的基于資源描述框架RDF[5](Resource Description Framework)的網絡本體語言OWL[6](Web Ontology Language)。由于知識圖譜能夠提供高質量的結構化知識數據,因此成為了人工智能應用的基石。但由于大部分的開放知識圖譜,例如Freebase[7]和DBPedia[8]等,都是由人工或者使用半自動的方式構建的,導致這些圖譜中的實體關系通常比較稀疏,大量實體之間的關系沒有被充分的挖掘出來。因此,對知識圖譜中的實體及其關系進行知識補全,從而發現潛在的知識,豐富和擴大知識圖譜的知識含量是知識圖譜的一個重要研究方向。

面向知識圖譜的知識推理是指根據知識圖譜中已有的知識,采用某些方法,推理出新的知識或識別知識圖譜中錯誤知識的技術,是進行知識圖譜補全和知識圖譜去噪的主要手段[9]。知識推理的方法包含了基于規則的推理、基于分布式表示的推理、基于神經網絡的推理以及混合推理[9]。其中基于推理規則進行知識推理,仍是知識圖譜知識補全的重要手段之一。鑒于推理規則在知識補全中的重要性,W3C 在本體描述語言OWL[6]的基礎上,定義了專門用于描述本體推理規則的語言SWRL[10](Semantic Web Rule Language)。

基于SWRL 進行推理推理表述的一大特色是能夠使用SWRL 的插件原語(Built-ins Atom)語法來拓展SWRL知識推理規則的表述能力,SWRL官方已經定義了一些插件[10](Core Build-ins),這些插件能被主流的推理機如Pellet[11]或者Hermit[12]等支持,從而極大地豐富了SWRL在數學計算、字符串處理和時間處理等方面的推理規則表述能力。

但是由于這些SWRL 插件是官方為通用推理場景設計的,因此不能很好地滿足豐富的知識圖譜應用場景下不斷拓展的具體知識推理規則的建模表述需求,使得推理插件的自定義性十分局限。特別是與實時信息獲取相關的推理需求,官方定義的SWRL推理插件不能很好的進行支持,甚至無法通過插件取得當前系統的實時工作時間。這為一些需要依賴當前時間判斷系統組件狀態的推理場景造成了很大的不便。SWRL 官方推理插件的局限性成為了基于推理規則進行知識圖譜知識補全的瓶頸。探索一種將SWRL 知識推理規則中應用的插件進行進一步拓展,使其能夠根據具體的推理需求進行個性化自定義,并實現主流推理機對自定義插件推理支持的方法,是本文的研究動機。

本文首先對知識圖譜知識表示和建模的相關知識進行論述,介紹本體知識圖譜的建模工具和知識推理工具。然后以完成人類本體中人的年齡知識補全的需求為例,探討了基于SWRL插件原語語法建模包含自定義推理插件原語推理規則的建模方法,并通過集成經過注入自定義插件實現源碼的Pellet 推理機到Protégé 知識圖譜建模工具,實現自定義SWRL知識推理插件的推理支持。最后,結合一個具體的智慧養老老人健康小屋知識圖譜知識推理補全需求,應用基于自定義插件實現的SWRL推理規則,實現了健康小屋物聯網系統的實時工作資源組成和資源工作狀態知識推理。從而論述了基于自定義的SWRL 拓展推理插件進行知識圖譜推理補全的實現方法以及在具體知識圖譜推理補全中的應用實踐。

1 相關工作

在應用SWRL 進行本體推理研究方面,文獻[13]將SWRL推理規則應用到故障樹推理領域,將故障樹中事件之間的邏輯關系轉化成SWRL 推理規則,最后通過Jess 推理引擎進行推理,挖掘出故障樹中的隱含知識。文獻[14]在物品的認知及推理研究中,通過制定SWRL規則實現了物品功能屬性和操作動作的自動獲取。以上研究在其推理規則編寫中,只用到了基礎的類表達式原語和屬性表達式原語就完成了建模的需求,并沒有對SWRL的建模能力進行進一步的拓展。文獻[15]側重于應用SWRL 的拓展查詢規則語言SQWRL 進行知識本體的查詢檢索,并實現了一個知識查詢檢索框架和界面,但并不涉及知識推理補全和內容。文獻[16]將SWRL 應用到城市公交線路途經站點的知識推理補全中,證明了通過SWRL推理可以對本體中蘊含的知識進行有效的推理,改善和優化知識查詢的結果,但是其僅僅是基于SWRL的基礎原語進行SWRL規則建模,而沒有在其應用場景中應用到一些SWRL 中不存在的特殊推理插件原語。文獻[15]在基于本體的知識庫研究中提到了SWRL內置原子(Built-ins)可以通過開放式假設增加新的概念定義提升本體的推理能力并拓展本體知識庫,但是并沒有給出明確的實現新增推理概念以提升SWRL推理能力的具體方法。

本文在OWL 本體語法規則和SWRL 規則的基礎上,在第2章中給出了基于本體推理規則進行推理需要使用的推理工具以及推理方法。在第3 章中詳細討論了SWRL自定義插件的實現方法,并在第4章中詳細的給出了支持自定義SWRL 插件原語的推理機在本體建模工具中集成方法。從而詳細的描述了在知識圖譜中建模自定義SWRL 插件原語并在推理機中實現推理支持的方法,豐富了SWRL的規則建模表述和推理能力。

在應用SWRL 推理規則進行本體物聯網推理的研究方面,文獻[17]側重于將不同本體物聯網模型進行語義協同,從而為用戶提供滿足其偏好的特殊服務,但沒有提供物聯網本體模型的建模方法和建模實例。文獻[18]通過實驗驗證了本體物聯網模型結合推理技術獲得更加豐富的蘊含知識以更好地滿足用戶信息查詢的可能性。但在時間推理和多事件聯合推理的實現方法上表述的不夠明確,雖然提到使用了Jena的推理機和時間推理鏈的算法,但是對于使用何種技術基于編程還是推理規則實現此推理鏈沒有明確的說明。

本文在第5 章應用SWRL 進行知識圖譜補全的實踐中,提出了一個明確的物聯網系統本體維度體系結構建模的自動建模框架,建模了一套用于進行物聯網系統資源和行為自動分類、組成檢測和故障診斷的包含自定義推理插件的SWRL推理規則,基于物聯網系統實時本體模型進行物聯網系統知識圖譜的自動知識推理補全。從實踐的層面上對所提出的自定義SWRL 知識圖譜推理補全插件實現方法進行了驗證。

2 預備知識

本體知識圖譜建模理論經歷了一個不斷發展完善的過程,并且到目前還在持續發展的進程中。涉及的內容廣泛而豐富,由于篇幅限制,本文中不會將具體的建模理論語法規則一一列出,但是會給出較為官方的理論規則介紹文獻引用。

早在2000 年,萬維網之父蒂姆·伯納斯-李(Tim Berners-Lee)就提出了語義網的概念和層次結構[19]。在URI[20]和XML[21]的基礎上,W3C 于2004 年正式發布了第一個基礎本體建模語言RDF[5]。

RDF 確定了以三元組的形式來表示實體資源(Resource)與資源之間的連接關系(Property),成為了語義網和知識圖譜進行知識實體與關系表示的基礎。直到現在,主流知識圖譜和語義本體中的原子知識表示都是以三元組的形式存在的。但RDF的表述能力十分有限,并不具備表達實體的概念類和類屬性的能力,只能算作原始的本體語言。

為了進一步拓展本體的建模表述能力,在繼承RDF語法的基礎上,W3C 制定了面向語義網的本體語言OWL[6],OWL 拓展了表述基本類(Simple Class)、個體(Individuals)、屬性(Simple Properties)以及屬性特征(Property Characteristics)和屬性約束(Property Restrictions)的建模能力。OWL 還定義了本體映射(Ontology Mapping)的描述類規則,使得本體建模能夠在已有類和屬性的基礎上,以等價(Equivalence)的形式衍生新的類或屬性。

在RDF的基礎上引入本體(Ontology),極大地豐富了知識圖譜本體建模的表述能力,但OWL 仍然不能表述“IF-THEN”邏輯的知識產生式規則,僅僅依靠OWL進行知識表示的能力有限。比如:即使已經有基本類“人”(Person)和數據屬性“有年齡”(hasAge),仍然不能通過本體映射表達“屬豬的人”(PigSignPerson)這樣的概念。為了表述“屬豬的人(在2019 年)是年齡對12 取余為0這樣的概念”,仍需要進一步拓展OWL的建模表述能力。為此,W3C基于RuleML[22]定義了SWRL[10]。

SWRL[10]通過描述本體建模中的公理(Axioms)使得OWL 描述語言的表述能力進一步得到擴展,一個SWRL 推理規則分為前驅(Antecedent)和結論(Consequent)兩部分,兩部分都由若干個無序的原語(Atom)組成。在本體建模中能夠同時創建多個SWRL規則,規則之間構成邏輯或的關系,規則內的原語之間構成邏輯與的關系。SWRL原語可以分為以下幾類[23]:類表達式原語(Class Expersion Atom)、屬性表達式原語(Property Expersion Atom)、數據范圍限制原語(Data Range Restriction Atom)和SWRL核心插件原語(Core Build-ins Atom)。其中核心插件原語(Core Build-ins Atom)是通過由W3C官方定義的一系列核心拓展插件(Core Builtins)來進一步拓展SWRL規則的建模表述能力,這些插件在SWRL 的插件原語(Built-ins Atom)中使用,從而豐富了SWRL在數學計算,字符串處理和時間處理等方面的推理規則表述能力。

基于OWL使用SWRL已經能夠對知識圖譜本體建模中的很多概念以及推理規則進行表述,但SWRL仍然存在一定的局限性。比如,雖然SWRL通過時間拓展插件[10](Built-ins for Date,Time and Duration)能夠很好地處理與時間相關的操作,但是卻沒有辦法獲得當前的時間,而在很多知識圖譜建模場景下,都需要獲得當前的時間來判斷一些實體的實時狀態。為此,需要再進一步拓展SWRL的表述能力,實現一些自定義的SWRL推理拓展插件,從而更好地滿足更廣泛的知識圖譜推理補全應用需求。SWRL從語法上支持用戶自定義插件,使用與Core Build-ins 一樣的插件語法進行拓展,為了加以區分,將這類用戶自定義原語稱為自定義插件原語(Custrom Build-ins Atom)。自定義插件的使用方式與核心拓展插件(Core Build-ins)的使用方法完全一致,在SWRL插件原語中進行聲明。

為了更好地說明使用自定義SWRL 插件進行知識圖譜建模和知識推理的方法,以一個簡單的人(Person)類本體知識圖譜中,通過自定義插件補全人的年齡的例子進行說明。鑒于RDF 和OWL 語法規則不是本文的論述重點,為了提高建模和說明的效率,使用經典建模工具Protégé[24]對人類本體知識圖譜進行建模如圖1 所示,Protégé 的菜單功能介紹和詳細使用方法可以參考文獻[25]。

圖1 使用Protégé可視化建模本體“人”

在圖1所示的本體知識圖譜模型中,創建了人的概念(Person),并創建了2 個人的個體實例張三和李四。定義了2 個數據屬性(Data Property)分別表示“有年齡(hasAge)”和“有生日(hasBirth)”,并規定其定義域均為Person,值域分別為標準整形和日期數據類型。然后為張三和李四分別添加生日,張三的生日為1988-11-27日。希望根據當前的年份通過知識推理的方式,動態地計算并補全張三和李四的hasAge屬性。因此基于SWRL的語法,定義了一個補全年齡屬性的SWRL推理規則如圖1下側所示。

在這個推理規則中,首先通過類表達式原語和屬性表達式原語取出一個人的生日?birth。然后將生日裝入一個自定義插件原語calculateAge,此插件原語接收人的生日?birth 并根據當前的系統時間計算出年齡?age。最后在此SWRL規則的結論部分,通過屬性表達式原語hasAge將計算得到的年齡賦值給對應的人,從而完成人的年齡屬性的知識補全。

需要特別注意的是Protégé 5.5版本的SWRLTab頁面目前不能很好地支持自定義插件原語的錄入,這些自定義插件原語是通過修改對應的基礎本體OWL 文件,基于SWRL 的RDF/XML 語法規則,以手動的方式修改錄入的。Protégé 5.5可以展示出這些插件原語,但無法進行修改和保存。

另外SWRL只對本體中的推理規則進行描述,但并不實際執行這些規則的推理,如圖1 的模型中可以看出,個體張三只有hasBirth 而沒有hasAge 屬性,這是由于基于OWL 語法規則和SWRL 推理規則的推理執行都是由推理機完成的。知識圖譜本體模型的常見推理機包含了Jess[26]、Racer[11]、Fact++[11]、Hermit[12]、Jena[27]和Pellet[11]等等。Protégé 5.5已經自帶了Hermit推理機,通過“File”菜單中的“Check For Plug-in”還可以安裝其他的推理機包括Pellet。

不同的推理機對于OWL語法規則和SWRL推理規則的支持各不相同,甚至對于SWRL中不同類型的組成原語的支持也有所差別。各個推理機對于OWL+SWRL的推理支持情況如表1所示。其中“未知”表示沒有找到相關的文獻或者實驗方法,“編碼支持”表示需要修改推理機源代碼并重新編譯打包才能夠支持。另外Jena不能夠直接支持SWRL,但是提供了另外一種形式的推理規則表述方法JenaRules,并提供了API進行推理規則的推理支持,規則的錄入和推理都依賴于編碼,并且不能與Protégé進行集成。

表1 推理機對本體推理規則支持情況表

本文選擇能夠支持用戶自定義插件原語的Pellet推理機進行自定義插件實現。原生的Pellet推理機不能直接支持自定義插件的推理,需要通過修改推理機源代碼的方式,使用Pellet 插件注冊類注入自定義插件才能實現推理支持。

3 Pellet推理機實現SWRL自定義插件

為了在Pellet 中集成自定義插件calculate Age,首先需要從GitHub 上(https://github.com/stardogunion/pellet/tree-/maven)下載Pellet 的源代碼,需要注意的是GutHub上提供了很多Pellet的分支源碼下載,一些較新的分支版本例如Pellet-Master不支持在自定義插件中傳入個體實例(Individual),插件編寫的接口API也有所變化和調整。本文下載的是Pellet2.3.2 版本,工程名稱為“Pellet-Maven”,此版本能夠較好地支持在自定義插件中傳入個體變量作為參數,且運行相對穩定。

Pellet源碼包是一個Maven項目[28],需要使用集成了Maven 功能的IDE 進行導入,本研究使用的是Eclipse Mars+Maven 2.4.3作為實驗集成環境。Pellet的根項目Pellet-Maven 中包含了若干個子項目,包括Core(Pellet核心推理包,包含了Pellet 的核心推理算法實現),Jena(Pellet 與Jena 集成的API 工程)等等,為了在推理算法中注入我們的插件實現代碼,需要修改Pellet的Core工程。在此工程中新建一個自定義的Java 源碼包(cas.ucas.chengaung.swrl.plugins),并新建一個插件實現類(Calculate Age PlugIn),讓它實現Pellet的Built In和Binding Helper 接口,Eclipse IDE 就會自動生成需要實現的接口函數。

BuiltIn 和Binding Helper 接口實現了Pellet 推理機針對SWRL 中各個插件組成原語的推理實現回調接口。Pellet推理機處理SWRL推理規則的處理方法如算法1所示。

算法1 Pellet推理機處理SWRL組成原語算法

輸入:SWRL規則,包含各插件原語集合A={…I,J,K…}

輸出:SWRL推理規則是否成功執行

1.獲取各原語插件實現類,完成插件是否正確配置的檢測

Binding Helper helper=create Helper(Built In Atom atom)

2.獲得各原語需要的已綁定才能執行的變量集合

Collection N=get Prerequisite Vars(Collection bound)

3.獲得各原語插件可以綁定的變量

Collection C=get Bindable Vars(Collection bound)

4.根據SWRL推理規則中,各個組成原語Atom的N集合和C集合,生成SWRL原語調用順序序列。

設當前已經綁定的變量集合為R,對于調用序列中的任意2個原語I和J,必須滿足:R∪CI?NJ如果能夠滿足,繼續執行步驟5

如果無論如何調整調用順序都不能滿足R∪CI?NJ,:

返回:不能執行(忽略此SWRL的執行)

5.按照調用序列循環調用各個原語實現插件,針對其中的每個插件實現:

(1)通過回調接口,傳入已經綁定的所有變量和變量值:rebind(Variable Binding new Binding)

(2)通過回調接口,獲取此插件是否按照傳入變量成功處理其功能業務:boolean select Next Binding()

(3)如果插件功能處理成功,通過回調接口獲取新的綁定變量值:set Current Binding(Variable Binding current Binding)

6.若所有的插件都成功執行并綁定變量,返回:執行成功

對于建模時在SWRL 推理規則中使用的自定義插件,只需編碼此插件實現Built In 和Binding Helper 的實現類,就可以實現Pellet 推理機的推理加載支持了。此實現類中已經包含了算法1 中所列出的關鍵回調函數。如算法1 中create Helper 接口用于獲取一個進行數據綁定的幫助者實例,由于已經實現了Binding Helper接口,因此可以直接返回本類引用this。create Helper回傳了一個atom原語,它代表在建模本體知識圖譜SWRL規則時,編寫在本體文件中的calculate-Age 插件原語,通過這個原語可以獲得在本體模型中聲明的變量參數,比如?birth和?age。在回調函數create Helper中一般完成自定義原語聲明變量的合法性檢查和初始化工作。

如算法1 中get Bindable Vars 函數和get Prerequ-isite-Vars函數分別返回了此自定義插件能夠綁定的變量和需要預先綁定才能執行的變量。Pellet會依據這兩個函數的返回結果,確定一個SWRL推理規則中前驅部分包含的所有原語的安全調用順序序列。具體的講,如算法1 中第4 步所示,Pellet 推理機根據get Bindable Vars 確定了一個插件原語能夠綁定的變量,根據get Prerequisite-Vars確定一個插件原語需要已經綁定變量的條件,從而動態地調整各個原語的調用順序。在SWRL 推理規則被執行的時候,這兩個函數會被反復調用,如果無論各原語的調用順序如何調整都不能使得通過get Bindable-Vars 確定的可綁定變量集合滿足某個插件的get Prerequisite Vars變量要求,則Pellet會給出推理異常警告,忽略此SWRL 規則的執行。在計算年齡自定義插件的例子中get Bindable Vars 返回?age(Age Key),而get Prerequisite Vars返回?birth(Birth DayKey),表達此插件在執行前需要保證?birth 變量被綁定,并且此插件在執行后能夠綁定?age作為返回結果。

如算法1中的rebind函數會在一個具體的推理變量集合被裝填時調用,比如裝填了張三的生日1988-11-27作為?birth(Birth DayKey)的值。通過此回調函數回傳的newBinding參數,可以取到對應的數值并進行自定義計算。如算法1 中的selectNextBinding 在rebind 函數之后執行,返回一個布爾型的表示自定義計算rebind是否執行成功的結果。如果成功,則算法1 中的set Current-Binding 被調用,用于注入計算的返回結果到綁定變量集合中。

4 集成自定義Pellet推理機到Protégé

Pellet 以插件拓展包的形式被Protégé 本體知識圖譜建模工具加載。為了編譯注入了在第3 章中實現的Pellet Core核心推理源代碼的Pellet插件包Pellet-CG,需要首先從GitHub(https://github.com/stardogunion/pellet/tree/master)上下載Pellet的Protégé插件源碼包Protege,導入Eclipse并修改其pom文件的工程依賴為2.3.2如圖2所示。

圖2 導入Pellet-Protege工程并修改工程依賴

圖3 新建推理機獲取接口并注入自定義插件

圖4 修改Protégé插件自述XML文件

需要注意的是Pellet-Protege 工程編譯上需要依賴pellet-core、pellet-owlapi3、pellet-modularity等工程依賴,這些在Pellet-Maven 的子項目中都提供了工程源代碼,請確保在IDE中打開了它們或者使用Maven的intall命令安裝了這些基礎依賴包,才能順利地編譯Pellet-Protege工程。

在工程中新建Pellet CG Reasoner Factory 推理機工廠類,將第3 章中編寫好的自定義插件注入到Pellet 的推理機獲取接口中,如圖3所示。

然后修改Protégé的插件自述文件“plugin.xml”如圖4 所示,仿照Pellet-2.3 的配置注入了自定義插件Pellet-CG,配置其在Protégé 中顯示的名稱,對應實現類配置為上一步中的PelletCGReasoner-Factory的工程全路徑。

這樣就可以通過導出jar 包的形式,導出經過推理插件源碼注入的Pellet 插件jar 包pellet-cg,并通過將此jar 包拷貝到Protégé 安裝目錄下的plugins 文件夾下,完成自定義Pellet-CG推理機的安裝。注意在導出jar包的時候必須選擇使用工程中的META-INF文件,否則將導致Protégé不能正確的加載Pellet推理機。

最后,重新啟動Protégé本體知識圖譜建模工具,就可以使用經過注入了自定義SWRL 插件實現的Pellet-CG 推理機,基于包含自定義插件原語calculateAge 的SWRL推理規則進行推理,完成人類知識圖譜中人的年齡的知識補全,如圖5所示。

圖5 使用Pellet-CG推理機完成年齡推理

5 基于SWRL自定義插件進行知識補全

通過第3 章和第4 章的討論,已經明確了在知識圖譜SWRL推理補全規則中使用自定義插件,并實現推理支持的方法。由于插件所需要實現的功能是使用者根據實際知識圖譜的推理補全需求靈活自定義的,因此這種方法適用于任何應用SWRL 推理規則進行知識圖譜知識補全的應用場景。

本章將應用自定義插件到一個智慧養老老人健康小屋物聯網系統的知識圖譜推理補全實踐中,以應用基于自定義插件的SWRL 推理規則從低級的系統傳感數據,推理和補全出系統組成和系統工作狀態以及故障狀態的高級知識。本章內容僅僅作為一個實際應用案例,研究人員可以根據自己的應用需求場景靈活自定義SWRL 插件,并通過編碼注入的方式實現推理機支持,從而實現對應的知識圖譜推理補全需求。

在智慧養老老人健康小屋物聯網系統中,接入了3個溫度傳感器用于感知室內溫度,接入了1臺空調設備進行制冷,接入了1臺暖氣設備用于制熱。所有的設備和傳感器都由云端中控服務統一調度。系統需要保障室內溫度在有效的時間范圍內達到老人生活的最適宜溫度26 ℃。此物聯網系統的基礎本體知識圖譜概念模型如圖6所示。

如圖6所示,智慧養老老人健康小屋物聯網系統模型共建模了17 種物聯網系統概念,包括代表物聯網系統本身的物聯網系統類(IOTSystem),代表物聯網系統所處物理環境的環境類(Environment),代表物聯網系統中各個組件資源(包括傳感器和云端控制服務)的資源類(Resource),以及代表資源所產生的物聯網系統行為的行為類(Behavior)。各個類別又細分為若干子類,例如資源類(Resrouce)從資源的功能角度上看,又可以分為傳感器資源(Sensor)、中控服務資源(Service)和控制類實體資源(Controller)。從資源的狀態角度上看,可以把資源細分為處于工作中的資源(WorkingResource)、已經發生故障的資源(FaultResource)和當前不能判定其狀態的資源(UnknownResource)。

健康小屋物聯網系統中的概念類分別衍生出13種不同的對象屬性(Object Propertity)和12 種數據屬性(Data Prpoerty)。對象屬性連接到本體模型中的其他個體,數據屬性則直接連接到一個具體的值。以資源(Resource)為例,它包含可以連接到一個物聯網系統的屬性“屬于系統(belongSystem)”,表示這個資源所屬的物聯網系統。也包含了連接到行為類的“執行了行為(execBehavior)”和“接收了行為(takeBehavior)”,分別表示此物聯網系統資源產生了某種行為,和接收了其他物聯網系統資源發送的行為。例如,傳感器產生了溫度感知的行為,空調控制實體資源接收了來自中控服務的控制命令。資源(Resrouce)同時也包含了一些數據屬性,例如,代表唯一標識的“標識地址(identyURI)”以及代表此資源被判定為故障資源的原因“故障原因(faultReason)”等等。

健康小屋的基礎本體模型中包含了對物聯網系統所處的物理環境以及物聯網系統資源的抽象概念表述,但基礎模型中不包含具體的實例和數據。比如,已經明確了存在傳感器的概念,描述傳感器應該有哪些數據屬性或者對象關聯屬性,但是這個時候我們還不能確定物聯網系統中有哪些實際的傳感器實例。

為了在對物聯網系統的侵入性最小的前提下完成本體物聯網系統的自動實例建模,將基于Java語言編寫一個本體建模中間件,本體建模中間件以代理的模式接入到健康小屋物聯網系統的傳感控制資源與云端中控服務之間,實現感知數據代理和控制命令的轉發,具體的實現架構如圖7所示。

圖6 健康小屋物聯網系統基礎本體模型

健康小屋物聯網系統自動建模實現架構的工作原理概括如下:自動建模中間件首先加載基礎本體模型中的概念,并依據這些模型中的概念和接受到的感知數據與控制命令,使用Jena Ontology API[29]自動創建對應的物聯網系統感知與控制行為實例,并提供一個HTTP服務,用于輸出當前實時的帶有感知行為實例的物聯網本體基礎事實模型。在實驗環境中通過運行中間件,一共從老人健康小屋物聯網系統中采集到3 個溫度感知實體,2個溫度控制實體和1個中控服務實體,并采集到這些實體之間相互發生和作用的行為(Behavior)實例共計531個。

物聯網實時HTTP 輸出服務包含了物聯網系統的實時資源行為信息,但不包含系統構成,系統組成和各資源工作狀態判定的高級知識,需要通過SWRL推理規則來對這些高級知識進行知識圖譜推理補全。首先通過Protégé 工具讀取本體中間件HTTP 輸出服務提供的帶有感知數據和控制命令的物聯網系統最新的行為信息。然后參照第3 章和第4 章中提出的方法,使用集成在Protégé 中經過源代碼修改和重新編譯的Pellet-CG(Pellet推理機注入了自定義推理插件的實現)進行模型推理,從而最后補全所有能夠被推理的物聯網系統組成和各資源故障狀態的高級知識,實現物聯網系統狀態的實時運行狀態監控。

健康小屋物聯網系統建模了34條知識補全推理規則如圖8 所示,在這些推理規則中使用了“durInSec”和“httpTestStatus”這兩種自定義插件原語。推理規則中包含了用于將物聯網系統和行為關聯起來的“行為屬性規則”;用于完成健康小屋物聯網系統資源和行為自動分類的“行為分類規則”與“資源分類規則”;用于進行健康小屋物聯網系統資源故障診斷的“資源故障規則”;基于系統資源工作狀態的推理結果進行物聯網系統自動控制的“系統自動控制規則”;以及基于行為和資源分類與資源故障推理結果進行物聯網系統資源構成知識補全的系“統資源構成規則”。限于篇幅,本文不能將這些規則的功能進行一一論述,但會詳細說明使用到自定義推理插件實現知識圖譜推理補全的推理規則,以突出自定義SWRL 推理插件在健康小屋知識圖譜推理補全中發揮的作用。

圖7 物聯網系統實例建模實現框架

圖8 健康小屋物聯網系統SWRL推理規則

如圖8 中的“行為分類規則”用于對建模中間件捕獲到的物聯網系統行為進行分類。其中最為重要的就是判定物聯網系統的實時最新行為,如“行為分類規則3”所示,這條規則的核心思想是把發生在當前時間10 s內的規則歸類為最近發生的行為(RecentBehavior)。這就涉及到取出當前的系統時間,并與行為發生的時間做出比較,如果單純的基于SWRL 核心推理插件(Core Built-ins)是無法實現這個功能的,因此使用了一個自定義插件原語“durInSec”插件原語,這個插件原語的功能是根據系統當前的時間和物聯網行為的發生時間(happenedTime)計算從發生時間到當前時間已經經過了多少秒鐘,從而進一步通過比較此結果是否小于10 而判斷此物聯網行為是否為近期行為。

在健康小屋物聯網系統中,如果控制資源(空調或者暖氣)接收了最近行為(RecentBehavior),則根據最近行為中最新的一條行為的執行情況,即可判定其工作狀態:如果控制資源在10 s 內接收到控制指令并成功處理,可以充分地判定控制資源處于工作狀態;相反如果接收到控制命令卻處理失敗,則可以判定控制資源發生故障。但如果控制資源最近10 s 沒有處理過任何行為(控制指令),那么不能簡單地判定其處于故障狀態,因為在云端中控服務故障的情況下,也會導致空調或者暖氣控制實體不處理任何的控制行為。

為了進一步判斷控制資源的工作狀態,我們編寫了一個能夠發送HTTP 請求的自定義原語插件“httpTest-Status ”,如圖8中“資源故障規則05和06”所示,傳入控制器實體(?c),和需要發送的命令(Test),即可發送一條http 請求,獲得對應的返回結果(?code),從而進一步判定控制實體的工作狀態。這個自定義插件實現的代碼并不困難,因為基于資源分類的推理結果,對于傳入的控制資源實例(?c),已經可以明確地取出其服務地址和端口信息。但是如果不能進行插件代碼的自定義編寫而僅僅依靠SWRL 官方定義的插件原語是根本無法實現這個推理補全需求的。

基于這些包含自定義插件的SWRL推理規則,可以從整體上完成一個物聯網系統的工作狀態的知識補全,如圖9所示,展示了經過知識推理補全后老人健康小屋物聯網系統的當前實時的系統組成和工作狀態。

圖9 健康小屋物聯網系統資源構成知識補全結果

如圖9所示,可以看出此系統目前接入了一個傳感器,一個中控服務和一個控制器,并且控制器已經出現了故障。點擊對應的資源鏈接,如圖9右側藍色下劃線部分所示,可以直接打開對應的物聯網控制器資源,展示其具體的資源分類和故障原因如圖10所示。可以看出一個控制器資源由于最近沒有正確處理所接收到的控制指令而被推理為故障狀態。

圖10 健康小屋物聯網系統資源故障規則知識推理結果

應用包含自定義推理插件的SWRL推理規則,成功地完成了老人健康小屋中系統資源組成和系統故障診斷的高級知識推理補全,使得老人健康小屋知識圖譜的知識含量進一步豐富,并且基于推理知識補全的結果,為基于老人健康小屋知識圖譜實現系統實時自動控制打下了很好的基礎。

6 結束語

知識圖譜是人工智能應用的基石,基于推理規則進行知識推理是知識圖譜知識補全的重要方法。本文提出了一個在SWRL 知識推理規則中使用自定義插件原語,并實現Pellet 推理機對這些自定義原語推理支持的實現方法。并對如何基于Pellet中插件的實現接口進行自定義推理插件的代碼實現方式,以及在Protégé 知識建模工具中集成經過源代碼修改的推理機的插件集成方法進行了比較完整和詳細的論述。為使用知識推理進行知識圖譜知識補全提供了更加豐富和自由的推理規則建模表述和推理支持實現能力。在老人健康小屋知識圖譜的建模推理實踐中,充分地證明了基于自定義推理插件的SWRL 推理規則能夠有效地從低級傳感數據中挖掘和補全高級的系統工作知識,實現系統狀態的自動感知和故障的推理判斷。

未來的研究工作可以考慮將一些更加復雜的知識推理算法,例如機器學習和深度學習算法的實現為一個集成的自定義知識推理插件,以進一步拓展使用SWRL自定義規則進行知識補全的表述和推理能力。未來的研究工作也需要研究如何應對在大規模使用自定義SWRL 推理規則的應用場景中進行推理規則的沖突消解,以及推理規則執行的并行優化的問題。

未來的研究工作還需要研究如何將SWRL 自定義推理規則,應用到更多具體的知識圖譜建模場景之下,從而豐富基于SWRL 自定義推理規則進行知識圖譜建模和知識圖譜推理補全的實踐應用層面,體現基于知識圖譜和推理技術解決實際應用問題的研究價值。

猜你喜歡
規則資源系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
撐竿跳規則的制定
基礎教育資源展示
數獨的規則和演變
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
一樣的資源,不一樣的收獲
資源回收
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 一级做a爰片久久免费| 五月激激激综合网色播免费| 91无码人妻精品一区二区蜜桃| 国产精品国产三级国产专业不| 久久综合伊人77777| 少妇高潮惨叫久久久久久| 午夜天堂视频| 中文字幕免费视频| 日韩精品毛片| 新SSS无码手机在线观看| 欧美色丁香| 三上悠亚在线精品二区| 亚洲欧美h| 永久免费无码成人网站| 国产精品视频白浆免费视频| 国产精品粉嫩| 国产内射一区亚洲| 91麻豆国产在线| 国产内射一区亚洲| 欧美人人干| 2021无码专区人妻系列日韩| 久久国产拍爱| 小说 亚洲 无码 精品| 伊人久久大香线蕉成人综合网| 国产av色站网站| 久996视频精品免费观看| 乱系列中文字幕在线视频 | аⅴ资源中文在线天堂| 99草精品视频| 亚洲国产精品无码AV| 免费无码AV片在线观看国产| 欧美精品成人| 精品少妇人妻一区二区| 四虎永久在线视频| 呦女亚洲一区精品| 97亚洲色综久久精品| 免费国产高清精品一区在线| 韩日无码在线不卡| 国产男人的天堂| 国产精品美女网站| 漂亮人妻被中出中文字幕久久| 国产激爽大片在线播放| 国产精品自在线天天看片| 久久人午夜亚洲精品无码区| 欧美第一页在线| 精品久久国产综合精麻豆| 亚洲欧美成人| 亚洲人成网站18禁动漫无码| 亚洲欧美日韩中文字幕在线| 午夜激情婷婷| 欧美在线一二区| 99精品热视频这里只有精品7 | 亚洲精品无码成人片在线观看| 久久国产精品电影| 2018日日摸夜夜添狠狠躁| 日本一本在线视频| 久久中文电影| 亚洲成人网在线播放| 亚洲天堂精品视频| 午夜无码一区二区三区| 国产精品三级专区| 黄色在线不卡| 99热这里只有免费国产精品 | 色窝窝免费一区二区三区 | 18禁高潮出水呻吟娇喘蜜芽| 欧美成人日韩| 自拍偷拍欧美| av色爱 天堂网| 高清不卡毛片| 日韩最新中文字幕| 伊人成人在线视频| 久久特级毛片| 97影院午夜在线观看视频| 国产特级毛片aaaaaa| 亚洲精品爱草草视频在线| 色综合天天操| 伊人激情综合网| 青草91视频免费观看| 欧美日韩国产高清一区二区三区| 亚洲Aⅴ无码专区在线观看q| 在线播放国产99re| 日韩在线欧美在线|