第三步 用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)。
 
 

第三步 用Jena自定义完成数据库到RDF的映射的更多相关文章

  1. Linux学习第三步(Centos7安装mysql5.7数据库)

    版本:mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 前言:在linux下安装mysql不如windows下面那么简单,但是也不是很难.本文向大家讲解了如何在Cent ...

  2. 10分钟系列:NetCore3.1+EFCore三步快速完成数据库交互

    前言 做程序开发,不管是什么语言什么数据库,其中的ORM(对象关系映射)是必不可少的,但是不管选择哪一种ORM,都需要了解其中的运行机制,配置帮助类等等. 所以很多ORM都开始进行升级封装,我们只需要 ...

  3. Spring Boot Starter自定义实现三步曲

    实现自定义的spring boot starter,只需要三步: 1.一个Bean 2.一个自动配置类 3.一个META-INF/spring.factories配置文件 下面用代码演示这三步. 项目 ...

  4. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

  5. 轻松三步教你配置Oracle—windows环境

    最近笔者在学习Oracle的时候,虽然度过了大家所说的安装难题,但是又遇到了一系列的问题,经过多方求教才知道原来是自己仅仅是安装了Oracle,却没有在环境变量中进行相应的配置.笔者也像大家遇到问题时 ...

  6. [转]Membership三步曲之入门篇 - Membership基础示例

    本文转自:http://www.cnblogs.com/jesse2013/p/membership.html Membership三步曲之入门篇 - Membership基础示例   Members ...

  7. 单点登录CAS使用记(三):实现自定义验证用户登录

    问题: CAS自带的用户验证逻辑太过简单,如何像正常网站一样,通过验证DB中的用户数据,来验证用户以及密码的合法性呢? 方案1:CAS默认的JDBC扩展方案: CAS自带了两种简单的通过JDBC方式验 ...

  8. ASP.NET 安全系列 Membership三步曲之入门篇 - Jesse Liu

    Membership 三步曲 ASP.NET 安全系列 Membership三步曲之入门篇 ASP.NET 安全系列 Membership三步曲之进阶篇 ASP.NET 安全系列 Membership ...

  9. mongodb安装和配置三步走

    最近在重新学习node,所以和同事一起搞了个模仿新浪微博的项目,项目刚开始,所以其他的东西就暂时先不提.这里介绍下mongodb的安装.直接搜索可以看到很多介绍,但是我第一次是失败了,不过看了好几个还 ...

随机推荐

  1. 使用.net 的Chart控件绘制曲线图

    在进行软件开发过程中我们可能会碰到需要生成图表的情况,在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你 ...

  2. java Arrays.asList()和Collections.addAll()

    java中的方法Arrays.asList(arg1,arg2,arg3...),经常用在将多个元素或数组转化为List中的元素,但是在使用的时候,应该注意: arg1决定返回list的元素类型(即第 ...

  3. GC的代机制

    1.代为CLR垃圾回收器采用的一种机制,基于以下几点假设:对象越新,生存期越短:对象越老,生存期越长: 2.托管堆仅支持3代(GC.MaxGeneration,第0代.第1代.第2代),CLR初始化会 ...

  4. Spring 数据源配置一:单一数据源

    最近遇到一个项目,需要访问都多个数据源,并且数据库是不同厂商(mysql,  sqlserver). 所以对此做了一些研究,这里咱们采用渐进的方式来展开,先谈谈单一数据源配置.(稍后有时间会陆续补充其 ...

  5. 《深入理解javascript原型和闭包系列》 知识点整理

    深入理解javascript原型和闭包系列 对原型和闭包等相关知识的讲解,由浅入深,通俗易懂,每个字都值得细细研究. 一.一切都是对象 1. typeof操作符输出6种类型:string boolea ...

  6. 优化函数式编程:向 PHP 移植 Clojure 函数

    许多通用程序设计语言试图兼容大多数编程范式,PHP 就属于其中之一.不论你想要成熟的面向对象的程序设计,还是程序式或函数式编程,PHP 都可以做到.但我们不禁要问,PHP 擅长函数式编程吗?本文系国内 ...

  7. ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

  8. Ubuntu 14.04数据库服务器--mysql的安装和配置

    mysql是Oracle公司的一种开放源代码的关系型数据库管理系统,被广泛应用于各中小网站,是一种跨平台的数据库管理系统,现在介绍一下如何在Ubuntu 14.04上安装和配置mysql 1. 更新源 ...

  9. UVA 10269 Adventure of Super Mario

    看了这里 http://blog.csdn.net/acm_cxlove/article/details/8679230的分析之后自己又按照自己的模板写了一遍,算是对spfa又加深了一步认识(以前真是 ...

  10. 批量生成卡号密码的php程序

    <?php header('Content-Type:text/html; charset=utf-8'); function MakeCard() { set_time_limit(0); / ...