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


相關文章
相關標籤/搜索