1

My team is visualizing a system that can easily be represented as a graph of nodes with multiple unidirectional edges, the graph need not be connected and loops can be present. We need be able to quickly pull out some or all of the graph by applying user requested filters, such as "give all edges from this node" or by metadata on them such as "give all edges with data type T", or both such as "give me a graph of all all edges with data type T which are reachable from node X" etc. Basically we want to make as convenient and flexible as possible our ability to filter and show dynamically only the parts of our graph the user currently wants/needs.

We technically do not need to do any routing, only visualizing the nodes and edges, unless it proves useful to do some basic routing as part of filter or answer a question about the existing graph.

Our existing prototype uses Mongo, java rest layer, JSON, and Angular, so a DB that would plug in easily with that basic stack (or skip the java entirely) would be good. Our graph is small enough that scaling likely won't be an issue for any decent DB, some other data, like metrics, could be larger but that could be kept in Mongo if necessary.

Good Geographical support to allow us to filter out nodes that are outside of the part of the world our user is currently interested in is a nice extra.

Finally, I would much prefer an open source product or one without licensing fees, and ideally that is actively maintained and large enough to have viable support/documentation available

Can anyone suggest the best graphical DB to support our needs?

1

I think here there are really two questions: a DB to fit your requirements and a visualization tool for it.

Depending on your use of the DB you can have a look into Neo4J, Titan, OrientDB or if you want to keep MongoDB you can add a middleware such Tinkerpop.

For the visualization side I can say to have a look at these answers:

Full disclaimer: I work for a company that provides Graph Visualization called KeyLines.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.