簡體   English   中英

如何使用dBpedia在ruby-on-rails應用程序上設置neo4j?

[英]How to setup neo4j with dBpedia ontop of ruby-on-rails application?

我試圖使用dBpedianeo4j ruby on railsruby on rails ontop。

假設我已經安裝了neo4j並下載了一個dBpedia數據集

如何將dbpedia數據集導入neo4j

將dbpedia加載到Neo4j的最簡單方法是使用dbpedia4neo庫。 這是一個Java庫,但您不需要知道任何Java,因為您需要做的就是運行可執行文件。

如果你願意的話,你可以在JRuby中重寫它,但是常規的Ruby不能工作,因為它依賴於Blueprints ,一個沒有Ruby等價物的Java庫。

以下是兩個提供加載過程的密鑰文件。

  1. https://github.com/oleiade/dbpedia4neo/blob/master/src/main/java/org/acaro/dbpedia4neo/inserter/DBpediaLoader.java
  2. https://github.com/oleiade/dbpedia4neo/blob/master/src/main/java/org/acaro/dbpedia4neo/inserter/TripleHandler.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轉儲很大,因此加載需要一段時間。

現在加載了數據,您可以通過以下兩種方式之一訪問圖表:

  1. 直接使用JRuby和Blueprints-Neo4j API。
  2. 使用常規Ruby和Rexster REST服務器,它與Neo4j Server類似,只是它支持多個圖形數據庫。

有關如何創建Rexster客戶端的示例,請參閱Bulbs,我編寫的支持Neo4j Server和Rexster的Python框架。

所有這些的另一種方法是在Ruby中處理dbpedia RDF轉儲文件,寫出節點和與CSV文件的關系,並使用Neo4j批量導入器加載它。 但這需要您手動將RDF數據轉換為Neo4j關系。

我看到它的方式,你有兩個選擇。

  1. 您可以嘗試完全實現類似這樣的方法,或者在這種方法(或其他類似方法)后面拆分repo並擴展/修復它以適合您的目的。

  2. 從頭開始自己動手。 這是一般方法:

將dbpedia數據集解析為適合neo4j插入方法的格式。 存在像openRDF這樣的庫來處理數據。 除非您打算花時間進行最適合您需求的研究,否則我上面鏈接的現有解決方案已經實現了這個庫。

然后將格式化的數據插入neo4j數據庫。 實現此目的的一種方法是通過neo4j的Batch Insertion組件。 請注意,這個工具,如他們所說,用於初始導入(因為它不是線程安全的,並且是非事務性的,換句話說,不符合ACID)。 所以這真的取決於你的用例。

我的2美分是你使用的東西,除非這個功能是你正在開發的核心。 因為它構建起來會很痛苦,而且構建高效運行的東西更是痛苦。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM