开发者

Convert Neo4j DB to XML?

Can I convert Neo4J开发者_运维百科 Database files to XML?


I agree, GraphML is the way to go, if you don't have problems with the verbosity of XML. A simple way to do it is to open the Neo4j graph from Gremlin, where GraphML is the default import/export format, something like

peters: ./gremlin.sh

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

As described here

Does that solve your problem?


With Blueprints, simply do:

Graph graph = new Neo4jGraph("/tmp/mygraph");
GraphMLWriter.outputGraph(graph, new FileOutputStream("mygraph.xml"));

Or, with Gremlin (which does the same thing in the back):

g = new Neo4jGraph('/tmp/mygraph');
g.saveGraphML('mygraph.xml');

Finally, to the constructor for Neo4jGraph, you can also pass in a GraphDatabaseService instance.


I don't believe anything exists out there for this, not as of few months ago when messing with it. From what I saw, there are 2 main roadblocks:

  1. XML is hierarchical, you can't represent graph data readily in this format.
  2. Lack of explicit IDs for nodes. Even though implicit IDs exist it'd be like using ROWID in oracle for import/export...not guaranteed to be the same.

Some people have suggested that GraphML would be the proper format for this, I'm inclined to agree. If you don't have graphical structures and you would be fine represented in an XML/hierarchical format...well then that's just bad luck. Since the majority of users who would tackle this sort of enhancement task are using data that wouldn't store that way, I don't see an XML solution coming out...more likely to see a format supporting all uses first.


Take a look at NoSqlUnit It has tools for converting GraphML to neo4j and back again.

In particular, there is com.lordofthejars.nosqlunit.graph.parser.GraphMLWriter and com.lordofthejars.nosqlunit.graph.parser.GraphMLReader which read / write XML files to / from a neo4j database.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜