Как преобразовать встроенный Neo4j graph db в GraphML с помощью Python? - PullRequest
3 голосов
/ 22 ноября 2011

Я хочу сохранить свою встроенную базу данных Neo4j Graph в GraphML, чтобы нарисовать ее с помощью инструмента, подобного yEd.

Я управляю графиком базы данных с помощью python27.

Знает ли кто-нибудь телоспособ сделать это?

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Если вы можете позволить себе сделать это вне процесса - а это значит, что вам нужно завершить существующий процесс, работающий со встроенной базой данных, и перезапустить, когда завершится экспорт - вы можете использовать Gremlin , чтобы сделать это. Вот команды, которые вам понадобятся:

g = new Neo4jGraph("/YOUR/GRAPH/DIRECTORY")
writer = new GraphMLWriter(g)
out = new FileOutputStream("/YOUR/GRAPHML/file.graphml")
writer.outputGraph(out)
writer.setNormalize(true)
out.close()

Это создаст красивый симпатичный файл graphml, который подходит для чтения в такие инструменты, как Gephi или Cytoscape .

Если вам нужно экспортировать график в процессе, вам нужно будет использовать что-то вроде jython для запуска ваших скриптов на python, а затем использовать вышеуказанные команды, импортируя объекты из com.tinkerpop.blueprints.

0 голосов
/ 22 ноября 2011

Если neo4j.py не поддерживает экспорт в формат GraphML, или по какой-либо причине вы не можете сделать это с Neo4j + Java, вам придется написать собственный экспортер.достигните этого с NetworkX , который поддерживает импорт из / экспорт в GraphML.Просто найдите способ импортировать ваш график Neo4j в NetworkX, а затем экспортировать его непосредственно в GraphML.

...