Search code examples
pythonneo4jnetworkxgraph-databasessubgraph

Loading a Neo4j subgraph into Networkx


I have been dealing with Neo4j through python's Bulbflow and now need a way to save/export subgraphs. I have seen Java and even Ruby approaches for doing this, however a simple Python approach seems to be hiding from me..

So far, I have found two potential paths:

  1. Accessing Geoff through py2neo, but there is surprisingly little documentation for extracting a subgraph from a big local neo4j database or from a neo4jserver.

  2. Using Networkx: I found networkx can load graphs from many different formats (I am unsure which format neo4j stores their dbs), however I haven't found a way to extract a only a subgraph into Networkx. I assume this should be done from a gremlin query, but I'm not sure how to go about this.

I have a preference for the Networkx path, as it also comes with network analysis algorithms I wish to apply to subgraphs. I feel it would also avoid potential clashes between Bulbflow and py2neo, although I'm not sure whether such a clash would exist.

Any advice would be much appreciated!

Thanks in advance


Solution

  • I didn't know the answer until you asked, but it seems like you can just export in gml, which networkx can read. Here are a few answers that might be useful:

    Neo4j export Tree

    Convert Neo4j DB to XML?

    https://github.com/tinkerpop/gremlin/wiki/Gremlin-Methods

    Hope that helps.