以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  用MySQL存储本体  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=27561)


--  作者:Lee
--  发布时间:2/21/2006 2:32:00 PM

--  用MySQL存储本体

    首先要安装好MySQL服务器,然后建立一个数据库,如OntologyDB。再建立一个用户如OntologyDBUser,并给予其对数据库OntologyDB的所有操作权限。然后下载MySQL的JDBC驱动程序mysql-connector-java-3.1.12.zip,解压后将其中的mysql-connector-java-3.1.12-bin.jar改名为Driver.jar并将其COPY到Protege 3.1的安装目录中。
    进入Protege,打开本体工程文件,然后选择文件菜单中的Convert Project to Format,选择在弹出的对话框中选择OWL Database。然后在弹出的对话框中按如下内容填写:
Project ---- 项目名称,自己定;
JDBC Driver Class Name ---- com.mysql.jdbc.Driver
JDBC URL ---- jdbc:mysql://localhost/OntologyDB
Table ---- OntologyDB数据库中用于存储本体的表,如OntologyTable
Username ---- OntologyDBUser
Password ---- OntologyDBUser
OK以后本体就存储到MySQL中了,可以打开Query Browser看一下。表中每个Column均为Protege预定义,其含义是以表格的形式说明的,这里贴不进来,就请访问我的Blog吧。

http://blogger.org.cn/blog/more.asp?name=Lee&id=11851



--  作者:kkk305145298
--  发布时间:2/21/2006 3:55:00 PM

--  
那如果建立的本体是中文的,按上述方法本体存储到MySQL中,原来protege中的中文都变成问号?不知道是怎么回事?
--  作者:badguy_tj
--  发布时间:4/20/2006 9:00:00 PM

--  
我也遇到了mysql中文乱码的问题
哪位高手帮帮忙
--  作者:icebuddy
--  发布时间:4/21/2006 8:10:00 AM

--  
我也是,高手帮助一下
--  作者:gwj_77_77_77
--  发布时间:4/25/2006 10:29:00 AM

--  
同样问题,哪位可以Help us!!
--  作者:jerry408
--  发布时间:5/7/2006 10:27:00 PM

--  
同问
--  作者:icebuddy
--  发布时间:5/8/2006 5:05:00 PM

--  
有什么解决的办法吗?另外我转化的时候,class 和 property 插件上面都变红色了,但是系统也没有提示错误,不知道是不是转化正确?
还有一点不清楚的是,我做好的本体保存在owl文件中,我保存在mysql中,我再打开这个工程的时候,汉字全部变成了?号,这些问号是从数据库中读出来的吗?
--  作者:river_hh
--  发布时间:5/8/2006 5:15:00 PM

--  
我不是高手,但遇到过同样的问题。我是这么做的(我用的是Jena工具包)
对于中文,例如概念
String oldString=“学生”;
String newString=new String(oldString.getBytes("UTF-8"));

然后将newString写入文件(或存入数据库)。用UltraEdit打开文件看到是乱码(因为编码是UTF-8,在Protege中打开该文件时中文的显示是正确的,因为Protege会将UTF-8转换为操作系统默认的编码格式显示)。可以在UltraEdit中进行编码转换(UTF-8到Unicode)后显示的是正确的中文,但是该转换不能回复,即再进行Unicode到UTF-8转换后在Protege中打开中文后,中文的显示不正确。

好像我的回答有点文不对题,hehe,抱歉,开始没读清楚。


[此贴子已经被作者于2006-5-8 17:54:56编辑过]

--  作者:river_hh
--  发布时间:5/8/2006 5:49:00 PM

--  
以下是引用kkk305145298在2006-2-21 15:55:00的发言:
那如果建立的本体是中文的,按上述方法本体存储到MySQL中,原来protege中的中文都变成问号?不知道是怎么回事?

出现乱码是正常的,因为Protege在写文件或存数据库时采用的是“UTF-8”的编码方式


--  作者:icebuddy
--  发布时间:5/9/2006 8:25:00 AM

--  
继续关注!
--  作者:huanwang00
--  发布时间:5/16/2006 2:39:00 PM

--  
请问在oracle中也可以这样实现吗?
--  作者:jpz6311whu
--  发布时间:5/16/2006 4:12:00 PM

--  
Connecting Your Jena Program to Oracle
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.

Important:
Edit the source file com.hp.hpl.jena.db.impl.Driver_Oracle.java.
Uncomment the Oracle import commands at the top of the file:
import oracle.jdbc.OracleResultSet;
import oracle.sql.BLOB;
Comment-out the stubbed-out interfaces named BLOB and OracleResultSet.
Load the JDBC driver. This enables the Jena program to communicate with the database instance.
Create a database connection. This creates a Java object for a database connection.
Create or open a model on the connection. This connects to the database and creates an empty model or opens a previously created model.
Steps 2-4 are illustrated in the following Java code.

// Load the Driver
String className = "oracle.jdbc.driver.DriverOracle" // path of driver class
Class.forName (className); // load driver
String DB_URL = "jdbc:oracle:oci:@"; // URL of database server
String DB_USER = "scott"; // database user id
String DB_PASSWD = "tiger"; // database password
String DB = "Oracle"; // database type
// Create database connection
IDBConnection conn = new DBConnection ( URL, DB_USER, DB_PASSWD, DB );
// Create a model in the database
ModelMaker maker = ModelFactory.createModelRDBMaker(conn);
ModelRDB m = (ModelRDB) maker.createModel ();
< your Jena code to work with the model goes here >
// Remove the model. NOTE: this deletes the model from the database.
// Subsequent attempts to open this model will fail.
m.remove();// NOTE: remove deletes the model from the database
// Close the database connection
conn.close();
// Alternative to creating an unnamed model ...
// Create a named model
ModelRDB m = maker.createModel("myName");
... later, or in another Jena application ...
// Open a named model.
ModelRDB m = maker.openModel("myName");


--  作者:huanwang00
--  发布时间:5/16/2006 8:42:00 PM

--  
谢谢
--  作者:lo
--  发布时间:7/21/2006 10:05:00 AM

--  
我的疑惑是:这些字段是什么意思 ?
--  作者:jsarrn
--  发布时间:7/21/2006 10:01:00 PM

--  
我也很疑惑,难道要一条一条往里插入吗?
--  作者:penelope
--  发布时间:7/22/2006 10:49:00 AM

--  
关注。。

--  作者:mickle
--  发布时间:7/30/2006 12:06:00 PM

--  
thanks very much, i've learnd vey much
--  作者:hothhu
--  发布时间:8/2/2006 12:45:00 AM

--  
看来许多人对数据库编码和我们日常看到的GBK编码不怎么知道啊
一般遇到中文时,存取数据库需要转码的。
--  作者:fly036
--  发布时间:8/2/2006 9:40:00 AM

--  
关注
--  作者:yayatu
--  发布时间:8/2/2006 10:26:00 AM

--  

  请问在哪里打开Query Browser啊?
  谢谢


--  作者:fangel2000
--  发布时间:8/3/2006 3:11:00 PM

--  
导入到数据库中的这些字段到底有什么意思呢,谁能解释一下啊?我看了protege的官方网.还是没有弄明白啊
--  作者:flybetter
--  发布时间:8/3/2006 8:09:00 PM

--  
我也遇到了 乱码的问题
--  作者:jsarrn
--  发布时间:8/4/2006 10:25:00 PM

--  
也遇到了
--  作者:sophia-rener
--  发布时间:8/7/2006 1:35:00 PM

--  
我按照你说的一步一步做,但是好象不行啊.连接默认的数据库可以。请大侠帮我看一下啊
先谢了
--  作者:jp2107
--  发布时间:8/13/2006 10:44:00 PM

--  
奇怪 , 我的也是一步一步来的, 但是老是提示the jdbc class is not on the classpath

具体的操作步骤如下:
1、下载了mysql-connector-java-3.1.13.zip
2、解压缩过程中会报错,但是解压的文件夹中还是生成了mysql-connector-java-3.1.13-bin.jar
3、将mysql-connector-java-3.1.13-bin.jar复制到protege 3.1文件夹下,并改名成Driver.jar
4、重新启动protege.exe,并选中了test.pprj
5、在owl database的对话框中添加了相关配置
6、保存后报错:the jdbc class is not on the classpath


--  作者:jp2107
--  发布时间:8/17/2006 9:42:00 AM

--  
没有人回帖吗 , 呵呵 , 是不是关于jdbc的问题 , 一般都说是3.12 , 我的版本是3.13版本
谁有3.12版本的没 , 有的话麻烦给我传一份 , 谢谢
电子邮箱:jp102107@163.com
--  作者:skinner
--  发布时间:10/18/2006 2:09:00 AM

--  
乱码问题还是没有解决呀,
--  作者:jerrycrystal
--  发布时间:10/19/2006 8:08:00 AM

--  
呵呵,等待这个乱码问题解决。
--  作者:nexoft
--  发布时间:10/19/2006 10:13:00 PM

--  
1.下载protege 3.2 beta
2.将本体的encoding设置为gb2312
3.将mysql的内码设置为gb2312
4.讲本体转存到mysql
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
171.875ms