iMarine http://iMarine.blog.163.com/ 在技術(shù)實(shí)現(xiàn)方面,語義Web和本體理論的研究日趨成熟,已經(jīng)有許多成熟的工具或程序接口,諸如Jena、OWL API等API是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)。這里介紹系統(tǒng)的可行性分析以及系統(tǒng)開發(fā)設(shè)計(jì)的關(guān)鍵技術(shù)。 Jena[69]是來自于惠普實(shí)驗(yàn)室語義Web研究項(xiàng)目的開放資源,是用于創(chuàng)建語義Web應(yīng)用系統(tǒng)的Java開發(fā)工具。Jena是語義Web和本體領(lǐng)域比較流行的開發(fā)工具,目前的版本為Jena 2.5.5。下面簡(jiǎn)單介紹Jena的一些功能。 1) 讀寫RDF數(shù)據(jù) 資源描述框架(Resource Description Framework, RDF)是描述資源的一項(xiàng)標(biāo)準(zhǔn),Jena文檔介紹了RDF和Jena RDF API,其內(nèi)容包括對(duì)Jena RDF包的、RDF模型的創(chuàng)建、讀寫、查詢等操作,以及RDF容器等的介紹和討論。在Jena中,一個(gè)Graph被稱為一個(gè)模型,并被com.hp.hpl.jena.rdf.model.Model接口所表示。RDF數(shù)據(jù)模型是一些Statements的集合,每一個(gè)陳述都包括資源,屬性和值三個(gè)部分。 2) 本體子系統(tǒng) Jena框架包含一個(gè)本體子系統(tǒng)(Ontology Subsystem),負(fù)責(zé)處理本體模型。Jena API允許處理基于RDF的本體數(shù)據(jù),支持OWL,DAML+OIL和RDFS等語言。Jena通過文檔管理器(DocumentManager)支持對(duì)導(dǎo)入本體的文檔管理,通過特定方法獲得本體中類和屬性的信息,完成類和屬性的添加、刪除等修改操作。本體子系統(tǒng)與推理子系統(tǒng)結(jié)合可以完成本體內(nèi)部的知識(shí)推理,從本體中提取隱含信息。在系統(tǒng)的本體展示模塊,將主要使用本體子系統(tǒng)的類和接口。 3) 推理子系統(tǒng) Jena的推理子系統(tǒng)(Inference Subsystem)允許將一些推理引擎或推理機(jī)引入到Jena中,從而獲得本體數(shù)據(jù)中隱含的信息。推理機(jī)制支持RDFS和OWL等支持推理的語言,可以執(zhí)行從實(shí)例(instance)到類(class)的推理。應(yīng)用程序通常使用ModelFactory創(chuàng)建一個(gè)支持某種推理機(jī)制的本體模型,對(duì)該模型的查詢不僅返回原始數(shù)據(jù)中包含的陳述(statements),而且有一些通過推理機(jī)制從原始數(shù)據(jù)得到的附加信息。Jena提供給基于規(guī)則的推理機(jī),包括RDF推理機(jī),OWL推理機(jī)等,在基于規(guī)則的推理機(jī)中包含了一般的推理功能。用戶也可以根據(jù)需要自定義推理規(guī)則,或者也可以注冊(cè)使用第三方推理引擎,如Racer、FaCT、Pellet等。 4) 本體的持久化存儲(chǔ) Jena允許將本體文件持久化存儲(chǔ)到硬盤中,或者是OWL文件,或者是關(guān)系數(shù)據(jù)庫(kù)。Jena提供了將RDF數(shù)據(jù)存入關(guān)系數(shù)據(jù)庫(kù)的接口,在實(shí)際操作中,應(yīng)用程序不必直接訪問數(shù)據(jù)庫(kù)(而是通過Jena的API訪問),也不必知道數(shù)據(jù)庫(kù)的模式。Jena提供了支持MySQL、HSQLDB、PostgreSQL、Oracle和Microsoft SQL Server等數(shù)據(jù)庫(kù)的程序接口。一般來講,創(chuàng)建數(shù)據(jù)庫(kù)模型或者打開先前創(chuàng)建的模型,通過以下四個(gè)步驟完成:加載數(shù)據(jù)庫(kù)JDBC驅(qū)動(dòng)、創(chuàng)建數(shù)據(jù)庫(kù)連接、為數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)ModelMaker,最后為本體創(chuàng)建一個(gè)模型。 5) 查詢模型 Jena提供了ARQ查詢引擎,支持通過SPARQL查詢語言或RDQL查詢語言對(duì)本體模型進(jìn)行查詢。查詢引擎與關(guān)系數(shù)據(jù)庫(kù)相關(guān)聯(lián),使得查詢存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中的本體時(shí)能夠達(dá)到更高的效率。SPARQL查詢是把作為查詢條件的三元組(查詢模式,Pattern)和本體模型的三元組進(jìn)行匹配,查詢的結(jié)果就是條件三元組與本體文件(或RDF圖)中RDF三元組匹配的結(jié)果。SPARQL查詢是面向數(shù)據(jù)的,SPARQL語言本身不支持任何推理功能。 OWL API是專門為W3C推薦的Web本體描述語言O(shè)WL所實(shí)現(xiàn)的開源Java程序接口,支持對(duì)OWL-Lite、OWL-DL和OWL-Full部分元素的操作。OWL API和Jena同是SourceForge(http:///)下的開源項(xiàng)目,特別針對(duì)OWL描述的本體。OWL API在org.semanticweb.owl.model包中提供了表示OWL本體的類和接口,主要有OWLClass、OWLObjectProperty、OWLDatatypeProperty和OWLIndividual。OWL API也提供了一系列使用OWL推理機(jī)的接口,用于執(zhí)行本體上的推理任務(wù)。目前可用的推理機(jī)是Pallet和FaCT++,在使用推理機(jī)之前必須下載推理機(jī)的Java API。 Protégé是斯坦福大學(xué)開發(fā)的一個(gè)Java開源的本體編輯工具,其GUI界面風(fēng)格使得用戶比較容易掌握和使用。Protégé提供了本體建設(shè)的基本功能,使用起來簡(jiǎn)單方便,有詳細(xì)的幫助文檔,模塊劃分清晰,提供完全的API接口,因此基本上成為國(guó)內(nèi)外眾多本體研究機(jī)構(gòu)創(chuàng)建本體的首選工具。 Protégé樹形目錄結(jié)構(gòu)顯示本體中的類和屬性,允許用戶增加或編輯類、子類、屬性、實(shí)例等,允許用戶在概念層次上進(jìn)行領(lǐng)域模型設(shè)計(jì)。Protégé支持多重繼承,并對(duì)新數(shù)據(jù)進(jìn)行一致性檢查。Protégé具有很強(qiáng)的可擴(kuò)展性,通過安裝不同的插件取得對(duì)本體的不同操作能力。在Protégé中,本體的文件輸出格式可以定制,可以將Protégé的內(nèi)部表示轉(zhuǎn)換成多種形式的文本表示格式,包括XML、RDF(S)、OIL、DAML、DAML+OIL和OWL等系列語言。Protégé支持本體的數(shù)據(jù)庫(kù)存儲(chǔ),使用JDBC和JDBC-ODBC橋訪問數(shù)據(jù)庫(kù),將本體存入數(shù)據(jù)庫(kù)中。 Protégé除了提供本體編輯工具以外,還提供了一整套的OWL API。Protégé OWL API是為Web本體語言O(shè)WL和RDF(S)而實(shí)現(xiàn)的開源Java類庫(kù),該API提供了加載和保存OWL文件、查詢和操作OWL數(shù)據(jù)模型,以及執(zhí)行基于描述邏輯的推理的類和方法,這些類和接口主要在edu.stanford.smi.protegex.owl.model包中。當(dāng)然,它也可以處理RDF/RDF(S)本體,與此對(duì)應(yīng)的類主要有RDFSNamedClass、RDFProperty和RDFIndividual等。使用Protégé OWL API操作本體要比使用Jena操作本體簡(jiǎn)單的多,在許多方面,Protégé OWL API對(duì)同樣功能的實(shí)現(xiàn)要比基于Jena API的實(shí)現(xiàn)更加簡(jiǎn)潔易懂。 [1] SPARQL Query Language for RDF. W3C Recommendation 15 January 2008. http://www./TR/rdf-sparql-query/ [2] V. Batagelj. Analysis of large networks - islands. Presented at Dagstuhl seminar 03361: Algorithmic Aspects of Large and Complex Networks, August/September 2003. [3] http://jena./ [4] http://owlapi./ [5] Natalya F and Deborah L. Ontology Development101: A Guide to Creating Your First Ontology.Technical report KSL-01-05 Knowledge system laboratory, Stanford University, CA 2001:1-25. [6] Protégé-OWL API. http://protege./plugins/owl/api/index.html |
|