2011-10-04 4 views
2

J'ai besoin d'importer dbpedia dans neo4j. Je télécharge la dbpedia d'ici: http://wiki.dbpedia.org/Downloads37 Une idée?Comment importer dbpedia dans neo4j?

+0

Vous pouvez trouver cette réponse communautaire utile: http://stackoverflow.com/questions/12212015/how-to-setup-neo4j-with-dbpedia-ontop-of-ruby-on-rails – 0x90

+0

Aussi, je Je sais que Kenny Bastiani a travaillé dans ce domaine. Cela semble être un projet pertinent: https://github.com/kbastani/neo4j-dbpedia-importer –

Répondre

0

Je suis en train de faire la même chose. J'ai trouvé que le plus gros problème pour cela est l'indexation donc la meilleure solution est d'écrire un programme Java qui extrait les instructions avec des hachages md5 dans un fichier triple comme suit: subjectHash \ t prédicatHash \ t objectHash \ t sujet \ t prédicat \ t objet \ n.

Dans un autre fichier, vous devez stocker les noeuds (aka sujets et objets de déclarations): nodeHash \ t nodeValue

Le code de cette procédure peut être téléchargée à partir de mon github: https://github.com/eschleining/DbPediaImport.git

Compilez-le avec mvn package et il crée un fichier jar dans la cible qui prend les fichiers dbpedia gzippés comme arguments. Si vous avez seulement les fichiers bzip2 vous pouvez les transformer aiment suit: for i in *.bz2 ; do bzcat "$i" | gzip > "${i%.bz2}.gz"; done &

Maintenant, exécutez: java -jar ConcurrentDataTableWriter-0.0.1-SNAPSHOT.jar yourdbpediaFolder/*.gz

Ensuite, vous triez les fichiers nouvellement créés manuellement à l'aide de l'utilitaire de tri de linux: gunzip -c nodes.gz | sort -k2 -u | gzip > nodes_unique.gz

Et le fichier de triples: gunzip -c triples.gz | sort -k1,3,2 -u | gzip > triples_unique.gz

Maintenant, vous pouvez compiler l'outil d'insertion par lots de mon repo avec maven3 (package mvn) et exécutez-le dans Le même répertoire que les fichiers nodes_unique.gz et triples_unique.gz crée un répertoire de base de données Neo4J nommé "DbpediaNe04J" (attention à la faute de frappe "0 au lieu de o).

J'ai trouvé que c'était le moyen le plus rapide car il ne recherche un index qu'une fois pour chaque paire sujet/objet dans un triplet.

N'hésitez pas à ajouter des nœuds de type de données en tant que propriétés et ainsi de suite. J'ai actuellement implémenté chaque triple comme une relation entre deux nœuds.