在Protege下可以建立本體,但是沒有用OWL,直接用的class和slot,直接用Protege的JessTab可以對其推理利用,但是其他人大多用OWL本體,並用Jena和Racer推理,這二個的主要區別有:
1. Jess(Java Expert Shell System)是基於Java語言的CLISP推理機。
CLISP是基於產生式的前向推理引擎,它是一種非常基礎性的東西,許多
上層的推理任務,都要映射到這個推理引擎上來運行。
CLISP(或Jess)原則上可以處理各種領域的推理任務,只要系統能夠爲CLISP提供這個領域的特有領域規則(產生式形式給出)和事實信息(Assertion形式給出)。
本體推理作爲一類應用,當然也可以映射到CLISP推理機上進行推理,但必須爲推理機提供本體領域的有關規則。例如,要用CLISP(Jess)進行OWL的推理,就要以產生式規則的形式,向系統中輸入OWL的每種語言成分
的含義的有關規則。有了這些規則後,就可以用CLISP對OWL形式給出的本體
進行推理了。同理,若對DAML形式給出的本體進行推理,就需要向CLISP中
提供DAML的每種語言成分的含義的有關規則。
Jess(CLISP)的優點是:推理機是開放的,用戶提供不同的規則系統,就可以
進行不同領域的推理工作,用戶可以對推理機的推理能力進行擴展。
但,作爲前向推理系統,Jess用空間換時間,推理會產生大量的中間數據,空間效率很低;同時,由於Jess(CLISP)是通用推理引擎,不可能提供針對各種具體領域的優化能力,使得這種推理機制的效率很難優化。
2.
現在,針對本體的推理,越來越多地集中在了幾種標準的本體語言上,如OWL、DAML、RDFS/RDF等,這樣,研究者給出效率更高的,針對這些具體應用的推理機。
象RACER、FaCT、Pellet等就是這類具體有強烈針對性的推理機。它們的優點是:
效率很高,使用上也非常方便;缺點是:不是通用推理機,將推理能力限定在幾種
具體的本體語言上,而且用戶很難對它進行擴展。
值得強調的是,RACER、FaCT、Pellet採用描述邏輯作爲理論基礎,算法採用Tableau算法。這些系統都做了大量的優化工作。
Jena是面向語義Web的應用開發包,包含的內容比較全面,推理機只是其中一部分。
Jena提供的推理機也和RACER、FaCT、Pellet等一樣,是針對本體的推理機,
但Jena本身並不是‘推理機設計專家’,它自身包含的推理機基本上就是一種CLISP配合
本體領域產生式規則的前向推理系統。因此,它的運行效率不是很高。好在現在有DIG接口,DIG有點象數據庫中的ODBC,允許前端掛接到後臺不同的推理引擎上。這樣,在Jean中,也可以使用RACER、FaCT、Pellet這樣更‘專業’些的推理機。
綜上所述,可做如下區分:
1. Jena中的推理引擎和RACER都是針對具體本體語言的推理機,針對性強,效率高。
2. Jess是層面更低的,通用的CLISP推理機。
這就可以解釋:爲什麼當用戶使用owl表示本體時,Protege會用Jena或RACER等推理,而當用戶使用class/slot表示本體時,Protege僅能使用Jess。其實,從能力上,Jess也可以完成owl推理(需要輸入相應的產生式規則庫),只是效率低。…
這裏面有很多新的概念,比如OWL等等。。。這些先不急,都是些人工智能相關的東西,這篇文章讓我更加了解人工智能相關的東西,推理語言,工具,更瞭解Jess是什麼東西。
下面幾個相關的鏈接:
OWL:http://baike.baidu.com/view/671477.htm