第三步 用Jena自定义完成数据库到RDF的映射

第三步 用Jena自定义完成数据库到RDF的映射
2013年10月17日 8:53:27
这一步用Jena编程,终于能作点有技术含量的事情了。这个工做计划本周内完成,下周一好给老师一个交待。
目标:把现有数据库(mysql)中的数据,自定义地映射成为RDF格式。
 
1. 先写一小段代码,解决java执行脚本的问题
        String cmd = "sh /opt/D2RServer/d2rq-0.8.1/project/hello_java_shell";
        Runtime run = Runtime.getRuntime();
        String result = "";
        try {
            Process p = run.exec(cmd);
            BufferedInputStream in = new BufferedInputStream(p.getInputStream());
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String lineStr;
            while ((lineStr = br.readLine()) != null) {
                result += lineStr;
            }
            br.close();
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(result);
 
2. 把上面代码中的cmd改成
        String cmd = "/opt/D2RServer/d2rq-0.8.1/generate-mapping -u root -p asdfasdf -d com.mysql.jdbc.Driver -o /opt/D2RServer/d2rq-0.8.1/aniuer.n3 jdbc:mysql://localhost/radar";
即执行了generate-mapping命令,把数据库的内容映射为.n3的文件。
2013年10月19日 16:17:15
通过两天的纠结,困于n3文件没法存储到 mysql中,缘由是n3文件就是一个文本文件,不符合XML语法,因此一直没有转机。后来才发现D2RQ还有个工具叫dump,仍是这个比较猛,可以把数据映射成为正经的rdf文件。因此上面的代码改成
        String cmd = "/opt/D2RServer/d2rq-0.8.1/dump-rdf -u root -p asdfasdf -f RDF/XML-ABBREV -o /opt/D2RServer/d2rq-0.8.1/project/aniuer2.rdf jdbc:mysql://localhost:3306/Weapon";
 
3. 将生成的rdf文件存储到mysql中
目前的问题是,我能够生成rdf文件(虽然这个文件还不完善,之后在映射的阶段调整),但这个文件生成以后,
(1)我没法实例化这些数据到数据库中
(2)我没法经过这个视图查询数据。
 
2013年10月20日 7:51:42
拟采用的办法:
    一是:把jena的版本回归到2.5以前的版本,其中会有com.hp.jena.db.*的类。
    二是:采用新jena版本中的sdb包,这个包到底是不是上面的替代,还不知道。
 
哥痛定思痛。。。仍是用老版本的jena吧,先入上门,之后再改进吧,不纠结这个问题了。
 
2013年10月20日 10:10:07
采用了2.6以后,网上的程序能够运行了。目前的问题是,没有修改映射文件,基础URI没有设置,致使在映射到数据库的过程当中,报出这个错。
如今eclipse里面是两个jena的工程,一个是2.6.4,一个是d2rq中的2.7.0。同时进行,用d2rq作映射,用jena2.6来作mysql的存储。
a. 把数据库的数据映射成ttl文件。
b. 把ttl文件dump成为指定的rdf文件。
c. 把rdf文件存储到mysql中。
 
目前有点问题,报错说我没有设置主键,我从新选择了数据库MyDataBase,只有一个表Connection。
输入命令alter table Connection ADD CONSTRAINT PK_Connection PRIMARY KEY(ID),增长了主键。
 
现编程进行两具文件的映射,发如今dump过程当中,命令行能够实现,而eclipse中不能实现,仍是权限的问题。这个问题的解决居然是在终端运行eclipse便可,姑且这样吧。
这样仍是没解决,先不解决了。在终端运行吧。
 
2013年10月20日 22:30:57
基本上映射成功了,文件仍是读不太懂。看来dump仍是要学习一下的。
 
2013年10月21日 20:42:54
发现dump后的文件并不标准,我仍是应该学习一下,d2rq的dump的具体用法。
 
这一步从格式上讲基本完成,下一步研究定制的映射。
 
有须要交流的能够加QQ: 1q7q1q5q3q6q0q1q8(去掉中间的q)。
 
 


相关文章
相关标签/搜索