neo4j
オンタップruby on rails
とdBpedia
を使用しようとしています。ruby-on-railsアプリケーションのdBpedia ontopでneo4jを設定するには?
neo4jをインストールし、dBpedia datasetsのいずれかをダウンロードしたとします。
dbpedia
データセットをneo4j
にインポートするにはどうすればよいですか?
neo4j
オンタップruby on rails
とdBpedia
を使用しようとしています。ruby-on-railsアプリケーションのdBpedia ontopでneo4jを設定するには?
neo4jをインストールし、dBpedia datasetsのいずれかをダウンロードしたとします。
dbpedia
データセットをneo4j
にインポートするにはどうすればよいですか?
dbpediaをNeo4jにロードする最も簡単な方法は、dbpedia4neoライブラリを使用することです。これはJavaライブラリですが、実行可能ファイルを実行するだけでJavaを知る必要はありません。
JRubyでこれを書き換えることはできますが、Rubyに相当するJavaライブラリであるBlueprintsに依存しているため、通常のRubyは動作しません。
ロード手順を示す2つのキーファイルがあります。ここで
はdescription of what's involvedです。
BlueprintsはRDFデータをグラフ表現に変換しています。どのようなことが起こっているのかを理解するには、Blueprints Sail Ouplementationを参照してください。
dbpediaダンプファイルをダウンロードした後、dbpedia4neo Javaライブラリをビルドし、Javaコードを変更せずに実行できるはずです。(Oleiadeのフォークはsail.initialize();
がhttps://groups.google.com/d/msg/gremlin-users/lfpNcOwZ49Y/WI91ae-UzKQJを参照してくださいないマイナーな青写真の更新を含みます)
$ git clone https://github.com/oleiade/dbpedia4neo.git
$ cd dbpedia4neo
を:
まず、GitHubのリポジトリのoleiadeのフォークのクローンを作成し、dbpedia4neo
ディレクトリに変更します。
ビルドする前に、現在のBlueprintsバージョンと現在のBlueprintsリポジトリ(Sonatype)を使用するようにpom.xml
を更新する必要があります。
この、オープンpom.xml
を行うと、dependencies
部分の上部に、0.9
に0.6
からTinkerPop青写真のすべてのバージョンを変更します。
あなたがファイルにありますが、ファイルの末尾にrepositories
セクションにSonatypeリポジトリを追加します。
<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ファイルが作成されます。実行可能ファイルを実行するために、使用MavenをDBpediaのロードするに
:
$ mvn exec:java \
-Dexec.mainClass=org.acaro.dbpedia4neo.inserter.DBpediaLoader \
-Dexec.args="/path/to/dbpedia-dump.nt"
DBpediaのダンプので、これはロードに時間がかかるだろう大きいです。
今すぐデータがロードされていることを、次のいずれかの方法で、グラフにアクセスすることができます直接
Rexsterクライアントを作成する方法の例は、Neo4j ServerとRexsterの両方をサポートするPythonフレームワークのBulbsを参照してください。
これはDBpediaのRDFは、CSVファイルへのノードとの関係を書き出し、Rubyでファイルをダンプ処理することであろうすべての別のアプローチ、およびNeo4j batch importerを使用してロードしてください。しかし、これでは、RDFデータを手動でNeo4j関係に変換する必要があります。
私はそれを見る方法には2つの選択肢があります。
あなたは正確にthis one、またはこのアプローチ(またはそれのような別の)背後にあるフォークthe repoのようなアプローチを実装しようとし、あなたの目的に合うようにそれを修正/拡張することができどちらか。
最初からやり直してください。
neo4jの挿入メソッドに適した形式でdbpediaデータセットを解析します。データを処理するために存在するopenRDFのようなライブラリがあります。あなたのニーズに最適なリサーチに時間を費やす予定がない限り、上記のリンク先の既存のソリューションはすでにこのライブラリを実装しています。
次に、フォーマットされたデータをneo4j dbに挿入します。これを達成する1つの方法は、neo4jのBatch Insertionコンポーネントです。このファシリティは、初期のインポートを意図しています(スレッドセーフではなく、トランザクションではない、つまりACIDに準拠していないため)。したがって、これは実際にあなたのユースケースに依存します。
私の2セントは、この機能があなたが開発しているものの中核でない限り、既にそこにあるものを使用しているということです。それはビルドするのに苦痛となるものであり、効率的に動作するものを構築するにはさらに苦痛です。
もっと具体的な質問がありますか? – anxiety
新しいneo4j.rbドキュメントの別のリンク:https://github.com/andreasronge/neo4j/wiki –