我需要将dbpedia导入neo4j。 我从这里下载了dbpedia:http://wiki.dbpedia.org/Downloads37 有什么想法吗?
答案 0 :(得分:1)
此用户已为其编写了一个脚本:
答案 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)。
我发现这是最快的方式,因为它只为三个中的每个主题/对象对查找一次索引。
随意添加数据类型节点作为属性等。我目前已经将每个三元组实现为两个节点之间的关系。