The G+/GraphLog Visual Query System
Authors: Consens Mariano P. , Mendelzon Alberto O. 
Published: November 2005

The video presentation “The G
+
/GraphLog Visual Query System” gives an overview of the capabilities of the ongoing implementation of the G
+
Visual Query System for visualizing both data and queries as graphs. The system provides an environment for expressing queries in
GraphLog
[Con89, CM89, CM90], as well as for browsing, displaying and editing graphs. The visual query system also supports displaying the answers in several different ways.

Graphs are a very natural representation for data in many application domains, for example, transportation networks, project scheduling, parts hierarchies, family trees, concept hierarchies, and Hypertext. From a broader perspective, many databases can be naturally viewed as graphs. In particular, any relational database in which we can identify one or more sets of objects of interest and relationships between them can be represented by mapping these objects into nodes and relationships into edges. In the case of semantic and object-oriented databases, there is a natural mapping of objects to nodes and attributes to edges.

GraphLog is a visual query language, based on a graph representation of both data and queries, that has evolved from the earlier language G
+
[CMW87, CMW89, MW89]. GraphLog queries ask for patterns that must be present or absent in the database graph. Each such pattern, called a
query graph
, defines new edges that are added to the graph whenever the pattern is found. GraphLog queries are sets of query graphs, called
graphical queries
. If, when looking at a query graph in a graphical query, we do not find an edge label in the database, then there must exist another query graph in the graphical query defining that edge. The language also supports computing aggregate functions and summarizing along paths.

The G
+
Visual Query System is currently implemented in Smalltalk-80™, and runs on Sun 3, Sun 4 and Macintosh II workstations. A Graph Editor is available for editing query graphs and displaying database graphs. It supports graph “cutting and pasting”, as well as text editing of node and edge labels, node and edge repositioning and re-shaping, storage and retrieval of graphs as text files, etc. Automatic graph layout is also provided. For editing collections of graphs (such as graphical queries) a Graph Browser is available.

The first answer mode supported by the G
+
Visual Query System is to return as the result of a GraphLog query a graph with the new edges defined by the graphical query added to the database graph.

An alternative way of visualizing answers is by high-lighting on the database graph, one at a time, the paths (or just the nodes) described by the query. This mode is particularly useful to locate interesting starting points for browsing.
Rather than viewing the answers superimposed on the database graph, the user may choose to view them in a Graph Browser. The Graph Browser contains the set of subgraphs of the database graph that were found to satisfy the query.
Finally, the user may select to collect all the subgraphs of the database graph that satisfy the query together into one new graph. This graph (as well as any other result graph from any of the above mentioned answer modes) in turn may be queried, providing a mechanism for iterative filtering of irrelevant information until a manageable subgraph is obtained.