我想将嵌入的 Neo4j Graph db 存储到 GraphML 以使用 yEd 之类的工具进行绘制。
我正在使用 python27 管理图形数据库。
有没有人知道这样做的方法?
如果您有能力在流程之外执行此操作(这意味着您需要关闭在嵌入式数据库上工作的现有流程并在完成导出后重新启动),您可以使用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
.
如果 neo4j.py 不支持导出为 GraphML 格式,或者由于任何原因您无法使用 Neo4j + Java 执行此操作,则必须编写自定义导出器。
通过一些简单的技巧,您可以使用NetworkX来实现这一点,它支持从 GraphML 导入/导出到 GraphML。只需想办法将 Neo4j 图形导入 NetworkX,然后将其直接导出到 GraphML。