專家系統中的推理機(inference engine)以及主要種類


本文參考:專家系統中的推理機實現

專家系統

專家系統:模仿人類專家的思維方式進行決策的人工智能算法,算法核心是“知識庫(knowledge base)”和“推理機(inference engine)”。專家系統通常包括6個部分:人機交互界面、知識庫、綜合數據庫、推理機、解釋器、知識獲取。

  • 知識庫:包含解決問題相關的領域知識。在基於規則的專家系統中,知識用一組規則來表達。其具有IF(條件)THEN(行為)結構,當規則的條件被滿足時,觸發規則,繼而執行行為。
  • 數據庫:包含一組事實,用於匹配知識庫中的IF(條件)。
  • 推理機:執行推理,專家系統由此找到解決方案。推理引擎鏈接知識庫中的規則和數據庫中的事實。
  • 解釋器:用戶使用解釋器查看專家系統怎樣得出解決方案的過程。
  • 人機交互界面:人機交互界面是實現用戶(查詢問題解決方案)和專家系統之間交流的途徑。

一個完整的專家系統圖示如下:

推理機

“推理機”根據“知識庫”對“數據庫”做出決策的基本原理圖如下:

CLIPS(C Language Integrated Production System)是一類推理機,原則上可以處理各種領域的推理任務,只要系統能夠為CLIPS提供這個領域的特有領域規則(知識庫)和事實信息(數據庫)。

Jess

Jess(Java Expert Shell System)是基於Java語言的CLISP推理機。Jess(CLIPS)的優點是:推理機是開放的,用戶提供不同的規則系統,就可以進行不同領域的推理工作,用戶可以對推理機的推理能力進行擴展。但,作為前向推理系統,Jess用空間換時間,推理會產生大量的中間數據,空間效率很低;同時,由於Jess(CLIPS)是通用推理引擎,不可能提供針對各種具體領域的優化能力,使得這種推理機制的效率很難優化。

針對本體的幾類推理機

針對本體的推理一般集中在集中標准的本體語言上,如OWL、RDFS/RDF、DAML等。針對本體的推理機,如Jena、Pellet、FaCT、RACER等,效率較高,但推理能力局限在以上的本體語言中。

Jena

Jena是面向語義Web的應用開發包,包含的內容比較全面,推理機只是其中一部分。但Jena本身並不是‘推理機設計專家’,它自身包含的推理機基本上就是一種CLIPS配合本體領域產生式規則的前向推理系統。因此,它的運行效率不是很高。好在現在有DIG接口,DIG有點象數據庫中的ODBC,允許前端掛接到后台不同的推理引擎上。

Pellet

Pellet是一個較為“專業”的推理機,由美國馬里蘭大學(College Park分校)的MindSwap實驗室開發。Pellet是基於Java的開放源碼系統。Pellet效率較高,但是缺乏對本體規則語言SWRL的支持並且支持的查詢語言不夠全面,一般只是進行A-Box推理的時候使用Pellet,如果牽涉到T-Box則推薦使用Racer。

RACER

Racer由德國漢堡大學開發,采用Tableaux算法。給定一個Tbox后,Racer可以完成各種查詢服務,在Tbox方面推理能力較強,對大本體文件支持良好。但是Racer不支持對枚舉類和用戶自定義數據類型的推理。

FaCT++

FaCT++是FaCT的新一代產品,由英國曼城斯特大學開發,采用Tableaux算法。Fact++采用了c++語言,但是沒有提供OWL接口,不支持對實例的查詢。

Hermit

HermiT支持OWL2本體語言的所有特性,包括OWL 2的所有數據類型,並且它正確地執行對象和數據屬性分類,其中有些推理任務並不完全由其他OWL推理器支持。

在Protege中,常用的OWL推理機主要包括HermiT、FaCT、Pellet。

[1] 潘超, 古輝. 本體推理機及應用[J]. 計算機系統應用, 2010, 19(009):163-167.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM