如何使用Python将嵌入式Neo4j图形数据库转换为GraphML?

时间:2011-11-22 14:14:29

标签: python neo4j graphml neo4j.py

我想将我的嵌入式Neo4j Graph数据库存储到GraphML中,以便用yEd这样的工具绘制它。

我正在用python27管理图表数据库。

有没有人知道这样做的方法?

2 个答案:

答案 0 :(得分:1)

如果您能够在流程之外完成此操作 - 这意味着您需要关闭在嵌入式数据库上工作的现有流程,并在完成导出后重新启动 - 您可以使用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文件,适合阅读GephiCytoscape等工具。

如果你需要在进程中导出图形,你需要使用像jython这样的东西来运行你的python脚本,然后通过从com.tinkerpop.blueprints导入对象来使用上面的命令。

答案 1 :(得分:0)

如果neo4j.py不支持导出为GraphML格式,或者由于任何原因你无法使用Neo4j + Java,那么你必须编写一个自定义导出器。

使用NetworkX可以实现一些简单的黑客攻击,它支持从/导出到GraphML。想办法将你的Neo4j图导入NetworkX,然后直接导出到GraphML。