jena讀取owl檔案的父子屬性以及其他屬性

2022-06-06 20:45:09 字數 1285 閱讀 4938

1.為了更好的使用jena api,我們應該對owl有個大致的了解。owl核心是圍繞三元組的,即我們在很多資料中看到的陳述(statement),它的組成為:statement=(subject,property,object),其中subject我們熟成為主體,property成為屬性,object成為客體。在程式設計中容易讓人搞混的他們和individual的區別。individual熟稱為個體。它是subject、object的乙個例項,例如在statement=(animals,eat,plants)陳述中sheep是animals的乙個individual,grass是plants的乙個individual。從這個角度上來說我們理解為什麼主體、客體被說成是類(class)。而這一切的主體、客體、個體、類、屬性等我們都可以稱為資源(resource)。在程式設計中owl常用的是ontmodel,ontclass,ontproperty,individual。ontclass可以用來建立主體,客體,ontpropety用來建立屬性,individual用來建立個體。 常用的方法有creatclass,creatindividual,listobjects,listobjectsofproperty,listsubjectswithproperty,listpropertyvalues等。

我的需求很明確,就是將乙個owl檔案中的所有的屬性名稱(包括父節點、子節點)以及相對應的屬性值讀取出來。接下來直接上**:

//

建立乙個本體語言指定語言型別.

ontmodel ontmodel =modelfactory.createontologymodel(ontmodelspec.owl_mem);

try

catch

(filenotfoundexception e1)

//迭代顯示模型中的類,在迭代過程中完成各種操作

for (iterator<?> i =ontmodel.listclasses(); i.hasnext();)

//迭代顯示當前類的直接子類

for (iterator<?> it =c.listsubclasses(); it.hasnext();)

stmtiterator iterator =c.listproperties();

while

(iterator.hasnext())

這樣就完成了整個的遍歷過程。再找到此方法之前,自己嘗試過直接使用jena自帶的persistentontology這個類中的方法直接存入資料庫,但是發現他會自動生成好多張表。而且裡面有一些資料是不可解釋的(可能是我沒理解吧),而且屬性名前面會加上字首,不利於進一步進行操作。

SpringBoot(讀取配值檔案裡面的屬性)

1 propertysource配置檔案路徑設定,在類上新增註解,如果在預設路徑下可以不新增該註解。propertysource public class testcontroller2 value屬性名,在屬性名上新增該註解 value private string myname 然後就可以使用m...

FileBeat讀取檔案 自定義標籤 字段 屬性

建立 乙個檔案 進入 到filebeat專案的目錄中 修改之前新增 的配置檔案如下 filebeat.inputs type log enabled true paths 這裡的 表示可以有多個 usr local elasticsearch beats logs log setup.templat...

chown更改檔案或目錄的屬主和屬組

一 chown的作用 更改檔案或目錄的屬主和屬組 二 語法 chown user group filename 更改檔案的屬主和屬組 chown user filename 更改檔案的屬主 chown group filename 更改檔案的屬組 例如 ldyabl localhost touch ...