第一步 配置D2RQ環境 Getting Started
2013年10月15日 15:16:55
老套路,還是先配置環境,沒查到什么中文資料,寫在這里,供大家參考。有需要交流的可以加QQ: 1q7q1q5q3q6q0q1q8(去掉中間的q)。
Quick start #
准備:
- 配置java1.5及以上的JDK。
- 可用的數據庫,Oracle, SQL Server, PostgreSQL, MySQL or HSQLDB,都可以。
- 可選)J2EE servlet容器,D2R即可以作為一個獨立的Web服務器運行,也可以在其他現有的servlet容器內運行。
需要做的:
- 下載D2RQ包,放到合適的位置。
- 下載相應的JDBC,把JAR文件放在D2R Server的/lib目錄下。Sun公司提供了一系列JDBC的下載,注意驅動的名字(e.g. org.postgresql.Driver for PostgreSQL or oracle.jdbc.driver.OracleDriver for Oracle),以及JDBC的URL(e.g. jdbc:mysql://servername/database for MySQL),這些在驅動的文件中可以找到。D2R Server中已經包括了MySQL和PostgreSQL。
- 使用“創建映射”這個工具,創建一個映射文件,在D2R Server目錄下運行:
其中,mapping.ttl是新建的映射文件,-d可以為MySQL跳過。generate-mapping -o mapping.ttl -d driver.class.name-u db-user -p db-password jdbc:url:...我運行了以下命令:./generate-mapping -o aniuer.ttl -d com.mysql.jdbc.Driver -u root -p asdfasdf jdbc:mysql://localhost/radar結果提示有警告,即我的表中沒有設定主鍵。 - 啟動D2R Server。
d2r-server mapping.ttl 我運行了以下命令:d2r-server aniuer.ttl - 測試服務器,用瀏覽器打開 http://localhost:2020/。出現了預期的界面。
可以瀏覽數據庫的內容(真的可以),或者使用SPARQL瀏覽器執行查詢,並可以通過幾種格式來顯示結果。 - 在命令行下使用d2r-query工具執行SPARQL查詢
d2r-query mapping.ttl "SELECT * { ?s ?p ?o } LIMIT 10"
結果為:我運行了以下命令:./d2r-query aniuer.ttl "SELECT * { ?s ?p ?o } LIMIT 10"
或者從文件中加載查詢信息,假設這里有一個query.sqarql的文件(這個先不測試了)
d2r-query mapping.ttl @query.sparql - 運行dump-rdf工具(rdf轉存工具)創建rdf的轉存。
dump-rdf mapping.ttl -o dump.nt 我運行了以下命令:(加上-o的話會報錯:Too many arguments)./dump-rdf aniuer.ttl
Customizing the D2RQ mapping #
當你能夠正常運行之后,下一步通常就是通過自定義D2RQ映射,來改進RDF的輸出。
D2RQ平台使用
D2RQ Mapping Language把關系數據庫的內容映射為RDF數據。一個D2RQ映射指定資源如何被識別和使用哪些屬性來描述資源。
generate-mapping腳本從數據庫的表結構中自動創建D2RQ映射。這個工具為每一個數據庫創建一個新的RDF詞匯表,把表名作為類名,把列名作為屬性名。如果你自定義映射並把自動生成的術語更換為更廣為RDF詞匯表接受的術語,那么語義網的客戶端應用就會更好地理解你的數據。
映射文件可以被任何文本編輯器進行編輯,
D2RQ language specification中描述了它的語法。
D2R Server會自動檢測映射文件的改變,當你點擊瀏覽器的刷新按鈕時,就會重新立即加載。
Note: HTML和RDF瀏覽器接口僅適用於相對URI的模式,並且不包含#字符。例如,一個URI模式,正如
entries/@@mytable.id@@是可瀏覽的,但
http://example.com/entries#@@mytable.id@@就不行。映射生成器只生成可瀏覽的模式。不可瀏覽的模型只能在SPARQL接口和RDF轉換中使用。
