【jena】 jena基本使用

來源:互聯網
上載者:User
 http://blog.csdn.net/hongyiluoguihua/article/details/8230317 1. 什麼是jena(摘自http://imarine.blog.163.com/blog/static/51380183200812774739130/ )
     Jena由
HP Labs(http://www.hpl.hp.com)開發的Java開發套件, 用於Semantic Web(語義網)中的應用程式開發;Jana是開源的,在下載的文檔中有Jena的完整代碼。Jena架構主要包括:

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

資源描述架構是(RDF)是描述資源的一項標準(在技術上是W3C的推薦標準),Jena文檔中有一部分呢詳細介紹了RDF和Jena RDF API,其內容包括對Jena RDF包的介紹、RDF模型的建立、讀寫、查詢等操作,以及RDF容器等的討論。

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

Jena架構套件含一個本體子系統(Ontology
Subsystem),它提供的API允許處理基於RDF的本體資料,也就是說,它支援OWL,DAML+OIL和RDFS。本體API與推理子系統結合
可以從特定本體中提取資訊,Jena 2還提供文件管理器(OntDocumentManager)以支援對匯入本體的文件管理。

c) 利用資料庫儲存資料

    Jena 2允許將資料存放區到硬碟中,或者是OWL檔案,或者是關聯式資料庫中。本文處理的本體就是OWL檔案讀入的。

d)查詢模型   

Jena 2提供了ARQ查詢引擎,它實現SPARQL查詢語言和RDQL,從而支援對模型的查詢。另外,查詢引擎與關聯式資料庫相關聯,這使得查詢儲存在關聯式資料庫中的本體時能夠達到更高的效率。

e) 基於規則的推理

Jena 2支援基於規則的簡單推理,其推理機制支援將推理器(inference reasoners)匯入Jena,建立模型時將推理器與模型關聯以實現推理。

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

    
  2. jena的使用

    2.1 從http://www.hpl.hp.co.uk/people/bwm/rdf/jena/download.htm 下載jena包。

在百度中輸入“jena ppt” 點擊第一個串連,可以下到一個關於jena的ppt,內容不錯。
    2.2 我們使用的是eclipse平台建立一個工程,匯入jena/lib裡面的jar包。
    2.3 使用jena提供的各種API。。(強大的東東)
        我下載的jena包2.4包含了一些簡單的demo。
        

    2.2 我們使用的是eclipse平台建立一個工程,匯入jena/lib裡面的jar包。
    2.3 使用jena提供的各種API。。(強大的東東)
        我下載的jena包2.4包含了一些簡單的demo。
        1.本體模型OntModel

本體模型(OntModel)是對Jena
RDF模型的擴充(繼承自RDF模型),提供了處理本體資料的功能。使用Jena處理本體首先就是要建立一個本體模型,之後就能夠通過本體模型中所定義的
方法操作模型,比如匯入子模型()、擷取模型中本體的資訊、操作本體屬性以及將本體的表示輸出到磁碟檔案等等。Jena通過model包中的
ModelFactory建立本體模型,ModelFactory是Jena提供用來建立各種模型的類,在類中定義了具體實現模型的成員資料以及建立模型
的二十多種方法。一個最簡單的建立本體模型的語句如下:

OntModel ontModel = ModelFactory.createOntologyModel();

該語句不含參數,應用預設設定建立一個本體模型ontModel,也就是說:它使用OWL語言、基於記憶體,支援RDFS推理。可以通過建立時應用程式模型類別
(OntModelSpec)參數建立不同的模型,以實現不同語言不同類型不同推理層次的本體操作。例如,下面的語句建立了一個使用DAML語言記憶體本體
模型。直觀地講,記憶體模型就是只在程式運行時存在的模型,它沒有將資料寫回磁碟檔案或者資料庫表。

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

更多類型設定可以參照OntModelSpec類中的資料成員的說明。

我們所使用的本體是從OWL檔案獲得的,也就是說,是從磁碟讀取的。讀取的方法是調用Jena OntoModel提供的Read方法。例如

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

就是讀取位於D盤相應目錄下的Creature.owl檔案以建立本體模型。Read方法也有很多重載,上面調用的方法以檔案的絕對路徑作為參數。其他的方法聲明如下

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)是用來協助管理本體文檔的類,它包含了匯入本體文檔建立本體模型、協助緩衝下載網路上的本體等功
能。每個本體模型都有一個相關聯的文件管理器。在建立本體模型時,可以建立獨立的文件管理器並作為參數傳遞給模型工廠(ModelFactory)。文檔
管理器有非常多的配置選項,基本可以滿足應用的需求。首先,每個文件管理器的參數都可以通過Java代碼來設定
(註:OntDocumentManager有五種重載的建構函式)。另外,文件管理器也可以在建立的時候從一個RDF格式的策略檔案讀取相應設定值。

下面的例子建立一個文件管理器並將它與以建立的本體模型關聯。

OntModel m = ModelFactory.createOntologyModel();

OntDocumentManager dm = m.getDocumentManager();

    3.介面OntClass

這個介面中定義了本體種與概念(也就是類Class)相關的操作,通過OntModel中的

listClasses()

便可以返回模型中的所有概念組成的迭代器(Iterator),然後調用OntClass的各種方法具體進行具體操作。OntoClass對概念之間的各
種關係都有相應的定義方法,典型的有添加子類、添加約束、建立互斥概念、迭代返回某種類型的概念以及相關的邏輯判斷等等。

4.基本本體類型OntResource

所有本體API中用於表示本體的類繼承自OntResource,這樣就可以在OntResource中放置所有類公用的功能,並可以為一般的方法設定通
用的傳回值。Java介面OntResource擴充了Jena的RDF資源介面,所以任何可以接受資源或者RDFNode的方法都可以接受
OntResource,並且也就可以接受任何其他本體值。雖然這個類涵蓋了涉及本體的所有類,在例子中並沒有使用它。從Jena Java
Doc可以獲得它的詳細資料。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.