我试图使用dBpedia
与neo4j
ontop的的ruby on rails
。
假设我已经安装的Neo4j并下载了一个DBpedia中的数据集 。
如何导入dbpedia
数据集中到neo4j
?
我试图使用dBpedia
与neo4j
ontop的的ruby on rails
。
假设我已经安装的Neo4j并下载了一个DBpedia中的数据集 。
如何导入dbpedia
数据集中到neo4j
?
DBpedia中加载到Neo4j的最简单的方法是使用dbpedia4neo库。 这是一个Java库,但因为所有你需要做的就是运行可执行文件,你不需要知道任何Java。
如果你愿意,你可以在JRuby中重写这一点,但普通的Ruby不会工作,因为它依赖于蓝图 ,一个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.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
这将下载并安装所有的依赖你,并创建在一个jar文件target
目录。
要加载DBpedia中,使用Maven运行可执行文件:
$ mvn exec:java \
-Dexec.mainClass=org.acaro.dbpedia4neo.inserter.DBpediaLoader \
-Dexec.args="/path/to/dbpedia-dump.nt"
该DBpedia中转储较大,因此这将需要一段时间来加载。
现在,数据加载,您可以通过以下两种方式之一访问图:
有关如何创建一个Rexster客户端,看灯泡的例子,一个Python框架我写了支持Neo4j的服务器和Rexster。
这一切的另一种方法是将处理Ruby中DBpedia中RDF转储文件,写出来的节点和关系到CSV文件,并使用Neo4j的批量导入的加载它。 但是,这需要您手动RDF数据转换成Neo4j的关系。
我看到它的方式,你有两个选择。
你既可以尝试实行类似的方法这一个准确,或叉子回购这种方法背后(或其他类似的话),并延长/修复它适合你的目的。
自己动手,从头开始。 这里的一般方法:
解析您的DBpedia的数据集中到适合的Neo4j的插入方法的格式。 有迹象表明存在类似的库openRDF存在来处理数据。 除非你打算花时间来研究这将满足您的需求最好的,现有的解决方案我上面链接已经实现了这个库。
然后格式化的数据插入到你的Neo4j分贝。 做到这一点的方法之一是通过的Neo4j的批量插入组件。 注意这个设施,因为他们的状态,适用于初次进口的(因为它不是线程安全的,非事务性的,换句话说,ACID兼容不)。 因此,这实际上取决于你的使用情况。
我的2美分的是,你使用的东西已经在那里,除非这功能是你开发什么样的核心。 由于它的东西,将是建立一个痛苦,更痛苦,以建立一个高效运行的东西。