如何将dbpedia导入neo4j?

时间:2011-10-04 09:35:14

标签: semantic-web neo4j dbpedia

我需要将dbpedia导入neo4j。 我从这里下载了dbpedia:http://wiki.dbpedia.org/Downloads37 有什么想法吗?

3 个答案:

答案 0 :(得分:1)

此用户已为其编写了一个脚本:

https://github.com/knutwalker/dbpedia-neo4j

答案 1 :(得分:0)

您可以从此博文中获得一些帮助:http://blog.acaro.org/entry/dbpedia4neo

答案 2 :(得分:0)

我目前正在做同样的事情。我发现最大的问题是索引,所以最好的解决方案是编写一个java程序,将带有md5哈希的语句提取到三个文件中,如下所示: subjectHash \ t predicateHash \ t objectHash \ t subject \ t谓词\ t对象\ n。

在另一个文件中,您需要存储节点(也就是主语和语句对象): nodeHash \ t nodeValue

此程序的代码可以从我的github下载: https://github.com/eschleining/DbPediaImport.git

使用mvn包编译它并在目标中创建一个jar文件,该文件将gzip压缩的dbpedia文件作为参数。如果您只有bz2文件,您可以将其转换如下: for i in *.bz2 ; do bzcat "$i" | gzip > "${i%.bz2}.gz"; done &

现在运行: java -jar ConcurrentDataTableWriter-0.0.1-SNAPSHOT.jar yourdbpediaFolder/*.gz

然后使用linux的sort实用程序手动对新创建的文件进行排序: gunzip -c nodes.gz | sort -k2 -u | gzip > nodes_unique.gz

三元组文件: gunzip -c triples.gz | sort -k1,3,2 -u | gzip > triples_unique.gz

现在你可以使用maven3(mvn包)编译我的repo的批量插入器并在与nodes_unique.gz和triples_unique.gz文件相同的目录中运行它,它创建一个名为" DbpediaNe04J&#34的Neo4J数据库目录; (记住拼写错误" 0而不是o)。

我发现这是最快的方式,因为它只为三个中的每个主题/对象对查找一次索引。

随意添加数据类型节点作为属性等。我目前已经将每个三元组实现为两个节点之间的关系。