2011-10-04 269 views
2

我需要將dbpedia導入neo4j。 我從這裏下載dbpedia:http://wiki.dbpedia.org/Downloads37 任何想法?如何將dbpedia導入neo4j?

+0

你會發現這個社會有用的答案: http://stackoverflow.com/questions/12212015/how-to-setup-neo4j-with-dbpedia-ontop-of-ruby-on-rails – 0x90

+0

另外,我知道Kenny Bastiani在這方面做了一些工作。這似乎是一個相關的項目:https://github.com/kbastani/neo4j-dbpedia-importer –

回答

0

我目前在做同樣的事情。我發現最大的問題是編制索引,所以最好的解決方案是編寫一個Java程序,將md5散列語句提取爲三元文件,如下所示: subjectHash \ t predicateHash \ t objectHash \ t subject \ t predicate \ 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的排序實用程序排序: 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軟件包)編譯我的回購的批量插件並在其中運行與nodes_unique.gz和triples_unique.gz文件具有相同的目錄,它創建一個名爲「DbpediaNe04J」的Neo4J數據庫目錄(介意拼寫錯誤「0」而不是o)。

我發現這是最快的方法,因爲它只查找三次中的每個主題/對象對的索引一次。

隨意將數據類型節點添加爲屬性等。我目前已經將每個三元組實現爲兩個節點之間的關係。