使用Jena将本体存入MySQL

上传人:枫** 文档编号:565033917 上传时间:2023-04-03 格式:DOCX 页数:4 大小:22.07KB
返回 下载 相关 举报
使用Jena将本体存入MySQL_第1页
第1页 / 共4页
使用Jena将本体存入MySQL_第2页
第2页 / 共4页
使用Jena将本体存入MySQL_第3页
第3页 / 共4页
使用Jena将本体存入MySQL_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《使用Jena将本体存入MySQL》由会员分享,可在线阅读,更多相关《使用Jena将本体存入MySQL(4页珍藏版)》请在金锄头文库上搜索。

1、使用Jena将本体存入MySQL 使用Jena将本体存入MySQL文档和例子 iMarine http:/iM 注明:本文档参考 Jena 2.5 文档,使用 Jena 2.5 API 和 MySQL 5.0.4-beta-nt 数据库。MySQL驱动包使用的是mysql-connector-java-3.1.10-bin.jar。1 Jena 的数据库接口Jena提供了将RDF数据存入关系数据库的接口,Model、Resource、Query等接 口可以用于访问和维护数据库里的RDF数据。在处理数据时,应用程序不必直接操作数据库(而是通过Jena的API),也不必知道数据 库的模式。Jena

2、 提供了支持 MySQL、 HSQLDB、 PostgreSQ、 Oracle 和 Microsoft SQL Server 的程序接口。有些第三方提供其他数据库接口的支持。可以参考Jena数据库文档获得数据库版本以及对应的JDBC驱动说明。2 Jena的数据库模式关系数据库存储RDF数据的一般模式是“三元组”,表有三列(主体、谓词、客 体)每个RDF陈述(sataement)占用一行。有时候,添加第四列以表示客体是字符常量还是URI。Jena 2采用一种denormalized的三元组存储方法,是存储空间和访问时间的一 种权衡方法(a space-time trade-off )。Jena

3、使用两类七个表存储本体,第一类是asser ted stat emen ts,第二类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 Li terals Table (

4、Jena_Long_L it):存储陈述表中不便于直接 存储的长字符创常量(Literals)5) Long Resources Table (Jena_Long_URI):存储陈述表中不便于直 接存储的长资源 URI6) Prefixes Table (Jena_Prefix):存储 URI 的前缀。前缀只存储一 次,节省空间。7) Graph Table (Jena_Graph):存储每一个用户图的名字和唯一标志 符。8) Lock Table (Jena_Mutex): 一个没有内容的表。如果该表存在,在 一定时间段里数据库被锁定。可以参照Jena-2.5docDBlayout.html

5、获取各个表的详细信息。3 创建本体的持久模型Jena同时支持内存模型和数据库模型。一般来讲,创建内存模型只需要调用Jena 的一些接口,但创建数据库模型,或者打开先前创建 的模型,要求一些具体的步骤。任何数据库的持久模型通过以下步骤创建:1) 加载数据库 JDBC 驱动2) 创建数据库连接3) 为数据库创建一个 ModelMaker4) 为本体创建一个模型4 将本体存入 MySQL使用Jena将本体出入MySQL中的OntoDatabase数据库。完整代码如下: Java代码症lavaffi 码 _2.3.4.5.6.*将本体存入MySQLjavajavasql.SQLException;匚

6、om.hp-Bh 口1 .jena import import import importpublicclass Onto2Database8.9.publicstaticfinalStringstrDriver = comBmiysq 1 jdbc . Driver; /path of driver clas10.publicstaticfinalStringstrURL = jdbc:mysql:/localhost/OntoDB; / URL of databaspublic public publicstaticstaticstaticfinalfinalfinalStringStri

7、ngStringstrUser = root; /database user idstrPassWord = onto; /database 口asswordstrDB = JlySQIL; /database typ已publicstaticvoid main(String args)匚 om.hp-Bh 口1 .jena rdf .model20.21.22.23.24.25.26.27.28.29.30.31.try/创淫一牛數据库连接IDB匚门门已匚ticm conn = new DB匚onn已匚ticm ( strURLj strUserj strPassWardstrD);/加载数

8、据库呃动类,需要处理异常try匚lass.forNa me(st rDr i ver);catch(ClassNlot Found Except ion e) System out. println ( Driver is not available .)/使用数据库连接参数创逹一平模型制造器ModelMaker nuak =Model Fact ory. cir eat eModel RDBMakeir( conn);/创逹一个默:认模型“命名为HyOntology31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.5

9、2.53.54.55.56.57.5S.59.60.61.62.63.64./创建一个默认模型命名为MlyOntologyModel defHodel = ma k e rc re at eMo d e1(MyOnt ology);堆备需要存入数据库的本体文件建立输入文件流Fileinput St ream inputSreainfile = null;try File file = newFile( G: WeclipseWworkspace .thesisdataMyOntology .owinputSreamrfil已=new Fil已I门pu5士厂已日已); catch (FileNo

10、tFoundException e) e Bprint5tackTrace();System.out B printIn(Ontology File is not available ;InputStreamReader in = null;try in = new InputStr已aeR已日d已r(inputSr已amrfile!UTF-S); catch (Unsupport已dE门匸odi门gE贰匸已ption e) e Bprint5tackTrace();读取文件defModeleadfinnull);/关闭输入疣读取器try in.close(); catch (IOExcept

11、io-n e) e Bprint5tackTrace();执行数据转换将本体数据存入数据库defModel-commit();关闭数据库连接65.66.67.68.69.70.71.72.73.74.75.try conn Bclose(); catch (SQLException e) 已.printSta匚kT厂吕匚已();catch(RDFRDBException e)System.out.printlntExceptions occur; H :码结束5 查看数据库中的本体 执行程序之后,本体被存入 MySQL 数据库中。主要数据存在两个表中1)ontodatabase.jena_g1t1_stmt 存储了本体的数据信息2)ontodatabase.jena_sys_stmt 存储了本体的元数据信息可以通过命令行查看或者使用 MySQL GUI 客户端工具查看。建议使用后者。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号