[英]How to setup neo4j with dBpedia ontop of ruby-on-rails application?
我試圖使用dBpedia
與neo4j
ruby on rails
的ruby on rails
ontop。
假設我已經安裝了neo4j並下載了一個dBpedia數據集 。
如何將dbpedia
數據集導入neo4j
?
將dbpedia加載到Neo4j的最簡單方法是使用dbpedia4neo庫。 這是一個Java庫,但您不需要知道任何Java,因為您需要做的就是運行可執行文件。
如果你願意的話,你可以在JRuby中重寫它,但是常規的Ruby不能工作,因為它依賴於Blueprints ,一個沒有Ruby等價物的Java庫。
以下是兩個提供加載過程的密鑰文件。
以下是對所涉及內容的描述 。
藍圖正在將RDF數據轉換為圖形表示。 要了解幕后發生的事情,請參閱Blueprints Sail Ouplementation :
下載dbpedia轉儲文件后,您應該能夠構建dbpedia4neo Java庫並在不修改Java代碼的情況下運行它。
首先,克隆GitHub存儲庫的oleiade的fork並切換到dbpedia4neo
目錄:
$ git clone https://github.com/oleiade/dbpedia4neo.git
$ cd dbpedia4neo
(Oleiade的分支包含一個小型藍圖更新,可以執行sail.initialize();
請參閱https://groups.google.com/d/msg/gremlin-users/lfpNcOwZ49Y/WI91ae-UzKQJ )。
在構建之前,您需要更新pom.xml
以使用更多當前的Blueprints版本和當前的Blueprints存儲庫(Sonatype)。
要執行此操作,請打開pom.xml
然后在dependencies
部分的頂部,將所有TinkerPop Blueprints版本從0.6
更改為0.9
。
當您在文件中時,將Sonatype存儲庫添加到文件末尾的repositories
部分:
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/releases</url>
</repository>
保存文件,然后使用maven構建它:
$ mvn clean install
這將為您下載並安裝所有依賴項,並在target
目錄中創建一個jar文件。
要加載dbpedia,請使用maven運行可執行文件:
$ mvn exec:java \
-Dexec.mainClass=org.acaro.dbpedia4neo.inserter.DBpediaLoader \
-Dexec.args="/path/to/dbpedia-dump.nt"
dbpedia轉儲很大,因此加載需要一段時間。
現在加載了數據,您可以通過以下兩種方式之一訪問圖表:
有關如何創建Rexster客戶端的示例,請參閱Bulbs,我編寫的支持Neo4j Server和Rexster的Python框架。
所有這些的另一種方法是在Ruby中處理dbpedia RDF轉儲文件,寫出節點和與CSV文件的關系,並使用Neo4j批量導入器加載它。 但這需要您手動將RDF數據轉換為Neo4j關系。
我看到它的方式,你有兩個選擇。
將dbpedia數據集解析為適合neo4j插入方法的格式。 存在像openRDF這樣的庫來處理數據。 除非您打算花時間進行最適合您需求的研究,否則我上面鏈接的現有解決方案已經實現了這個庫。
然后將格式化的數據插入neo4j數據庫。 實現此目的的一種方法是通過neo4j的Batch Insertion組件。 請注意,這個工具,如他們所說,用於初始導入(因為它不是線程安全的,並且是非事務性的,換句話說,不符合ACID)。 所以這真的取決於你的用例。
我的2美分是你使用的東西,除非這個功能是你正在開發的核心。 因為它構建起來會很痛苦,而且構建高效運行的東西更是痛苦。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.