一些与OWL相关的推理机的区别(如:Jess、Jena、Pellet等)
在CLIPS中,知識的表示有三種方式:
1、規則,規則表示法是基于啟發式經驗知識庫的首要選擇。
2、自定義函數和通用函數,這種方式是程序式知識表示的首選。
3、面向對象設計,也是程序式知識表示的首選。面向對象的程序設計被支持的5個普遍接受的特征是:類,消息處理函數,抽象,封裝,繼承和多態性。模式匹配可以是對象和事實。
你可以僅用規則,或者僅用對象或者兩者混合使用來開發軟件。
? ?CLIPS同時支持與其他語言的集成,如C和Java。事實上,CLIPS是C Language Integrated Production的縮寫。規則能基于事實與對象的匹配,規則和對象同時組成了一個集成系統。除了被當作一個獨立的工具之外,CLIPS還能被程序語言調用,運行其函數,然后返回給調用函數控制權。同樣的,程序代碼也能作為一個外部函數在CLIPS中被定義和調用。當外部代碼執行完畢后,控制權返回到CLIPS。
CLIPS是基于產生式的前向推理引擎,它是一種非常基礎性的東西,許多上層的推理任務,都要映射到這個推理引擎上來運行。 ??CLIPS(或Jess)原則上可以處理各種領域的推理任務,只要系統能夠為CLIPS提供這個領域的特有領域規則(產生式形式給出)和事實信息(Assertion形式給出)。本體推理作為一類應用,當然也可以映射到CLISP推理機上進行推理,但必須為推理機提供本體領域的有關規則。例如,要用CLIPS(Jess)進行OWL的推理,就要以產生式規則的形式,向系統中輸入OWL的每種語言成分的含義的有關規則。有了這些規則后,就可以用CLIPS對OWL形式給出的本體進行推理了。同理,若對DAML形式給出的本體進行推理,就需要向CLIPS中提供DAML的每種語言成分的含義的有關規則。
? ? Jess(Java?Expert?Shell?System)是基于Java語言的CLISP推理機。
? ? Jess(CLIPS)的優點是:推理機是開放的,用戶提供不同的規則系統,就可以進行不同領域的推理工作,用戶可以對推理機的推理能力進行擴展。但,作為前向推理系統,Jess用空間換時間,推理會產生大量的中間數據,空間效率很低;同時,由于Jess(CLIPS)是通用推理引擎,不可能提供針對各種具體領域的優化能力,使得這種推理機制的效率很難優化。
? ? 現在,針對本體的推理,越來越多地集中在了幾種標準的本體語言上,如OWL、DAML、RDFS/RDF等,這樣,研究者給出效率更高的,針對這些具體應用的推理機。象RACER、FaCT、Pellet等就是這類具體有強烈針對性的推理機。它們的優點是:效率很高,使用上也非常方便;缺點是:不是通用推理機,將推理能力限定在幾種具體的本體語言上,而且用戶很難對它進行擴展。
? ? 值得強調的是,RACER、FaCT、Pellet采用描述邏輯作為理論基礎,算法采用Tableau算法。這些系統都做了大量的優化工作。
? ??Jena是面向語義Web的應用開發包,包含的內容比較全面,推理機只是其中一部分。Jena提供的推理機也和RACER、FaCT、Pellet等一樣,是針對本體的推理機,但Jena本身并不是‘推理機設計專家’,它自身包含的推理機基本上就是一種CLIPS配合本體領域產生式規則的前向推理系統。因此,它的運行效率不是很高。好在現在有DIG接口,DIG有點象數據庫中的ODBC,允許前端掛接到后臺不同的推理引擎上。這樣,在Jean中,
也可以使用RACER、FaCT、Pellet這樣更‘專業’些的推理機。
? ? Pellet是一種基于Tableau算法的描述邏輯推理機,由美國馬里蘭大學(College Park分校)的MindSwap實驗室開發。Pellet是基于Java的開放源碼系統。
綜上所述,可做如下區分:
? ? 1.?Jena中的推理引擎和RACER都是針對具體本體語言的推理機,針對性強,效率高。
? ? 2.?Jess是層面更低的,通用的CLIPS推理機。
? ? 這就可以解釋:為什么當用戶使用owl表示本體時,Protege會用Jena或RACER等推理,而當用戶使用class/slot表示本體時,Protege僅能使用Jess。其實,從能力上,Jess也可以完成owl推理(需要輸入相應的產生式規則庫),只是效率低。
? ??
總結
以上是生活随笔為你收集整理的一些与OWL相关的推理机的区别(如:Jess、Jena、Pellet等)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html标签360doc,360doc个
- 下一篇: 使用Template控制Editor显示