一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

對Jena的簡單理解和一個例子_1

 一輝 2008-02-26
對Jena的簡單理解和一個例子_1
2007年04月25日 星期三 08:22

Jena是德國北部的一座城市,有人說那是“一個讓我有歸屬感的地方”。

本文簡單介紹JenaJena 2.4),使用Protégé 3.1(不是最新版本)創(chuàng)建一個簡單的生物(Creature)本體,然后參照Jena文檔中的一個例子對本體進(jìn)行簡單的處理,輸出本體中的Class、Property等信息。

本文內(nèi)容安排如下:

Ø         介紹Jena

Ø         運行Jena

Ø         Jena Ontology API

Ø         例子

Ø         參考資料

一、介紹Jena

Jena HP Labshttp://www.hpl.hp.com)開發(fā)的Java開發(fā)工具包, 用于Semantic Web(語義網(wǎng))中的應(yīng)用程序開發(fā);Jana是開源的,在下載的文檔中有Jena的完整代碼。Jena框架主要包括:

a)       RDF/XML、三元組形式讀寫RDF

資源描述框架是(RDF)是描述資源的一項標(biāo)準(zhǔn)(在技術(shù)上是W3C的推薦標(biāo)準(zhǔn)),Jena文檔中有一部分呢詳細(xì)介紹了RDFJena RDF API,其內(nèi)容包括對Jena RDF包的介紹、RDF模型的創(chuàng)建、讀寫、查詢等操作,以及RDF容器等的討論。

b)       RDFSOWL,DAML+OIL等本體的操作

Jena框架包含一個本體子系統(tǒng)(Ontology Subsystem),它提供的API允許處理基于RDF的本體數(shù)據(jù),也就是說,它支持OWL,DAML+OILRDFS。本體API與推理子系統(tǒng)結(jié)合可以從特定本體中提取信息,Jena 2還提供文檔管理器(OntDocumentManager)以支持對導(dǎo)入本體的文檔管理。

c)       利用數(shù)據(jù)庫保存數(shù)據(jù)

    Jena 2允許將數(shù)據(jù)存儲到硬盤中,或者是OWL文件,或者是關(guān)系數(shù)據(jù)庫中。本文處理的本體就是OWL文件讀入的。

d)       查詢模型    

Jena 2提供了ARQ查詢引擎,它實現(xiàn)SPARQL查詢語言和RDQL,從而支持對模型的查詢。另外,查詢引擎與關(guān)系數(shù)據(jù)庫相關(guān)聯(lián),這使得查詢存儲在關(guān)系數(shù)據(jù)庫中的本體時能夠達(dá)到更高的效率。

e)       基于規(guī)則的推理

Jena 2支持基于規(guī)則的簡單推理,其推理機制支持將推理器(inference reasoners)導(dǎo)入Jena,創(chuàng)建模型時將推理器與模型關(guān)聯(lián)以實現(xiàn)推理。

Protégé是一個開源的本體編輯器(目前的版本是Protégé 3.2),用戶可以在GUI環(huán)境下創(chuàng)建本體或者知識庫。有一種說法是:Jena對應(yīng)用程序就像Protégé對我們——我們使用Protégé操作本體,應(yīng)用程序則是使用Jena來做同樣的工作。當(dāng)然這些應(yīng)用程序還是得由我們來編寫。

二、運行Jena

可以在Jena的主頁(http://jena./downloads.html)下載Jena的最新版本,目前是Jena2.4版本。JenaJava API,所以需要Java運行環(huán)境。本文使用的是jdk1.5.0_04Eclipse3.2

將下載的Jena-2.4.zip解壓到任意路徑,解壓之后生成Jena2.4文件夾,將Jena2.4 lib下的jar文件全部加入CLASSPATH,這樣就可以在任意的Java編輯器中調(diào)用Jena API了。在解壓目錄下有一個test.bat文件,用于配置的測試。在控制臺運行此程序,如果你的配置正確,測試將順利完成。

如果使用Eclipse,則可以通過修改工程的Java創(chuàng)建路徑的方法導(dǎo)入Jena jar文件。在Eclipse下創(chuàng)建Java工程,右健單擊工程名字,選擇“屬性/Properties”,在打開的對話框中選擇“Java創(chuàng)建路徑/Java Build Path”,在右邊標(biāo)簽中選擇“庫/Libraries,之后選擇“添加外部文件/Add Extenal JARs”,找到Jena2.4 lib目錄下的所有jar文件并將其添加到工程。這樣就可以運行Jean文檔中的例子了。

三、Jena Ontology API

Jena2.4Ontology API包含在ontology包(com.hp.hpl.jena.ontology)中,可以在目錄 Jena-2.4 src com hp hpl jena ontology下查看所有程序的代碼,Jena本體部分的說明網(wǎng)頁是 Jena-2.4 doc ontology index.html,本部分內(nèi)容以及程序的編寫主要參考這兩個文檔。

在語義網(wǎng)上有很多表示本體信息的本體語言,其中表達(dá)能力最強的是OWLOWL按復(fù)雜程度分為 OWL Full、OWL DLOWL Lite三個版本。其他的本體語言還有RDFS、DAML+OIL。Jena Ontology API為語義網(wǎng)應(yīng)用程序開發(fā)者提供了一組獨立于具體語言的一致編程接口。

Jena提供的接口本質(zhì)上都是Java程序,也就是.java文件經(jīng)過javac之后生成的.class文件。顯然,class文件并不能提示本體創(chuàng)建使用的語言。為了區(qū)別于其他的表示方法,每種本體語言都有一個自己的框架(profile),它列出了這種語言使用的類(概念)和屬性的構(gòu)建方式和URI。因此,在DAML框架里,對象屬性()的URIdaml:ObjectProperty,而在OWL框架里卻是owl:ObjectPropertyRDFS并沒有定義對象屬性,所以在RDFS框架里,對象屬性的URInull

Jena中,這種框架通過參數(shù)的設(shè)置在創(chuàng)建時與本體模型(Ontology Model)綁定在一起。本體模型繼承自Jena中的Model類。Model允許訪問RDF數(shù)據(jù)集合中的陳述(Statements),OntModel對此進(jìn)行了擴展,以便支持本體中的各種數(shù)據(jù)對象:類(classes)、屬性(properties)、實例(個體individuals)。

本部分簡單介紹要用到的幾個java類或者接口。

1.本體模型OntModel

本體模型(OntModel)是對Jena RDF模型的擴展(繼承自RDF模型),提供了處理本體數(shù)據(jù)的功能。使用Jena處理本體首先就是要建立一個本體模型,之后就能夠通過本體模型中所定義的方法操作模型,比如導(dǎo)入子模型()、獲取模型中本體的信息、操作本體屬性以及將本體的表示輸出到磁盤文件等等。Jena通過model包中的ModelFactory創(chuàng)建本體模型,ModelFactoryJena提供用來創(chuàng)建各種模型的類,在類中定義了具體實現(xiàn)模型的成員數(shù)據(jù)以及創(chuàng)建模型的二十多種方法。一個最簡單的創(chuàng)建本體模型的語句如下:

OntModel ontModel = ModelFactory.createOntologyModel();

該語句不含參數(shù),應(yīng)用默認(rèn)設(shè)置創(chuàng)建一個本體模型ontModel,也就是說:它使用OWL語言、基于內(nèi)存,支持RDFS推理??梢酝ㄟ^創(chuàng)建時應(yīng)用模型類別(OntModelSpec)參數(shù)創(chuàng)建不同的模型,以實現(xiàn)不同語言不同類型不同推理層次的本體操作。例如,下面的語句創(chuàng)建了一個使用DAML語言內(nèi)存本體模型。直觀地講,內(nèi)存模型就是只在程序運行時存在的模型,它沒有將數(shù)據(jù)寫回磁盤文件或者數(shù)據(jù)庫表。

OntModel ontModel = ModelFactory.createOntologyModel( OntModelSpec.DAML_MEM );

更多類型設(shè)置可以參照OntModelSpec類中的數(shù)據(jù)成員的說明。

我們所使用的本體是從OWL文件獲得的,也就是說,是從磁盤讀取的。讀取的方法是調(diào)用Jena OntoModel提供的Read方法。例如

ontModel.read("file:D:/temp/Creatrue/Creature.owl");

就是讀取位于D盤相應(yīng)目錄下的Creature.owl文件以建立本體模型。Read方法也有很多重載,上面調(diào)用的方法以文件的絕對路徑作為參數(shù)。其他的方法聲明如下

read( String url );

read( Reader reader, String base );

read( InputStream reader, String base );

read( String url, String lang );

read( Reader reader, String base, String Lang );

read( InputStream reader, String base, String Lang );

2.文檔管理器Document manager

本體文檔管理器(OntDocumentManager)是用來幫助管理本體文檔的類,它包含了導(dǎo)入本體文檔創(chuàng)建本體模型、幫助緩存下載網(wǎng)絡(luò)上的本體等功能。每個本體模型都有一個相關(guān)聯(lián)的文檔管理器。在創(chuàng)建本體模型時,可以創(chuàng)建獨立的文檔管理器并作為參數(shù)傳遞給模型工廠(ModelFactory)。文檔管理器有非常多的配置選項,基本可以滿足應(yīng)用的需求。首先,每個文檔管理器的參數(shù)都可以通過Java代碼來設(shè)置(注:OntDocumentManager有五種重載的構(gòu)造函數(shù))。另外,文檔管理器也可以在創(chuàng)建的時候從一個RDF格式的策略文件讀取相應(yīng)設(shè)定值。

下面的例子創(chuàng)建一個文檔管理器并將它與以創(chuàng)建的本體模型關(guān)聯(lián)。

OntModel m = ModelFactory.createOntologyModel();

OntDocumentManager dm = m.getDocumentManager();

(續(xù))——見“對Jena的簡單理解和一個例子_2”

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产丝袜极品黑色高跟鞋| 91欧美日韩精品在线| 欧美一区二区三区十区| 亚洲欧洲精品一区二区三区| 欧美激情床戏一区二区三| 国产成人精品国产亚洲欧洲| 亚洲综合激情另类专区老铁性| 国产精品一区二区视频成人| 国产精品乱子伦一区二区三区| 暴力三级a特黄在线观看| 欧美日韩精品一区免费| 国产又大又硬又粗又黄| 国产成人精品国产亚洲欧洲| 日韩高清毛片免费观看| 精品视频一区二区三区不卡| 久久综合日韩精品免费观看| 欧美大胆美女a级视频| 国产伦精品一区二区三区精品视频| 日韩成人免费性生活视频| 国产av精品一区二区| 亚洲国产成人精品福利| 精品人妻少妇二区三区| 儿媳妇的诱惑中文字幕| 精品精品国产自在久久高清| 国产一区二区三区av在线| 日本亚洲欧美男人的天堂| 男人操女人下面国产剧情| 亚洲一区二区三区在线免费| 精品人妻一区二区三区免费看| 亚洲熟女一区二区三四区| 日本99精品在线观看| 国产成人av在线免播放观看av | 最新日韩精品一推荐日韩精品| 亚洲精品一二三区不卡| 亚洲中文字幕在线视频频道| 美国黑人一级黄色大片| 欧美国产极品一区二区| 激情综合五月开心久久| 人妻熟女欲求不满一区二区| 国产主播精品福利午夜二区| 日本久久精品在线观看|