日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

rdf mysql持久化l_Jena 利用数据库保存,持久化本体

發布時間:2023/12/10 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rdf mysql持久化l_Jena 利用数据库保存,持久化本体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 Jena的數據庫接口

Jena提供了將RDF數據存入關系數據庫的接口,Model、Resource、Query等接口可以用于訪問和維護數據庫里的RDF數據。在處理數據時,應用程序不必直接操作數據(而

是通過Jena的API),也不必知道數據庫的模式。Jena提供了支持MySQL、HSQLDB、PostgreSQ、Oracle和Microsoft SQL Server的程序接口。有些第三方提供其他數據庫接

口的支持。可以參考Jena數據庫文檔獲得數據庫版本以及對應的JDBC驅動說明。

2 Jena的數據庫模式

關系數據庫存儲RDF數據的一般模式是“三元組”,表有三列(主體、謂詞、客體)每個RDF陳述(sataement)占用一行。有時候,添加第四列以表示客體是字符常量還是

URI。Jena 2采用一種denormalized的三元組存儲方法,是存儲空間和訪問時間的一種權衡方法(a space-time trade-off)。Jena使用兩類七個表存儲本體,第一類是

asserted statements,第二類reified statements。

Statement Tables 陳述表:

1) ? ? ? ? Asserted Statement Table (Jena_GiTj_Stmt):存儲本體數據

2) ? ? ? ? Reified Statement Table (Jena_GiTj_Reif):經過處理的本體數據。System Tables 系統表:存儲元數據和陳述表中使用的較長的文字或者資源

3) ? ? ? ? System Statement Table (Jena_Sys_Stmt):存儲系統元數據

4) ? ? ? ? Long Literals Table (Jena_Long_Lit):存儲陳述表中不便于直接存儲的長字符創常量(Literals)

5) ? ? ? ? Long Resources Table (Jena_Long_URI):存儲陳述表中不便于直接存儲的長資源URI

6) ? ? ? ? Prefixes Table (Jena_Prefix):存儲URI的前綴。前綴只存儲一次,節省空間。

7) ? ? ? ? Graph Table (Jena_Graph):存儲每一個用戶圖的名字和唯一標志符。

8) ? ? ? ? Lock Table (Jena_Mutex):一個沒有內容的表。如果該表存在,在一定時間段里數據庫被鎖定。

可以參照\\Jena-2.6.4\doc\DB\layout.html獲取各個表的詳細信息。

3 創建本體的持久模型

Jena同時支持內存模型和數據庫模型。一般來講,創建內存模型只需要調用Jena的一些接口,但創建數據庫模型,或者打開先前創建的模型,要求一些具體的步驟。

任何數據庫的持久模型通過以下步驟創建:

1) ? ? ? ? 加載數據庫JDBC驅動

2) ? ? ? ? 創建數據庫連接

3) ? ? ? ? 為數據庫創建一個ModelMaker

4) ? ? ? ? 為本體創建一個模型

4 將本體持久化存入MySQL中

1) 其中數據庫的配置文件為:

jdbc.drivers=com.mysql.jdbc.Driver

jdbc.url=jdbc\:mysql\://localhost\:3306/ontologies?useUnicode\=true&characterEncoding\=UTF-8

jdbc.username=root

jdbc.password=root

2) 實例類

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.UnsupportedEncodingException;

importjava.sql.SQLException;

importcom.hp.hpl.jena.db.DBConnection;

importcom.hp.hpl.jena.db.IDBConnection;

importcom.hp.hpl.jena.db.RDFRDBException;

importcom.hp.hpl.jena.ontology.OntModel;

importcom.hp.hpl.jena.ontology.OntModelSpec;

importcom.hp.hpl.jena.rdf.model.Model;

importcom.hp.hpl.jena.rdf.model.ModelFactory;

importcom.hp.hpl.jena.rdf.model.ModelMaker;

importedu.hrbeu.ontology.util.getDBPropeties;

/**

*?@purpose?本體數據庫功能

*?@author?zhaohongjie

*

*/

publicclassOntologyDBImplimplementsIOntologyDB?{

/**

*?數據庫連接對象

*/

privateIDBConnection?conn?=null;

/**

*?文件輸入流對象

*/

privateInputStreamReader?in?=null;

/**

*?獲取數據連接

*?@return

*/

privateIDBConnection?getDBConn()?{

getDBPropeties?getdb?=?newgetDBPropeties();

try{

this.conn?=newDBConnection(getdb.getUrl(),?getdb.getUser(),?getdb.getPassword(),"MySQL");

Class.forName(getdb.getClassDrive());

}?catch(RDFRDBException?e)?{

System.out.println("Exceptions?occur...");

}?catch(ClassNotFoundException?e)?{

System.out.println("ClassNotFoundException,?Driver?is?not?available...");

}

returnthis.conn;

}

/**

*?從數據流獲取本體

*?@param?filePath

*/

publicInputStreamReader?getFileStream(String?filePath)?{

FileInputStream?inputSreamfile?=?null;

try{

File?file?=?newFile(filePath);//"./Expert.owl"

inputSreamfile?=?newFileInputStream(file);

}?catch(FileNotFoundException?e)?{

e.printStackTrace();

System.out.println("Ontology?File?is?not?available...");

}

try{

this.in?=newInputStreamReader(inputSreamfile,"UTF-8");

}?catch(UnsupportedEncodingException?e)?{

e.printStackTrace();

}

returnthis.in;

}

/**

*?將本體存入數據庫

*?@param?ontoName

*/

publicvoidtoMySQL(String?ontoName)?{

ModelMaker?maker?=?ModelFactory.createModelRDBMaker(getDBConn());

Model?defModel?=?maker.createModel(ontoName);?//"expert"

defModel.read(in,null);

defModel.commit();

closeDBResource();

}

/**

*?OntModelSpec

*?@param?maker

*?@return

*/

privateOntModelSpec?getModelSpec(ModelMaker?maker)?{

OntModelSpec?spec?=?newOntModelSpec(OntModelSpec.OWL_MEM);

spec.setImportModelMaker(maker);

returnspec;

}

/**

*?返回本體

*?@param?ontoName

*?@return

*/

privateOntModel?getModelFromDB(String?ontoName)?{

ModelMaker?maker?=?ModelFactory.createModelRDBMaker(getDBConn());

Model?base?=?maker.getModel(ontoName);

OntModel?newmodel?=?ModelFactory.createOntologyModel(getModelSpec(maker),?base);

returnnewmodel;

}

/**

*?獲取本體對象

*?@param?ontoName

*/

publicOntModel?fromMySQL(String?ontoName)?{

OntModel?model?=?getModelFromDB(ontoName);

returnmodel;

}

/**

*?關閉占用資源

*/

privatevoidcloseDBResource()?{

closeFileStream();

closeDBConn();

}

/**

*?關閉數據流

*/

privatevoidcloseFileStream()?{

try{

this.in.close();

}?catch(IOException?e)?{

e.printStackTrace();

}

}

/**

*?關閉數據庫連接

*/

publicvoidcloseDBConn()?{

try{

if(this.conn?!=null)?{

this.conn.close();

}

}?catch(SQLException?sqlEx)?{

sqlEx.printStackTrace();

}

}

}

3) mian函數

publicstaticvoidmain(String[]?args)?{

String?ruleFile?=?"file:./expert/Expert.rules";

IOntologyDB?ontoDB?=?OntologyDBFactory.createDBont();

ontoDB.getFileStream(ruleFile);

ontoDB.toMySQL("expert");

ontoDB.closeDBConn();

}

總結

以上是生活随笔為你收集整理的rdf mysql持久化l_Jena 利用数据库保存,持久化本体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧亚免费视频 | 91国内精品| 绯色av一区二区 | 欧美在线视频免费播放 | 天天射天天色天天干 | 色图在线观看 | 美国三级a三级18 | 99日韩精品| 日韩欧美视频在线 | www.youjizz.com视频| 亚洲爽妇网| 黄色小视频链接 | 日韩在线视频你懂的 | 天天操天天操天天操天天操天天操 | 黄色网占 | 不卡在线| 国产综合99 | 国产免费无遮挡吸奶头视频 | 日韩大尺度视频 | 国产乱人乱精一区二视频国产精品 | 激情小说五月天 | 成人午夜在线观看 | 国产女人视频 | 在线观看黄色免费网站 | 国产69视频在线观看 | 欧美日韩中文字幕视频 | 色噜噜狠狠一区二区三区 | av视| 婷婷综合激情 | 日韩五码电影 | 久久入 | 国产精品主播视频 | 成人黄色小说在线观看 | 一本色道久久综合亚洲精品 | 超碰色偷偷 | 成人污网站| 精品国产一区二区在线 | 五月天久久久久久 | 在线一区二区观看 | 一区二区三区在线观看免费 | 美女扒开粉嫩的尿囗给男生桶 | wwxx日本 | 99久久99久久精品免费看蜜桃 | 色玖玖综合 | 欧美三p | 午夜在线免费观看视频 | 一级aaaa毛片 | 男人亚洲天堂 | 欧美精品片| 最新日韩在线 | 日本一区久久 | 精品一区二区三区欧美 | 田中瞳av| 视频在线播 | 久久久久久久久久久久久久 | 色播在线视频 | 伊人首页 | 老司机av导航 | 亚洲精品综合精品自拍 | 成人污在线 | 久久久久久久9999 | 理论片毛片 | 狠狠操影视 | 在线观看免费的av | 日韩中文字幕免费观看 | 色国产视频 | 综合网在线观看 | 绯色av一区二区三区高清 | 亚洲午夜色 | 久久成人精品一区二区 | 天堂8中文 | 久久黄色免费视频 | 福利小视频在线播放 | 本田岬av | 亚洲最大视频网站 | 黄色免费在线播放 | 国产精品亚洲色图 | 日韩精品国产精品 | 韩国成人在线 | 一本一道av无码中文字幕 | 中文字幕精品一区二区精 | 国产一区99 | 黑色丝袜吻戏亲胸摸腿 | 欧美hdxxxx | 极品人妻一区二区 | 国产黄免费 | 黄视频免费在线看 | xxx在线播放 | 国产三级精品三级在线观看 | 日本免费黄网站 | 国产高清免费在线 | 性做久久久久久免费观看欧美 | 三级毛毛片 | 成人午夜精品一区二区三区 | 三级视频在线看 | 黄大色黄大片女爽一次 | www.午夜激情 | 在线国产一区 | 欧美精品日韩在线观看 |