Overview of Hy+ (University of Toronto)

The Hy+ system provides extensive support for query visualization, visualizing the input instance, and visualizing the output instance in several different modes. The visualizations manipulated by the system are labeled graphs and hygraphs.

Each tuple (a1, ..., ai, b1, ..., bj, c1, ..., ck) in a relational database can be represented by a directed multigraph having an edge labeled r(c1, ... ,ck) from a node labeled a1, ..., ai) to a node labeled (b1, ..., bj) corresponding to each tuple of each relation r in the database.


Suppose we have a database describing an execution of the dining philosophers program. The database has two relations, left_fork and right_fork , so that left_fork(p,f) means that philosopher p has fork f to its left, and similarly for right_fork(p,f) . Since philosophers and forks are both implemented as processes in this program, a philosopher is represented by a term of the form process(philo,id1,id2) where philo is a constant indicating the type of process and id1 and id2 are system- and programmer-defined process identifiers. Consider, for example, the tuples: left_fork(process(philo,199,0), process(fork,187,0)), and right_fork(process(philo,199,0), process(fork,193,1)) . The first tuple says that the left fork of a philosopher process with process-id 199 and programmer-defined-id 0 is a fork process with identifiers 187 and 0. The function symbol in the term ( process in this case) is used to select the icon that represents the node. Following figure shows the Hy+ graph representation of these tuples.


The data model we use is more general than graphs. Hygraphs , are a hybrid between Harel's higraphs and directed hypergraphs. A hygraph extends the notion of a graph by incorporating blobs in addition to edges. A blob relates a containing node with a set of contained nodes and is diagrammatically represented as a region associated with the container node that encloses the contained nodes. Following figure shows two blobs where the philo and fork processes ( blob nodes) contain their respective communication events ev(...).. A node may have multiple blobs associated with it, and blobs may be arbitrarily nested. Extending the representation to hygraphs allows varying levels of abstraction in the display of hierarchical data and provides a flexible mechanism for clustering information.


Web Visualization using Hy+

Back to Hy+ Home page