Is there a way to view full graph in rexster from titan DB.? - titan

I am using rexster on top of Titan to visualize the graph. I could view the vertices and get the edges for each of them. But, how can i view complete graph from Titan instead of just getting details for each vertex.? I will have thousands of vertices and edges. If i have to view them for each vertex, it will be really tough. Pleas let me know, if there is a way to visualize whole graph.

Rexster's user interface isn't designed to visualize an entire graph. In fact, you will find that when graphs get sufficiently large, viewing the whole graph just isn't possible (or useful). For now though, let's set memory/usability issues aside to answer your question. You will want to use a different graph visualization tool, like Gephi or Cytoscape to visualize your graph. Both of those tools (and others you will find) can take GraphML as an input and using TinkerPop's Reader/Writer classes you can output your graph to that format.
You asked about Rexster so I assume that you were using TinkerPop 2.x and Titan versions prior to 1.0. If you were using Titan 1.0 (and thus TinkerPop 3.x), you could use the Gephi Plugin for the Gremlin Console to help make the integration more seamless.

Most user interface patterns have a performance issue at about the same time they have a usability issue. Developers who ask "how can I stop my 100,000 element drop down list from being so slow" may be missing the point that such a drop down list is useless for an end user, and instead should switch to a different paradigm, such as a typeahead search.
Similarly, once your graph has more than a few hundred vertices in it, visualizing it in its entirety is nearly impossible. You must move to viewing aggregate statistics, simplified versions of the graph, or much more impressionistic sketches that are really only good for seeing clusters.

Related

OrientDB: How are nodes and edges stored internally

Quick question, but one that Google hasn't yielded any results for.
Whilst comparing different graph databases, I found this useful slide on the internals of Neo4j. I found slides 3-12 particularly interesting, as they explained how the graph (nodes/edges/properties) is represented/serialized on disk.
I'm now looking closely at OrientDB as my likely DB of choice. Can anyone with knowledge of OrientDB's architecture please describe the internal representation that it uses to store graph data, analogously to that on the slides linked above? Many thanks.

Big data visualization using "search, show context, and expand on demand" concept [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I'm trying to visualize a really huge network (3M nodes and 13M edges) stored in a database. For real-time interactivity, I plan to show only a portion of the graph based on user queries and expand it on demand. For instance, when a user clicks a node, I expand its neighborhood. (This is called "Search, Show Context, Expand on Demand" on this paper).
I have looked into several visualization tools, including Gephi, D3, etc. They take a text file as input, but I don't have any idea how they can connect a database and update the graph based on users' interaction.
The linked paper implemented a system like that, but they didn't describe the tools they were using.
How can I visualize such data with above criteria?
There are several solutions out there, but basically every one is using the same approach:
create layer on top of your source to let you query at high level
create a front end layer to talk with the level explained above
use the visualization tool you want
As miro marchi pointed, there are several solutions to achieve this goal, some of them locked to particular data sources others with much more freedom but that would require some coding skills.
Datasource
I would start with the choice of the source type: from the type of data probably I would choice either Neo4J, Titan or OrientDB (if you fancy something more exotic with some sort of flexibility).
All of them offer a JSON REST API, the former with a proprietary system and language (Cypher) and the other two using the Blueprint / Rexster system.
Neo4J supports the Blueprint stack as well if you like Gremlin over Cypher.
For other solutions, such other NoSQL or SQL db probably you have to code a layer above with the relative REST API, but it will work as well - I wouldn't recommend that for the kind of data you have though.
Now, only the third point is left and here you have several choices.
Generic Viz tools
Sigma.js it's a free and open source tool for graph visualization quite nice. Linkurious is using a fork version of it as far as I know in their product.
Keylines it's a commercial graph visualization tool, with advanced stylings, analytics and layouts, and they provide copy/paste demos if you are using Neo4J or Titan. It is not free, but it does support even older browsers - IE7 onwards...
VivaGraph it's another free and open source tool for graph visualization tool - but it has a smaller community compared to SigmaJS.
D3.js it's the factotum for data visualization, you can do basically every kind of visualization based on that, but the learning curve is quite steep.
Gephi is another free and open source desktop solution, you have to use an external plugin with that probably but it does support most of the formats out there - graphML, CSV, Neo4J, etc...
Vendor specific
Linkurious it's a commercial Neo4J specific complete tool to search/investigate data.
Neo4J web-admin console - even if it's basic they've improved a lot with the newer version 2.x.x, based on D3.js.
There are also other solutions that I probably forgot to mention, but the ones above should offer a good variety.
Other nodes
The JS tools above will visualize well up to 1500/2000 nodes at once, due to JS limits.
If you want to visualize bigger stuff - while expanding - I would to recommend desktop solutions such Gephi.
Disclaimer
I'm part of the the Keylines dev team.

Titan Graph Database Modularity/Community Detection

Is anyone aware of an existing way to execute a modularity (community detection) algorithm on a Titan graph? I'm looking for something like Gephi's modularity feature which I believe uses https://sites.google.com/site/findcommunities/.
The Gephi Toolkit appears to provide an implementation of this algorithm, which could be an option. Has anyone experimented with loading a Titan graph using the Gephi Toolkit via the Blueprints plugin?
One requirement is that this all needs to happen automatically and in-place. Meaning, I cannot export the graph as another format or manually run modularity detection using something like the Gephi Desktop Application.
Perhaps this doesn't exactly answer the question, but for Blueprints-enabled graphs like Titan, the best option for doing this type of analysis is through Furnace. Though Furnace is still under development there is a clustering algorithm present as an example:
https://github.com/tinkerpop/furnace/blob/master/src/main/java/com/tinkerpop/furnace/algorithms/vertexcentric/programs/clustering/PeerPressureVertexProgram.java
Sounds like this just doesn't exist yet.
https://groups.google.com/forum/#!searchin/aureliusgraphs/modularity/aureliusgraphs/iS4Wj7XZjp8/TkFMyFDAclkJ
I ended up using the gephi toolkit and writing some REALLY ugly wrapper hacks to utilize the Modularity class with a TitanGraph.

BPMB visualization

We need to visualize BP (business process) into BPMN, but NOT by hands using modeler. We need to do it automatically in crm-web-based system written on PHP. I have input data (etc. array, xml, not care...(but not BPEL)), then I need to process it into nice BPMN graph (using SVG).
We have first nice-looking realization of it. We use matrix to draw: several times goes through matrix and optimize graph each time, no no, it working fast, but it not agile, hard to rebuilt, upgrade, add new features... We made this algorithm by ourselves (I mean we didn't find it in google or books). Problem is that we couldn't find any algorithms in the internet. I suppose we don't know correct keywords to do it. Every try returned us to BPEL vis. from BPMN, "Data flow vis." returned modelers...
Please help us to find some algorithms, or give correct keywords to find out information.
Think you're probably looking for "graph layout algorithms". The only library I'm aware of that can (I think) generate BPMN directly is the yFiles library from yWorks. It's not free. They do however offer a free application using the library that does auto-layout. Perhaps you could do some prototyping with that.
If that's not applicable, there are several other options. I'm not aware any of these can generate BPMN symbols directly; you'd have to construct the symbols. However all will auto-layout graphs according to various algorithms. Also all open source/free.
graphviz. Written in C. Quite old now but well used, stable and scalable.
tulip. Newer than graphviz. Haven't used it but heard good things about flexibility and scalability.
see also this post for javascript based options.
There are many more, just google for graph layout algorithms / libraries.
hth.

How to present geographical and other data on the web

I've got a table that I'd like to present. However, a lot the information in it is only useful in aggregated or visual form.
For example, the country column it itself is boring, but a aggregating all the entries of a country would be really useful. Coordinates are in there as well, so any solution should be able to present stuff on a map.
Note that the solution can be non-web, but I'd really prefer a web application everyone can access. What I've found so far is just the Google Maps API, but that's not very good at showing non-geographical information, is it?
Note that the table has a lot of dimensions, often nominal or ordinal (i.e. no numbers), so visual and plotting-focussed libraries are not that good.
EDIT: maybe that would help you, in absence of other answers
Today, this article popped into my RSS reader: Patterns of Destruction?: Visualizing Earthquake Data w/Tableau.
The author uses Tableau to visualize his data and mentions also Data Applied and GoodData.
Combine the Google Maps API with something like the Javascript Visualization Toolkit?
There are may libraries out there that might do the trick as well:
Raphael
Axis
...