`
film
  • 浏览: 227580 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jena保存本体到数据库中

 
阅读更多

http://blog.tianya.cn/blogger/post_read.asp?BlogID=797111&PostID=28461722


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 rule = "[rule1:(?x http://www.owl-ontologies.com/Animal.owl#Belonging ?y) " +


  


  
"->(?y http://www.owl-ontologies.com/Animal.owl#Belonged ?x)]";


  


  
/*查询语句*/


  
String queryString = "PREFIX Animal:<http://www.owl-ontologies.com/Animal.owl#> " +


  
"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());


  
}


  
}


  
}

分享到:
评论

相关推荐

    使用Jena将本体存入MySQL

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

    基于Jena的本体推理示例

    基于Jena的本体推理,使用sparql语言对本体进行查询。

    用Jena将本体文件存入MySQL数据库的实现方法

    `createModelRDBMaker`方法用于创建一个可以将模型映射到数据库的`ModelMaker`。 接下来,我们创建一个默认模型,并指定其名称: ```java Model defModel = maker.createModel("MyOntology"); ``` 这里,...

    jena入门学习之解析本体

    这是用jena对本体进行解析的很好的一篇文档,大家好好参考哦

    Jena本体推理实例

    Jena实现本体的推理,包括.rules规则等,使用sparql语言对本体进行查询

    Jena对本体的处理

    数据仓库课程上的报告,主要是关于本体的集成,使用到jena

    jena操作本体的小例子

    中文关系搜索:关系搜索(Relationship Search)是一种基于互联网海量信息下的以人物为中心的信息聚合的垂直搜索,未来将会为我们关注某些名人和发掘人际关系发挥重要作用,某人还某些人还笑谈说这将会是人肉搜索...

    Jena对本体操作综合笔记

    数据库课程报告,jena的笔记综合,清晰列出的笔记

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

    针对本体构建中构造方法不清晰、本体描述语言不统一、可用工具较少的难题,在Jena的基础上提出了基于Jena的本体构建方法。该方法由描述类、描述属性、将属性关联到类、定义实例和加入本体维护元数据5个步骤组成,...

    将OWL本体文件存储到MySQL数据库

    在这里,我们使用Jena的DBConnection类来连接到MySQL数据库,并使用ModelMaker类来读取OWL本体文件并将其存储到数据库中。 在Java程序中,我们需要导入必要的包,包括IO包、SQL异常处理包、Jena链接数据库的包、...

    JENA教程(包括生成RDF和写本体到MySQL中)

    JENA教程(包括生成RDF和写本体到MySQL中,很适合入门,很详细)JENA教程(包括生成RDF和写本体到MySQL中,很适合入门,很详细)JENA教程(包括生成RDF和写本体到MySQL中,很适合入门,很详细)JENA教程(包括生成RDF和写本体...

    Jena本体推理详细实例.zip

    Jena本体推理详细实例

    jena.dll,在、net中用jena操作本体的工具

    jena.dll,在、net中用jena操作本体的工具

    Jena 中文教程 本体API

    在Jena中,读取OWL本体文件通常使用`ModelFactory.createOntologyModel()`创建一个`OntModel`实例,然后调用`read()`方法加载文件。在提供的代码示例中: ```java OntModel m = ModelFactory.createOntologyModel()...

    Jena-API.rar_jena api_jena protege_owl_protege jena_本体

    本体,应用程序则是使用Jena来做同样的工作,当然这些应用程序还是得由我 们来编写。其实Protege本身也是在Jena的基础上开发的,你看如果Protege 的console里报异常的话,多半会和Jena有关。最近出了一个Protege OWL...

    运用Jena对本体模型进行推理及其应用

    运用Jena对本体模型进行推理及其应用,详细介绍了一些基于本体推理的方法及一些代码。

    Jena中文教程-本体API

    jena的中文教程,适合不想去官网看原版教程的人。适合新手入门学习jena的基本操作。jena可以解析本体,可以将建模工具和java联系起来

    Jena本体操纵类(1)——本体文件读取

    Jena本体操纵类,主要功能是对本体的概念、关系以及实例进行读取分析

Global site tag (gtag.js) - Google Analytics