濮逸佳,杜宏偉
(江蘇科技大學 計算機科學與工程學院,江蘇 鎮江 212003)
目前,計算機的普及率越來越高,應用范圍也越來越廣,但由于各種原因,在使用過程中,計算機故障也隨之產生,給用戶帶來了極大不便。怎樣有效地進行計算機故障診斷,快速準確地判斷故障原因,找到故障排除方法,減少給生活和工作造成的影響,成為人們亟待解決的問題。文獻[1]基于故障樹實現計算機確定性故障診斷,基于BP神經網絡實現不確定性故障診斷。文獻[2]構建計算機維護本體,利用Jena推理,設計了一個計算機維護信息檢索系統。文獻[3]基于貝葉斯網絡設計了一個電子設備故障診斷系統。文獻[4]建立了一種基于案例推理技術的裝備故障診斷系統等。通過分析發現,現有計算機故障診斷系統缺乏知識的共享和復用,以及自動語義推理和擴展功能,為解決這些問題,本文引入了基于語義的解決方案。
我們認為語義網語言及技術,尤其是本體和規則,能解決現有的語義鴻溝,其主要原因是:
1)本體和規則能明確和正式地表達領域知識,本體和規則又可用語義表達語言OWL,SWRL和RDF來形式化。本體,源于哲學,是探索存在的知識[5],有助于知識共享和重用。SWRL(Semantic Web Rule Language)是以語義的方式呈現規則的一種語言。SWRL語言集本體和規則于一體,能夠提供更強的邏輯表達能力。目前SWRL已經成為W3C的規范之一[6]。這些語言的特點是高度的表達能力和建模能力,它們能用準確合理的方式,形式化一個復雜的模型。
2)OWL本體和SWRL規則能用邏輯推理機進行處理。利用SWRL規則對本體中的語義信息進一步推理和擴展,能滿足使用者提高故障診斷系統智能化的需求。
綜合以上分析,文中提出了一種基于本體和規則的計算機故障診斷系統。文中構建了計算機硬件的OWL本體以及相關的 SWRL(Semantic Web Rule Language)規則,并在此基礎上運用Jess推理引擎實現了計算機故障診斷的應用模型。在智能化的計算機故障診斷系統輔助下,售后服務人員、計算機維修人員和用戶診斷故障的效率和準確率將會大大提高,并且易于推廣到其他設備的故障診斷中,具有重要的現實意義和應用價值。
文中研究的系統用于診斷計算機故障,能根據計算機的故障現象,通過基于本體和規則的推理,快速判斷故障原因,提供用戶故障排除方法,系統框架如圖1所示。

圖1 計算機故障診斷系統框架圖Fig.1 Framework of computer fault diagnosis system
1)計算機故障診斷領域本體是整個系統的概念基礎,提供了本體的層次結構,也是構建規則的基礎。
2)計算機故障診斷本體知識庫用于支持本體的標準框架。用OWL DL構建本體,本體主要構成元素是概念,屬性和實例。還包含了領域本體經過描述邏輯推理后的隱含信息。
3)使用基于描述邏輯的本體推理機——RACER[7]對本體進行推理,從而檢驗本體一致性,發現隱含信息,建立更好的層次關系,使OWL知識庫中信息完整。
4)SWRL是基于本體的規則語言。結合本體的概念,屬性和實例,構建起SWRL規則庫。
5)調用SWRLJESS TAB插件將OWL知識庫轉換為Jess事實庫,將SWRL規則庫轉換為Jess規則庫。
6)運用Jess推理機,結合事實庫和規則庫,進行推理,得出新的事實。
7)更新和擴充本體知識庫。調用SWRLJESSTAB插件將Jess推理出的結果進行格式轉換并保存。
本系統目的是能幫助人們快速判斷故障原因,找到故障排除方法,保障各項工作順利進行。本體研究的對象是計算機故障診斷知識。計算機故障診斷本體的目標用戶是:計算機用戶和計算機維護人員。系統的數據來源主要是電腦維修書籍,還從網絡上收集補充了一些信息。由于計算機組成和診斷的復雜性和本文篇幅的局限性,本文構建的本體主要從計算機硬件入手。
計算機運行中,經常會由于某些硬件故障或軟件故障無法運行,嚴重影響計算機的正常使用。計算機硬件故障是指計算機中的板卡不見及外部設備等硬件發生接觸不良、性能下降、電路元件損壞或機械方面的問題引起的故障[8]。本體的類通常也被稱為概念,計算機硬件是指計算機的物理部件,在定義計算機本體概念時,從其主要部件組成出發,采用由頂向下法建立概念層次。硬件系統通常由CPU(中央處理器)、存儲器(包括內存、硬盤等)、輸入設備(鍵盤、鼠標等)、輸出設備(顯示器、打印機、音箱等)、接口設備(主板、顯卡、網卡、聲卡、光驅)等組成。針對以上特點,本研究構建本體主要包括:計算機硬件、診斷維修工具和狀態,計算機硬件又分為CPU及其散熱風扇、存儲器、輸入設備、輸出設備、接口設備、電源這6個類。具體的分類如圖2所示。

圖2 計算機硬件類分類層次Fig.2 Classification level of computer hardware
計算機硬件故障通常導致無法開機,系統無法啟動、某個設備無法正常運行、死機、藍屏等故障現象,嚴重時常常伴著發燙、鳴響、電火花等現象。因此,計算機本體的屬性主要是為了描述計算機可能涉及的以上各種故障現象如:死機、藍屏、發燙、鳴響等。一個診斷規則的body部分屬性關系以A(x,y)的謂詞形式定義,其中A代表一個故障現象的謂詞,x和y則是變量,OWL 實例或數據值。 例如:isSilent(x,y)表示無聲現象;表示有噪聲現象。
診斷規則的head部分屬性以 C(x,y)的形式定義,其中C代表了一個排除故障的動作或操作的謂詞,x和y也是變量,OWL實例或數據值。例如Replace(x,y)表示更換操作屬性,Clean(x,y)表示清理操作屬性,Adjust(x,y)表示調整操作屬性。建立屬性時,還要限定定義域和值域的范圍。
實例是本體中用于描述具體語義概念的原語[9]。建好本體的概念和屬性后,繼續完成實例的創建。創建實例的過程是:首先確定一個類,然后輸入實例名,最后選擇或填寫相關屬性的值。
在語義網中,用SWRL規則支持規則系統互操作性。SWRL允許用戶編寫Horn-like規則,以本體為基礎,利用本體實例和屬性建立Atom子句,這些子句再組成Imp中的head和body,最后組成推理式[10]。規則能用于從現存的OWL知識庫中推斷出新的知識。
SWRL規則推理OWL實例,主要依據OWL類和屬性。例如,一個SWRL規則表達了:a person with a male sibling has a brother, 要求在 OWL 中捕獲概念 ‘person’, ‘male’,‘sibling’ 和‘brother’。 直觀地,person 和 male 概念能用一個OWL類來記錄,這個OWL類叫Person,有一個子類Man;sibling和brother關系可用OWL屬性hasSibling和has Brother來表達,它們附屬于Person。在SWRL中的規則是:
Person (?x1) hasSibling (?x1,?x2) Man (?x2) →hasBrother(?x1,?x2)
以上關系在OWL中則不能實現。可以看出,本體和規則的結合,克服了OWL DL在推理上的缺陷,提供了更強大的知識表示和推理能力。
在已經建立的計算機故障診斷本體的基礎上,構建診斷規則。下面根據具體的計算機故障診斷規則的建立過程,進行說明。對《電腦軟硬件維修從入門到精通》一書進行知識抽取,CPU散熱類故障中出現的CPU溫度過高,電腦死機,或黑屏等現象,主要原因有兩個:(1)CPU散熱風扇的問題,可以通過更換散熱風扇或重新安裝散熱風扇解決;(2)CPU散熱片問題,散熱片和CPU接觸不良,可重新安裝CPU散熱片,并在散熱片上涂上硅膠。
1)CPU散熱風扇問題,更換散熱風扇解決方案:
CPU (y) ∧hasPart (x,y) ∧isCrash (x,True) ∧hasTemperature(y,high)∧hasPart(y,z)→isAbnormal(y,z) (1)
isCrash (x,True) ∧siAbnormal (y,z) →Replace (z,Screwdriver_1) (2)
計算機為 x,CPU為 y,high狀態用于描述溫度過高。isCrash屬性表示電腦死機,hasTemperature屬性表示CPU溫度過高,hasPart屬性連接y與z,表示y有散熱風扇z,最后推出isAbnormal屬性所表示的z不正常現象。而故障排除方法即為Replace屬性表示的,用螺絲刀更換散熱風扇z。其中,螺絲刀直接用實例Screwdriver_1表示,作為屬性Replace的一個參數,這樣可以提高推理的效率。
重新安裝散熱風扇解決方案:
CPU (y) ∧hasPart (x,y) ∧isCrash (x,True) ∧hasTemperature (y,high)∧hasPart (y,z)∧isNormal (y,z)→isNotInstallInPlace(y,z)(3)
isCrash(x,True)∧isNotInstallInplace(y,z)→Reinstall(z,Screwdriver_1)(4)
此規則表示散熱風扇運轉正常,可能是散熱風扇安裝不到位,故障排除方法為重新安裝散熱風扇,使用工具為螺絲刀。
2)CPU散熱片問題,散熱片和CPU接觸不良:
CPU (y) ∧hasPart (x,y) ∧isCrash (x,True) ∧hasTemperature (y,high)∧hasPart (y,z)∧isNormal (y,z)∧isInstallInPlace(y,z)→isPoorContacted(y,Heat_sink_1) (5)
isCrash (x,True) ∧isPoorContacted (y,Heat_sink_1) →Reinstall(Heat_sink_1,Screwdriver_1) (6)
Reinstall (Heat_sink_1,Scrwdriver_1) →Coat(Heat_sink_1,Silica_gel_1) (7)
這3條規則描述了原因二,檢查散熱片和CPU是否接觸良好,如果接觸不良,要重新安裝CPU散熱片,并在散熱片上涂上硅膠。isPoorContacted屬性用于表示接觸不良,此處描述了CPU和散熱片接觸不良。Coat屬性表示操作涂抹,此處是描述在散熱片上涂抹硅膠。Coat屬性中的兩個參數Heat_sink_1(散熱片),Silica_gel_1(硅膠)均以實例的形式寫入規則。
根據以上規則建立的原理和標準,建立了計算機硬件故障診斷規則,如圖3所示。

圖3 計算機故障診斷規則(部分)Fig.3 SWRL rules of computer fault diagnosis(portion)
大量規則引擎用Java工作,并且許多是可用的開放資源軟件。目前并沒有專門針對SWRL的推理機,常用的推理引擎有JESS、Prolog、CLIPS等。我們選擇Jess做SWRL的推理引擎,因為它與Java無縫工作,有廣泛的用戶基礎,有很多文檔,容易使用和配置,并且Jess小巧、靈活,與CLIPS兼容,是已知規則引擎中最快的。Jess系統由一個規則庫,一個事實庫和一個推理機組成[11]。推理機匹配事實庫中的事實與規則庫中的規則。這些規則能斷言新的事實,并把它們放入事實庫或者執行Java功能。
文中的計算機本體和規則是在本體創建軟件 Protégé 3.4.7和插件SWRL Editor的基礎上構建起來的。SWRL Editor整合了JESS規則引擎。一旦相關的OWL概念和SWRL規則在Jess里被表示,Jess規則引擎就能執行推理。隨著規則激活,新的Jess事實被插入到事實庫。這些事實在未來的推理中用到。當推理過程結束,這些事實就被轉變為OWL知識。
在SWRL編輯器和Jess規則引擎間的互動是用戶驅動的。OWL知識和SWRL規則轉化為Jess,用這些知識和規則執行推理,和作為結果的Jess事實再轉化回OWL知識形式的 Protégé-OWL,都是用戶在控制。
按下OWL+SWRL—>Jess按鈕,啟動事實和規則轉換。圖4為運行結果,已將OWL知識和SWRL規則轉化為Jess,轉換規則為32條,轉換概念為48個,轉換實例為25個,轉換公理為128個。
接著利用Run Jess按鈕執行推理,推理結果如圖5顯示。推理出35個公理,如圖6所示。

圖4 轉換結果Fig.4 Results of transfering

圖5 推理結果Fig.5 Results of reasoning

圖6 推出的公理Fig.6 Inferred axioms
文中提出了一種基于本體和規則的計算機故障診斷系統,構建了計算機硬件的OWL本體,便于知識的共享和復用。構建了相關的SWRL規則,解決了現有計算機故障診斷系統缺乏自動語義推理和擴展功能的問題。 并在此基礎上運用Jess推理引擎實現了計算機故障推理診斷。試驗表明,該方法能根據計算機故障現象判斷故障原因,提供排除故障方法,基本達到了故障診斷的要求。但計算機故障診斷是個非常復雜的過程,涉及的元素也很復雜,本文僅是根據最基本的元素,實現了相對簡單的規則推理,故障診斷。因此,下一步的工作主要是:完善計算機故障診斷本體庫和SWRL規則知識庫,提高故障診斷的準確性;利用本體的共享和通用性,將計算機故障診斷規則推廣到通用設備故障診斷中,以適應社會和科學的發展需要。
[1]趙建偉.計算機故障診斷專家系統[D].河北:河北大學,2010.
[2]張潔.基于本體的信息檢索系統建模與實現[D].揚州:揚州大學,2009.
[3]樊寧,高鳳岐.基于貝葉斯網絡的電子設備故障診斷技術研究[J].儀表技術,2010(9):51-52.FAN Ning,GAO Feng-qi.Research of electron devices based on bayesian network fault diagnosis technology[J].Instrumentation Technology,2010(9):51-52.
[4]吳建軍,郭堅毅,廖捷.一種基于案例推理的裝備故障診斷技術 [J].解放軍理工大學學報:自然科學版,2009,10(z1):43-45.WU Jian-jun,GUO Jian-yi,LIAO Jie.Faultdiagnosis technique for equipment based on cased-based reasoning[J].Journal of PLA University of Science and Technology:Natural Science Edition,2009,10(z1):43-45.
[5]Kuan M.Using SWRL and OWL DL to develop an inference system for courses scheduling[D].Department of Information Management of Chung Yuan Christian University,2004.
[6]Horrocks I,Patel-Schneider P F,Boley H.SWRL:a semantic web rule language combining OWL and RuleML[EB/OL].[2010-10-10].http://www.w3.org/Submission/SWRL.
[7]Volker H, Ralf M, Michael W.RACER.User’S guide and reference manual version 1.7.19[M].Concordia University Computer Science Department,2004:20-23.
[8]熊巧玲.電腦軟硬件維修從入門到精通[M].北京:科學出版社,2010.
[9]Chi Y L.Ontology-based curriculum content sequencing system with semantic rules[J]. Expert System with Applications,2009,36(4):7838-7847.
[10]柴艷妹,夏天,朱建明,等.本體推理在智能照片管理系統中的應用[J].計算機工程,2011,37(12):2.CHAI Yan-mei,XIA Tian,ZHU Jian-min,et al.Application of ontology inference in intelligent photo management system[J].Computer Engineering,2011,37(12):2.
[11]Busquet A R,Brewka L J,Soler J,et al.OWL ontologies and SWRL rules applied to energy management[C]//2011 UKSim 13th International Conference on Modelling and Simulation.Denmark:Technical University of Denmark,2011:449.