将Neo4j DB转换为XML?

unj*_*nj2 18 neo4j

我可以将Neo4J数据库文件转换为XML吗?

Pet*_*uer 21

我同意,如果你没有XML的冗长问题,那么GraphML就是你要走的路.一个简单的方法是从Gremlin打开Neo4j图,其中GraphML是默认的导入/导出格式,类似于

peters: ./gremlin.sh

gremlin> $_g := neo4j:open('/tmp/neo4j')
==>neograph[/tmp/neo4j, vertices:2, edges:1]
gremlin> g:save('graphml-export.xml')

如上所述这里

这会解决你的问题吗?

  • 有关加载/保存往返Gremlin的最新信息现在位于:https://github.com/tinkerpop/gremlin/wiki/Gremlin-Methods (3认同)

Mar*_*uez 20

使用蓝图,只需:

Graph graph = new Neo4jGraph("/tmp/mygraph");
GraphMLWriter.outputGraph(graph, new FileOutputStream("mygraph.xml"));
Run Code Online (Sandbox Code Playgroud)

或者,与Gremlin(在后面做同样的事情):

g = new Neo4jGraph('/tmp/mygraph');
g.saveGraphML('mygraph.xml');
Run Code Online (Sandbox Code Playgroud)

最后,对于Neo4jGraph的构造函数,您还可以传入GraphDatabaseService实例.


Nic*_*ver 2

我不相信有任何东西可以解决这个问题,几个月前还没有搞乱它。据我所知,有两个主要障碍:

  1. XML 是分层的,您无法轻松地用这种格式表示图形数据。
  2. 缺乏节点的显式 ID。即使存在隐式 ID,它就像在 oracle 中使用 ROWID 进行导入/导出一样......不保证相同。

有些人建议GraphML是合适的格式,我倾向于同意。如果您没有图形结构,并且可以很好地以 XML/分层格式表示......那么那只是运气不好。由于处理此类增强任务的大多数用户都使用不以这种方式存储的数据,因此我没有看到 XML 解决方案的出现……更有可能首先看到支持所有用途的格式。

  • 我不太明白你的观点。XML 是一种元语言。GraphML 只是 XML 标记语言的一个实例,特别是一种用于表示图形数据的语言。RDF 和 XML 主题图 (XTM) 也是如此。XML 本身在表示图形方面没有限制,即任何包含链接的 SGML 或 XML 标记语言都已经这样做了。例如,DocBook **看起来**像分层文档格式,但由于它包含链接,它也可以表示图形,就像 XHTML 一样。 (2认同)
  • (被 5 分钟编辑规则所困扰。)至于显式或隐式节点 ID,这是一个实现问题。大多数图形标记语言已经在顶级元素上有 ID,并且可以将 xml:id 添加到任何标记中。从 Neo4j 导出到任何标记应该不成问题,这只是一个序列化,如上面 Peter Neubauer 所指出的。 (2认同)