`
yydcj
  • 浏览: 61614 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jena持久化到数据库

阅读更多

Jena HP Labshttp://www.hpl.hp.com ) 开发的Java 开发工具包, 用于Semantic Web( 语义网) 中 的应用程序开发;Jana 是开源的,在下载的文档中有Jena 的完整代码。

jena支持的数据库有:

Database Engine JDBC Driver
HSQLDB 1.8.0
MySQL 4.1.11
MySQL 5.0.18
JDBC driver versions: 3.0, 3.1, 5.0
PostgreSQL 7.3
PostgreSQL 8.0
JDBC driver 7.3
JDBC driver 8.0
Apache Derby 10.1
Oracle 10 XE Oracle ojdbc14 driver (thin driver) 10.2.0.2
Oracle 9i Release 2 Oracle ojdbc14 driver (thin driver) 10.2.0.2
Oracle 10g Release 2 Oracle ojdbc14 driver (thin driver) 10.2.0.2
Microsoft SQL Server 2005 Express SP1 Microsoft SQL Server 2005 JDBC Driver
Microsoft SQL Server 2000
Microsoft SQL Server Desktop Edition
Microsoft SQL Server 2005 JDBC Driver
jTDS version 1.2

jena可以操作rdf文件和owl文件,下面我们给出例子持久化这些文件到数据库

Jena supports both memory models and database models. In general, a Jena program may use both types of models identically. However, there are some differences in how the models are created. Creating a memory model can be done with a single Jena call. Creating a database model, or opening a previously created one, requires several steps as as follows.

Persistent models are created in the same way for any database system:

  1. Load the JDBC driver. This enables the Jena program to communicate with the database instance.
  2. Create a database connection. This creates a Java object for a database connection.
  3. Create a ModelMaker for the database
  4. Create a Model for existing or new data.

Creating and Accessing Persistent Models有两种方法:

Factory Methods:

Creating or opening a model is a three-step process. First, the driver class must be loaded and a connection established to the database (note that in Jena2, the database type is specified as part of the database connection). Second, a model maker class is constructed. The model maker creates persistent instances of the Model class. Third, the model maker class is invoked to create new models or to open existing models. The following examples show how this is done.

// database URL
String M_DB_URL         = "jdbc:mysql://localhost/test"
;
// User name
String M_DB_USER        = "test"
;
// Password
String M_DB_PASSWD      = ""
;
// Database engine name
String M_DB = "MySQL"
;
// JDBC driver
String M_DBDRIVER_CLASS = "com.mysql.jdbc.Driver"
;
// load the the driver class
Class.forName(M_DBDRIVER_CLASS);


// create a database connection

IDBConnection conn = new

 DBConnection(M_DB_URL, M_DB_USER, M_DB_PASSWD, M_DB);


// create a model maker with the given connection parameters

ModelMaker maker = ModelFactory.createModelRDBMaker(conn);

 
// create a default model
Model defModel = maker.createDefaultModel();
// Open existing default model
Model defModel = maker.openModel();
// or create a named model
Model nmModel = maker.createModel("MyNamedModel");
// or open a previously created named model
Model prvModel = maker.openModel("AnExistingModel");
ModelRDB Methods:

Creating an instance of ModelRDB is a two-step process. As with the factory methods,

the first step is to load the driver class and establish a database connection.

Second, the static methods on ModelRDB are used to create new ModelRDB instances or to open existing ones.

The following examples show how this is done.

String M_DB_URL          = "jdbc:mysql://localhost/test"
;
String M_DB_USER         = "test"
;
String M_DB_PASSWD       = ""
;
String M_DB              = "MySQL"
;
String M_DBDRIVER_CLASS  = "com.mysql.jdbc.Driver"
;

// load the the driver class
Class.forName(M_DBDRIVER_CLASS);



// create a database connection

IDBConnection conn = 
new

 DBConnection(M_DB_URL, M_DB_USER, M_DB_PASSWD, M_DB);


 

// ---- Directly use ModelRDB

 


// create a default model

ModelRDB defModel = ModelRDB.createModel(conn);

...
// Open an existing model.

ModelRDB defModel2 = ModelRDB.openModel(conn);

...


// create a named model

ModelRDB nmModel = ModelRDB.createModel(conn,"MyModelName");

...

// open a named model

ModelRDB nmModel2 = ModelRDB.openModel(conn,"ExistingModelName");

...

下面给出一个完整的源码例子:

package com.jena.db;
import java.sql.SQLException;
import com.hp.hpl.jena.db.*;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.rdf.model.*;
public class Example {
public void test()
{
 String className = "com.mysql.jdbc.Driver";           // path of driver class
 try {
    Class.forName (className);
 String DB_URL =       "jdbc:mysql://localhost/jena";  // URL of database 
 String DB_USER =     "root";                            // database user id
 String DB_PASSWD = "123";                            // database password
 String DB =          "MySQL";                           // database type
 // Create database connection
 IDBConnection conn = new DBConnection ( DB_URL, DB_USER, DB_PASSWD, DB );
 ModelMaker maker = ModelFactory.createModelRDBMaker(conn) ;
 // create or open the default model
 Model model = maker.createDefaultModel();
 OntModel m = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, model );
      m.read("file:creature.owl");
      conn.close();
} catch (Exception e) {
 e.printStackTrace();
}
}
public void test1()
{
try{
 Class.forName( "com.mysql.jdbc.Driver");
 String DB_URL =       "jdbc:mysql://localhost/jenatest";  // URL of database 
 String DB_USER =     "root";                            // database user id
 String DB_PASSWD = "123";                            // database password
 String DB =          "MySQL";  
 IDBConnection conn = new DBConnection ( DB_URL, DB_USER, DB_PASSWD, DB );
 ModelRDB defModel = ModelRDB.createModel(conn);
 defModel.read("file:creature.owl");
 conn.close();

//conn.cleanDB();//这个方法是清除数据库里的东西
}catch(Exception e){e.printStackTrace();} 
}
 public static void main(String[]args)
{
 Example e=new Example();
 e.test();
 e.test1();
}
}
这些都
是我从帮助文档里总结和截取出来的,希望对有需要的朋友提供帮助。。。


 

一个例子:http://jena.sourceforge.net/examples/persistent-ont-model/index.html

mysql持久化:http://jena.sourceforge.net/DB/mysql-howto.html

http://jena.sourceforge.net/DB/creating-db-models.html

参考:http://jena.sourceforge.net/ontology/index.html

分享到:
评论

相关推荐

    jena2.64包,最稳当的OWL持久化包

    Jena提供了对OWL的支持,并且在这个特定的2.6.4版本中,它被认为是最稳定的用于将OWL本体持久化到数据库(如MySQL)的工具。 描述中提到的“将OWL本体持久化到MySQL,最稳当的包,高于2.6版本的包找不到持久化方法...

    使用Jena将本体存入MySQL

    Jena是一个基于Java的本体处理框架,它提供了将本体存入关系数据库的接口,支持多种数据库管理系统,包括MySQL、HSQLDB、PostgreSQ、Oracle和Microsoft SQL Server等。下面我们将详细介绍使用Jena将本体存入MySQL的...

    jena2.6.4.jar and jena2.6.4-src

    此次我们关注的是Jena的2.6.4版本,这是一个经过广泛测试和验证的稳定版本,尤其适用于将本体模型持久化存储到数据库中。 Jena 2.6.4提供了丰富的API和功能,使得开发者能够方便地在Java环境中构建和操作本体模型。...

    Jena 开源与以往项目

    在本案例中,我们关注的是Jena 2.6.4 版本,这个版本具有将本体模型持久化到MySQL数据库的能力。 **Jena API** Jena 提供了一套全面的API,使得开发者能够轻松地处理语义网数据。这些API包括: 1. **Model API**...

    jena安装包

    10. **Triple Store**: Jena支持多种类型的Triple Store,包括内存中的存储和持久化的存储,如TDB和SDB。 安装Apache Jena 2.12.1的步骤如下: 1. 首先,从Apache官方网站下载"apache-jena-2.12.1"压缩包。 2. ...

    jena语义框架3.7.0

    3. **TDB**:TDB是Jena的一个持久化存储系统,专为大规模RDF数据设计,提供高效且可扩展的存储解决方案。 4. **ARQ**:ARQ是Jena的SPARQL查询引擎,支持标准SPARQL语法,包括SELECT、CONSTRUCT、ASK和DESCRIBE四种...

    apache-jena-3.2.0

    5. **GraphDB**:Jena内置了内存数据库和持久化存储选项,如TDB(Triple-Database)和FUSEKI(一个基于HTTP的SPARQL服务器),用于存储和检索大量RDF数据。 6. **Reasoners**:Jena包含了几种推理引擎,如Hermit、...

    Jena推理演示程序(完整,带owl文档)

    学习过程中做的一个利用Jena实现的推理...内容包含:构建model,实现数据库与model关联,读入本体文件,构建规则,使用规则构建推理机,构建查询,实施查询,输出查询结果,将本体持久化到Mysql数据库。希望有帮助。

    Jena-2.5 语义网API

    5. **持久化存储**:Jena支持多种存储后端,如内存、文件系统、RDF4J或JDBC,可以灵活选择适合的存储方案。 ### 四、实际应用案例 1. **知识图谱构建**:Jena可以帮助构建和维护大型知识图谱,如Google的Knowledge...

    用jena做的语义检索系统

    Jena提供数据存储和管理的功能,可以将这些数据加载到内存模型中,或者持久化到文件系统或数据库。 `rules`目录则可能包含了规则文件,这些规则可能基于SWRL(Semantic Web Rule Language),用于进行语义推理。...

    对jena的简单理解和一个例子

    5. **Jena SDB**: 提供了一个持久化存储解决方案,可以将大型RDF数据集存储在数据库中,以提高性能和可扩展性。 **Jena的基本用法** 一个简单的Jena使用例子可能涉及以下步骤: 1. **创建Model**: 首先,我们需要...

    基于Jena的本体构建方法研究.pdf

    - **存储支持**:支持内存存储和持久化存储,兼容多种数据库系统,如MySQL、Oracle和PostgreSQL。 - **本体子系统**:提供了一组接口来支持OWL、DAML+OIL和RDFS等标准的本体构建和管理。 #### 基于Jena的本体构建...

    Jena对本体操作综合笔记

    3. **数据库集成**:提供机制用于将数据存储在数据库中,支持持久化存储和高性能查询。 4. **查询与推理**:具备查询模型的能力,并支持基于规则的推理,增强数据理解和分析的深度。 5. **URI规范**:强调URI作为...

    Jena Ontology API 教程

    14. 处理持久化的本体:讨论如何将本体存储和加载到持久化存储,如文件系统或数据库中。 15. 实验性本体工具:介绍一些实验性的功能或工具,可能还未完全成熟,但对开发人员有帮助。 16. 常见的本体应用问题和示例...

    Jena-2.6.3

    它包含了内置的内存模型存储,适用于小型数据集,同时也支持连接到像TDB这样的持久化存储系统,这对于处理大规模的RDF数据至关重要。TDB是一个专门为RDF设计的关系数据库,能够在保持高性能的同时,有效管理海量数据...

    apache-jena-2.10.1 API 文档 document senamticweb 语义网

    **TDB组件**是Apache Jena的持久化存储解决方案,专为大规模语义数据设计。TDB提供了一个高性能、可扩展的关系数据库模型来存储和检索RDF数据。它允许开发者在内存和磁盘之间透明地管理数据,同时保持高效的查询性能...

    数据库总结1

    关系型数据库是最常见的数据库类型,遵循ACID(原子性、一致性、隔离性和持久性)原则,支持SQL查询语言,数据以表格形式组织,通过键值关联实现数据之间的关系。它们在企业级应用中占据主导地位,尤其适合处理结构...

    各类型数据库4月排名,基于排名网站数据爬虫json结果

    **关系型数据库**(Relational Database Management System, RDBMS):如MySQL、Oracle、SQL Server等,基于关系理论,使用表格形式存储数据,支持ACID(原子性、一致性、隔离性、持久性)特性,适用于需要高度结构...

    JenaOntology教程

    12. **持久化本体**:介绍如何保存和加载本体模型到文件或数据库。 13. **实验性本体工具**:可能包含一些前沿或仍在开发中的特性。 **进一步的帮助** 如果你在使用Jena Ontology API时遇到问题,可以通过加入Jena...

Global site tag (gtag.js) - Google Analytics