Menu

advantages/disadvantages with TouchGraph

sam
2002-11-13
2002-11-24
  • sam

    sam - 2002-11-13

    Hi,

    Could you please tell me what are the advantages / disadvantages between TouchGraph and GVF?

    http://touchgraph.sourceforge.net/

    Thanks.

     
    • yugen

      yugen - 2002-11-20

      I'm much more familiar with GVF and its stock application (called "Royere") than I am with TouchGraph.  However, I am pretty much emotionally neutral about other graph visualization applications, so I'm not trying to "sell GVF" over any alternatives.  The problem of graph visualization is complex enough that I think a diversity of applications must be available so that users can choose an appropriate one for their purposes.

      My knowledge about TouchGraph comes from experimenting with the pretty cool "Pub Med" deployment at http://www.pmbrowser.info/# (click on the "GO!" button), the graph layout demo that comes in the TouchGraph distribution, a cursory look through the source tree, and from browsing the TouchGraph forums.  I invite anyone familiar with TouchGraph to scrutinize my comments here and "keep me honest" :)  [Also check out the  http://sourceforge.net/forum/forum.php?thread_id=764008&forum_id=110436 thread for any replies.]

      PART 1: Side-by-side feature comparison.

      TouchGraph supports a spring-layout algorithm only.  Royere comes with a wider selection of stock algorithms: Reingold-Tilford (hierachical - adapted for DAG's), Fruchterman-Reingold (force-directed), Radial, Ring, Barycentric, and Random.  It's also very easy to add your own pluggable layouts.  However, TouchGraph uses a kind of dynamic feedback approach that allows the nodes to gravitate toward a (usually) visually pleasing equilibrium.  TouchGraph also apparently has the ability to "lock" a node in place if you want to.  [Also see my comments about compound layouts in PART 2 below.]

      TouchGraph appears to use partial graph faulting; in other words, it only loads the nodes it needs to load.  If you double-click on a node to expand it (see the Pub Med site), you can control how any neighboring nodes are rendered via the "Show first" dropdown.  Partial graph faulting is obviously a performance advantage when you're dealing with large graphs.  The GVF design does support partial graph faulting, but under the current implementation we fault the entire graph.

      TouchGraph uses XML for graph storage.  GVF supports XML, GML, and CNS, and will include database persistence in the next release (due out shortly).

      PART 2:  Features unique to Royere.

      GVF supports compound layouts (see screen shots at http://gvf.sourceforge.net/\).  In other words, if you want to expand a node to reveal a subgraph, you can use whatever layout algorithm you want for the subgraph, independent of how you lay out the top-level graph or any other subgraph.  TouchGraph also allows you to expand nodes, but there is no precise barrier or border between subgraphs (try double-clicking on a node
      in the Pub Med demo; also see http://www.touchgraph.com/SamePane.jpg .).  This can be an advantage, because it allows you to see subgraph contents without excessive zooming in and out.  Or it can be a disadvantage  if you want to think of the graph as having layers of depth.

      Royere has UI command-line equivalents to most menu and mouse actions.  You can batch up the commands into a script file to chieve "animation", or to prepare a demo that requires a certain sequence of events.

      Royere allows you to jump to any node by name.  This could be very easily extended to jump to a node based on any other unique node property.

      Royere allows you to export graph views to image files (SVG, JPG, PNG, and BMP).

      Royere supports "emphasis".  This is mentioned on the TouchGraph short-term feature request forum (see https://sourceforge.net/forum/forum.php?thread_id=119485&forum_id=95694 .)

      GVF allows you to plug-in your own metrics and clustering strategies.

      PART 3: Features unique to TouchGraph.

      TouchGraph has an interesting "locality" slider.  One of our users has implemented a very similar feature in Royere, although it hasn't been rolled into the stock distribution.

      In the GraphLayout demo, I noticed that TouchGraph has a cool "rotate" feature.

      PART 4:  Other considerations.

      Finally, you may want to consider some other factors besides application features.  For example, I don't think TouchGraph comes with any end-user documentation, whereas the Royere has fairly good docs.  Also, I think that the GVF javadocs seem to be more detailed, although I am admittedly biased there.  On the other hand, TouchGraph appears to have a larger user base and more active forums.

      Hope this helps a bit.

       
    • sam

      sam - 2002-11-20

      Thanks for the detailed answer.

      My understanding is TouchGraph does the layout in another thread. Is it the same in GVF?

      And you mention i can achieve "animation" during graph layout also in GVF, would you tell me where I can find an example of doing that?

      And how does GVF represent co-ordinate? Where is (0,0)? is it the upper left corner? or the middle of the graph pane?

       
    • sam

      sam - 2002-11-20

      Thanks for the detailed answer.

      My understanding is TouchGraph does the layout in another thread. Is it the same in GVF?

      And you mention i can achieve "animation" during graph layout also in GVF, would you tell me where I can find an example of doing that?

      And how does GVF represent co-ordinate? Where is (0,0)? is it the upper left corner? or the middle of the graph pane?

       
      • yugen

        yugen - 2002-11-23

        > My understanding is TouchGraph does the
        > layout in another
        > thread. Is it the
        > same in GVF?

        Yes.

        > And you mention i can achieve "animation"
        > during graph layout
        > also in GVF,
        > would you tell me where I can find an example
        > of doing that?

        I've responded under a new thread entitled "Royere scripts and animation" (http://sourceforge.net/forum/forum.php?thread_id=768847&forum_id=126557)

        > And how does GVF represent co-ordinate?
        > Where is (0,0)? is it the upper left
        > corner? or the middle of the graph pane?

        I've responded under a new thread entitled "Coordinates" (http://sourceforge.net/forum/forum.php?thread_id=768848&forum_id=126557)

         
    • Alexander Shapiro

      Hi Yugen,

      Thank you for providing this comparison between TouchGraph and GVF.  I appreciate the work that you are doing and hope to gain insight from your code.

      You description of TouchGraph was accurate, but I would like to elaborate on it a little bit. 

      TouchGraph is a tool designed for dynamic graph exploration.  The goal is to provide a widget like interface that lets a user browse across a graph with the same ease that one uses a tree based GUI component to browse a directory file structure.

      TouchGarph is meant to be used in situations where the names of the individual items are important.  The user is either browsing the graph to find an item that they are looking for, or chosing to create a map of a region by selectively expanding and hiding certain nodes. 

      TouchGraph's interface also alows popup windows containing html to be displayed when a user interacts with a node in a certain way.  For instance in the TGGoogleBrowser, clicking the hint button shows a description of the site associated with the node.

      It is correct that TouchGraph does not support nested graphs.  This somewhat limits the types of structures that can be displayed, so I definately recomment using GVF if you need this feature.

      That's all...

      Something that interests me about GVF is the last screen shot on http://gvf.sourceforge.net  Has point 3 been removed from Scope 2?  How is it's layout calculated?

      Also, besides rotation, TouchGraph has a fish-eye option as well.  You can see it at work here: http://www.touchgraph.com/TGGraphLayout_jre11.html

      Thanks again Yugen, and good luck.

      --Alex Shapiro
      http://www.touchgraph.com

       
      • yugen

        yugen - 2002-11-24

        > Something that interests me about GVF is the
        > last screen shot on http://gvf.sourceforge.net
        > Has point 3 been removed from Scope 2?

        Yes, the node labeled "3" is removed from the Scope 2 metanode and added to the top-level graph. 

        > How is it's layout calculated?

        In the example screen shots, the user has chosen to lay out the Scope 2 subgraph with the Ring layout.  All layouts in Royere are subclasses of the Layout class, and they implement an abstract computePositions() method that assigns coordinates to nodes based on a particular layout algorithm (in this case, ring).

        However, when the user performs manual node moves in the UI, all the Layout objects are converted to UserDefined layout objects, in which a node's coordinates are stored with each node as a property of the node.  So UserDefined.computePositions() doesn't really calculate anything; it just reads off the user-defined coordinate properties for every node.

        In any event, when the mouse drag begins, Royere takes note of the initial mouse position and determines the graph (in this case, the Scope 2 subgraph) that the moving node started in.  When the mouse is released, Royere takes note of the final mouse position and determines the graph that the moving node ends up in.  If the two graphs are different, Royere structurally removes the node from the first graph and structurally adds it to the second graph.

        At the end of the node move, the final mouse position is converted to the corresponding coordinates in the layout's coordinate space, and, since the layout is now implicitly a UserDefined layout, the node's x- and y-coordinate properties are set accordingly.

         

Log in to post a comment.