如何设置的Neo4j与DBpedia的ontop的的Ruby-on-Rails应用程序的?(How

2019-07-31 07:06发布

我试图使用dBpedianeo4j ontop的的ruby on rails

假设我已经安装的Neo4j并下载了一个DBpedia中的数据集 。

如何导入dbpedia数据集中到neo4j

Answer 1:

DBpedia中加载到Neo4j的最简单的方法是使用dbpedia4neo库。 这是一个Java库,但因为所有你需要做的就是运行可执行文件,你不需要知道任何Java。

如果你愿意,你可以在JRuby中重写这一点,但普通的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数据翻译成图表示。 要了解什么是引擎盖下怎么回事,看到蓝图赛欧Ouplementation :

下载完DBpedia的转储文件,你应该能够建立dbpedia4neo Java库和无需修改Java代码运行。

首先,克隆GitHub的库并切换到的oleiade的叉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使用更多的电流蓝图版本和当前蓝图库(Sonatype的)。

要做到这一点,开放pom.xml ,并在顶部dependencies部分,所有的TinkerPop有关蓝图版本的变化,从0.60.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

这将下载并安装所有的依赖你,并创建在一个jar文件target目录。

要加载DBpedia中,使用Maven运行可执行文件:

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

该DBpedia中转储较大,因此这将需要一段时间来加载。

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

  1. 使用JRuby和直接的蓝图,Neo4j的API。
  2. 使用普通的Ruby和Rexster REST服务器,这是类似的Neo4j服务器不同的是它支持多种图形数据库。

有关如何创建一个Rexster客户端,看灯泡的例子,一个Python框架我写了支持Neo4j的服务器和Rexster。

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

这一切的另一种方法是将处理Ruby中DBpedia中RDF转储文件,写出来的节点和关系到CSV文件,并使用Neo4j的批量导入的加载它。 但是,这需要您手动RDF数据转换成Neo4j的关系。



Answer 2:

我看到它的方式,你有两个选择。

  1. 你既可以尝试实行类似的方法这一个准确,或叉子回购这种方法背后(或其他类似的话),并延长/修复它适合你的目的。

  2. 自己动手,从头开始。 这里的一般方法:

解析您的DBpedia的数据集中到适合的Neo4j的插入方法的格式。 有迹象表明存在类似的库openRDF存在来处理数据。 除非你打算花时间来研究这将满足您的需求最好的,现有的解决方案我上面链接已经实现了这个库。

然后格式化的数据插入到你的Neo4j分贝。 做到这一点的方法之一是通过的Neo4j的批量插入组件。 注意这个设施,因为他们的状态,适用于初次进口的(因为它不是线程安全的,非事务性的,换句话说,ACID兼容不)。 因此,这实际上取决于你的使用情况。

我的2美分的是,你使用的东西已经在那里,除非这功能是你开发什么样的核心。 由于它的东西,将是建立一个痛苦,更痛苦,以建立一个高效运行的东西。



文章来源: How to setup neo4j with dBpedia ontop of ruby-on-rails application?