/** 将本体存入MySQL **/
import java.io.*;
import java.sql.SQLException;
import com.hp.hpl.jena.db.*;
import com.hp.hpl.jena.rdf.model.*;
public class Onto2Database{
public static final String strDriver = "com.mysql.jdbc.Driver"; //path of driver class
public static final String strURL = "jdbc:mysql://localhost/OntoDB"; // URL of database
public static final String strUser = "root"; //database user id
public static final String strPassWord = "onto"; //database password
public static final String strDB = "MySQL"; //database type
public static void main(String[] args){
try{
// 创建一个数据库连接
IDBConnection conn = new DBConnection ( strURL, strUser, strPassWord, strDB );
// 加载数据库驱动类,需要处理异常
try{
Class.forName(strDriver);
}catch(ClassNotFoundException e) {
System.out.println("Driver is not available...");
}
// 使用数据库连接参数创建一个模型制造器
ModelMaker maker = ModelFactory.createModelRDBMaker(conn);
// 创建一个默认模型,命名为 MyOntology
Model defModel = maker.createModel("MyOntology");
// 准备需要存入数据库的本体文件,建立输入文件流
FileInputStream inputSreamfile = null;
try {
File file = newFile("G:\\eclipse\\workspace.thesis\\data\\MyOntology.owl");
inputSreamfile = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("Ontology File is not available...");
}
InputStreamReader in = null;
try {
in = new InputStreamReader(inputSreamfile,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 读取文件
defModel.read(in,null);
// 关闭输入流读取器
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 执行数据转换,将本体数据存入数据库
defModel.commit();
// 关闭数据库连接
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}catch(RDFRDBException e){
System.out.println("Exceptions occur...");
}
}
} // 代码结束
5 查看数据库中的本体
执行程序之后,本体被存入MySQL数据库中。主要数据存在两个表中。
1) ontodatabase.jena_g1t1_stmt 存储了本体的数据信息
2) ontodatabase.jena_sys_stmt 存储了本体的元数据信息
可以通过命令行查看或者使用MySQL GUI客户端工具查看。建议使用后者。
链接:以下是关于语义网和本体论的经典论文【英文】
http://sxzx.360doc.com/content/080416/11/23378_1193793.html
分享到:
2009-11-17 13:57
浏览 3455
评论