将dbpedia加载到Neo4j中的最简单的方法是使用
dbpedia4neo库.这是一个Java库,但您不需要知道任何Java,因为您需要做的只是运行可执行文件.
您可以在JRuby中重写此内容,但是常规的Ruby不能工作,因为它依赖于Blueprints,这是一个没有Ruby等效的Java库.
这是提供加载过程的两个关键文件.
Blueprints将RDF数据转换为图形表示.了解发生什么事情,请参阅Blueprints Sail Ouplementation:
下载dbpedia转储文件后,您应该可以构建dbpedia4neo Java库并运行它,而无需修改Java代码.
首先,克隆oleiade的GitHub存储库的fork并更改为dbpedia4neo目录:
$git clone https://github.com/oleiade/dbpedia4neo.git
$cd dbpedia4neo
在构建它之前,您将需要更新pom.xml以使用更多当前的蓝图版本和当前的Blueprints存储库(Sonatype).
要做到这一点,打开pom.xml和依赖关系部分的顶部,将所有的TinkerPop Blueprints版本从0.6更改为0.9.
当您在文件中时,将Sonatype存储库添加到文件末尾的存储库部分:
sonatype-nexus-snapshots
Sonatype Nexus Snapshots
https://oss.sonatype.org/content/repositories/releases
保存文件,然后使用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框架.
所有这一切的另一种方法是在Ruby中处理dbpedia RDF转储文件,将节点和关系写入CSV文件,并使用Neo4j batch importer加载它.但是这将需要您将RDF数据手动转换为Neo4j关系.