Jena對RDF相關操作

2021-08-25 13:10:44 字數 1778 閱讀 2544

rdf(資源描述框架)是乙個標準的資源描述語言。什麼是資源?我們暫且將任何能夠識別的東西作為乙個資源。比如說你,你的主頁,數字1,或者一頭大白鯨,都是資源。

主要內容:

1.statements描述

2.編寫乙個rdf

3.讀取rdf

4.控制prifix

5.管理模型model

6.對models的操作

7.更多關於常量的操作

1.statements

每個rdf模型中的arc(我理解為一組關係,因為rdf語言本身就是一組triple)可以看做是乙個statement。它對資源進行維護,包含以下三個部分:

subject:就是arc定義的地方,可以理解為resource

predicate:表示arc的屬性

object:表示arc指向的物件(或者常量)。

乙個rdf模型其實是以一系列的statement表示的,每個addproperty語句都會同時向模型中新增乙個statement。jena中model的liststatements方法返回乙個stmtiterator。它是乙個statement序列,繼承自iterator。statement中包含getsubject,getpredictate,getobject方法,可以獲取到三元組。由於getobject得到的型別有可能是resource或者literal,所以在使用的時候要進行判斷。

2.編寫乙個rdf

編寫乙個rdf主要有三個步驟:

(1)使用modelfactory的createdefaultmodel()方法構造乙個空的model。

(2)使用model的createresource方法,通過uri構建資源。

(3)向resource中新增屬性,使用addproperty方法。

3.讀寫rdf

jena支援從檔案中讀寫rdf模型

讀取:用read方法讀入輸入流

或者用filemanager.get().readmodel(model,檔案路徑)

寫入:用write方法

4.控制prefix

在rdf中,定義的url會自動給予乙個變數名,如果要改變這個名字,使用自定義的名字,就要用setnsprefix(設定的變數名,要設定的uri)方法。

例如,使用前輸出結果如下

加入語句setnsprefix("nsa",nsa)後,輸出結果如下

可以看到,j.1變成了nsa

5.管理模型

(1)model的getresource(uri)方法返回乙個resource,如果不存在則新建乙個。

(2)返回property物件:resource中的getproperty(pname).getobject()方法,因為gerproperty返回的是乙個statement,所以可以使用statement的方法返回object。

(3)可以向乙個resource中新增多個屬性,addproperty().addproperty()。。。。而且乙個屬性可以有多個值。

6.更多model上的操作

合併:model.union(model2)

做相交:model.intersection(model2)

做差集:model.difference(model2)

7.對常量的操作

model.createliteral()方法可以新建乙個常量,並且用到property中。

在資料型別的property中新增資料物件的時候,可以直接新增。

js對 select相關操作

1.通過js 獲取 html中select 所有值,選中的值,獲取對應的顯示內容,增加,刪除等操作。a.獲取值 常見方法,先獲取select物件,然後通過options獲取所有的子列表。如 獲取物件 var selectobj document.getelementbyid 獲取下拉列表長度 var...

java對ftp的相關操作

2.4 jar commons net 2.2.jar publicclass ftputil publicftputil setconfig stringhost,int port,stringusername,stringpassword 連線ftp伺服器 privateftputil conn...

easy ui對tabs的相關操作

直接上 1.匯入必要的css和js 2.寫入四個標籤和乙個按鈕來觸發事件 check tab0 tab1 tab2 tab3 3.js的 4.我是通過eclipse建立的動態專案,開啟伺服器 輸入位址,結果如下 img img img color red size medium 獲取當前選中的tab...