微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在ruby-on-rails应用程序的顶部设置带有dBpedia的neo4j?

我试图在轨道上使用ruby上的neo4j的dBpedia.

假设我已经安装了neo4j并下载了dBpedia datasets之一.

如何将dbpedia数据集导入neo4j?

解决方法

将dbpedia加载到Neo4j中的最简单的方法是使用 dbpedia4neo库.这是一个Java库,但您不需要知道任何Java,因为您需要做的只是运行可执行文件.

您可以在JRuby中重写此内容,但是常规的Ruby不能工作,因为它依赖于Blueprints,这是一个没有Ruby等效的Java库.

这是提供加载过程的两个关键文件.

> https://github.com/oleiade/dbpedia4neo/blob/master/src/main/java/org/acaro/dbpedia4neo/inserter/DBpediaLoader.java
> https://github.com/oleiade/dbpedia4neo/blob/master/src/main/java/org/acaro/dbpedia4neo/inserter/TripleHandler.java

这是description of what’s involved.

Blueprints将RDF数据转换为图形表示.了解发生什么事情,请参阅Blueprints Sail Ouplementation

下载dbpedia转储文件后,您应该可以构建dbpedia4neo Java库并运行它,而无需修改Java代码.

首先,克隆oleiade的GitHub存储库的fork并更改为dbpedia4neo目录:

$git clone https://github.com/oleiade/dbpedia4neo.git
$cd dbpedia4neo

(Oleiade的分支包含一个小的Blueprints更新,可以执行sail.initialize();请参阅https://groups.google.com/d/msg/gremlin-users/lfpNcOwZ49Y/WI91ae-UzKQJ).

在构建它之前,您将需要更新pom.xml以使用更多当前的蓝图版本和当前的Blueprints存储库(Sonatype).

要做到这一点,打开pom.xml和依赖关系部分的顶部,将所有的TinkerPop Blueprints版本从0.6更改为0.9.

当您在文件中时,将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

这将下载并安装所有依赖项,并在目标目录中创建一个jar文件.

要加载dbpedia,请使用maven运行可执行文件

$mvn exec:java \
  -Dexec.mainClass=org.acaro.dbpedia4neo.inserter.DBpediaLoader \
  -Dexec.args="/path/to/dbpedia-dump.nt"

dbpedia转储很大,所以这需要一段时间才能加载.

现在已经加载了数据,您可以通过以下两种方式之一访问图形:

>直接使用JRuby和Blueprints-Neo4j API.
>使用常规Ruby和Rexster REST服务器,它类似于Neo4j服务器,除了它支持多个图形数据库.

有关如何创建Rexster客户端的示例,请参阅灯泡,我写的支持Neo4j Server和Rexster的Python框架.

> http://bulbflow.com/
> https://github.com/espeed/bulbs
> https://github.com/espeed/bulbs/tree/master/bulbs/rexster

所有这一切的另一种方法是在Ruby中处理dbpedia RDF转储文件,将节点和关系写入CSV文件,并使用Neo4j batch importer加载它.但是这将需要您将RDF数据手动转换为Neo4j关系.

原文地址:https://www.jb51.cc/ruby/265996.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐