mysql数据库中本体数据_jena保存本体到数据库中

import java.util.Iterator;

import com.hp.hpl.jena.db.DBConnection;

import com.hp.hpl.jena.db.IDBConnection;

import com.hp.hpl.jena.ontology.OntClass;

import com.hp.hpl.jena.ontology.OntModel;

import com.hp.hpl.jena.ontology.OntModelSpec;

import com.hp.hpl.jena.query.Query;

import com.hp.hpl.jena.query.QueryExecution;

import com.hp.hpl.jena.query.QueryExecutionFactory;

import com.hp.hpl.jena.query.QueryFactory;

import com.hp.hpl.jena.query.ResultSet;

import com.hp.hpl.jena.query.ResultSetFormatter;

import com.hp.hpl.jena.rdf.model.InfModel;

import com.hp.hpl.jena.rdf.model.Model;

import com.hp.hpl.jena.rdf.model.ModelFactory;

import com.hp.hpl.jena.rdf.model.ModelMaker;

import com.hp.hpl.jena.reasoner.Reasoner;

import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasoner;

import com.hp.hpl.jena.reasoner.rulesys.Rule;

public class sparqltuili{

public static final String strDriver = "com.mysql.jdbc.Driver"; // path of driver class

public static final String strURL = "jdbc:mysql://localhost/protege_db"; // URL of database

public static final String strUser = "root"; // database user id

public static final String strPassWord = ""; // database password

public static final String strDB = "MySQL"; // database type

public static void main(String[] args){

try{

// 创建一个数据库连接

IDBConnection con = new DBConnection ( strURL, strUser, strPassWord, strDB );

// 加载数据库驱动类,需要处理异常

try{

System.out.println(strDriver);

Class.forName(strDriver);

}catch(ClassNotFoundException e) {

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

}

String filePath = "file :C:\\Program Files\\Protege_3.1\\Animal.owl";

sparqltuili.createDBModelFromFile(con, "1protege_db",filePath);

OntModel model = sparqltuili.getModelFromDB(con, "1protege_db");

sparqltuili.simpleReadOntology(model);

/*查询语句*/

String queryString = "PREFIX Animal: " +

"SELECT ?Zoo ?Herbivore " +

"WHERE { ?Zoo Animal:Belonged ?Herbivore} ";

/*创建推理机*/

Reasoner reasoner2 = new GenericRuleReasoner(Rule.parseRules(rule));

InfModel inf = ModelFactory.createInfModel(reasoner2, model);

Query query = QueryFactory.create(queryString);

QueryExecution qe = QueryExecutionFactory.create(query, inf);

ResultSet results = qe.execSelect();

/*打印结果*/

ResultSetFormatter.out(System.out, results, query);

qe.close();

}catch(Exception e){e.printStackTrace();}}

/* 从文件读取本体并将其存入数据库 */

public static OntModel createDBModelFromFile(IDBConnection con, String name,

String filePath) {

ModelMaker maker = ModelFactory.createModelRDBMaker(con);

Model base = maker.createModel(name);

OntModel newmodel = ModelFactory.createOntologyModel(

getModelSpec(maker), base);

newmodel.read(filePath);

return newmodel;

}

/* 从数据库中得到已存入本体 */

public static OntModel getModelFromDB(IDBConnection con, String name) {

ModelMaker maker = ModelFactory.createModelRDBMaker(con);

Model base = maker.getModel(name);

OntModel newmodel = ModelFactory.createOntologyModel(

getModelSpec(maker), base);

return newmodel;

}

public static OntModelSpec getModelSpec(ModelMaker maker) {

OntModelSpec spec = new OntModelSpec(OntModelSpec.OWL_MEM);

spec.setImportModelMaker(maker);

return spec;

}

/* 简单读取本体中的各个class */

public static void simpleReadOntology(OntModel model) {

for (Iterator i = model.listClasses(); i.hasNext();) {

OntClass c = (OntClass) i.next();

System.out.println(c.getLocalName());

}

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2013-03-27 23:18

浏览 403

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值