Tools

This section contains some satelite tools developed on top of Small Text that enrich the functionalities provided by the utility package of the library. They are:
  1. GraphViewer
  2. GraphLabelFinder
  3. Rank&Select

GraphViewer

[Download the latest version]

A simple 100% Java, Swing based application able to draw graphs. The rendering engine is provided by the JUNG library. The GraphViewer is able to render graphs with thousands vertices and edges, showing the node labels and the edge attribute values; it gives to the user a way to explore the graph by means of zooming and moving operations. The aplication is able to open files in GraphML format eventually gzipped. The supported GML format is minimal. Given a GML file the application is able to read and render the structure of the graph and some properties of the node and edge tags. In particular it recognizes the "label" property eventually associated with the node tag and storing the textual label of the represented node. Each edge tag can be decorated with an attribute property wich value will be read and showed by the viewer. Such attribute must be declared in the main graph tag in order to be recognized. If the graph is centered in one particular vertex (the pivot vertex) its id can be declared in the main graph tag so that it will be drawn with a special shape by the viewer.
With the GraphViewer the user can hide edges which attribute values are under a certain threshold, collapse the vertices with one single outgoing edge and drop the pivot vertex as a trivial clustering function. Moreover the user can select the layout used to render the graph choosing it from a set of predefined layouts.

GraphLabelFinder

[Download the latest version]

A 100% pure Java graphical front end (swing based) to perform searches over the textual vertex labels of a graph. Given a regex pattern this application matches it to the labels provided by the underlying graph labeler and shows the matching strings. The input regex must be a Java regex compliant string. Given an input pattern P the application matches the derived pattern *.P.* against the labels sequentially provided by the opened labeler.
The user can then select a label of her interest and ask to perform a breadth first search starting from the corresponding vertex in the graph and limiting the visit to a maximum distance of K. The visited portion of the graph, as long as the information associated to it such as the vertex labels and the attribute values of the edges are dumped on a GraphML file on disk eventually compressed with GZIP. The BFS is performed on the graph stored in WebGraph format. The resulting GML file can be showed by the GraphViewer application.

Rank&Select

[Download the latest version]

A library to build a succint data structure to support Rank&Select queries. It contains binaries, sources and javadoc.

To have a deeper overview on the Rank&Select technique please refer to the following papers:
  1. González, R., Grabowski, S., Mäkinen, V., and Navarro, G. 2005. Practical implementation of rank and select queries. In Poster Proceedings Volume of 4th Workshop on Efficient and Experimental Algorithms (WEA'05) (Greece, 2005). CTI Press and Ellinika Grammata, 27 38.
  2. Kim, D.-K., Na, J.-C., Kim, J.-E., and Park, K. 2005b. Efficient implementation of rank and select functions for succinct representation. In Proceedings of the 4th Workshop on Efficient and Experimental Algorithms (WEA'05). Lecture Notes in Computer Science, vol. 3503. Springer-Verlag, Berlin, Germany, 315 327.