【问题标题】:How to import dbpedia into neo4j? [closed]如何将 dbpedia 导入 neo4j? [关闭]
【发布时间】:2011-10-04 09:35:14
【问题描述】:

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

【问题讨论】:

标签: semantic-web neo4j dbpedia


【解决方案1】:

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

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

这个过程的代码可以从我的github下载: https://github.com/eschleining/DbPediaImport.git

使用 mvn package 编译它,它会在 target 中创建一个 jar 文件,该文件将 gzipped 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”的 Neo4J 数据库目录(请注意错字"0 而不是 o)。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 2018-01-27
    相关资源
    最近更新 更多