Chapter 3 Enhanced Visualization Model
3.3 Coordinations and Joins
An important advancement in this model is the generalization of coordinations and interactions [NCI02]. A coordination is generalized to any single or compound join association, including one-to-one, one-to-many, and many-to-many associations. Join associations for coordinations are automatically derived and executed from data schemas, eliminating the need for user-defined parameterized queries for joins. Furthermore, interactions are generalized to tuple subset selections, enabling them to act on single or multiple tuples. Chained coordinations cascade across arbitrary associations, beyond the previously limited one-to-one cascading.
Four cases demonstrate how generalized coordinations correspond to various joins in the data schema. These are demonstrated using the example data schema and multiple-view
visualization for website hits shown in Figure 23 and Figure 24.
Figure 23 – An example data schema for a database of hits to our website. “URLs” stores information about pages on our website. “Referrers” stores information about external websites that have links to out website.
“Hits” stores information about each hit, including a reference to the page requested in “URLs” and the external referring site in “Referrers”.
Figure 24 – An example multiple-view visualization constructed with Snap for the database shown in Figure 23. The website map generated from the URLs is shown in the TreeView (top left). Selecting a page in the map displays the page in the web browser (top right), and displays the distribution of hits to that page in the
scatter plot (top center). Selecting pages also highlights referring sites listed in the table view (bottom left). Likewise, selecting referring sites highlights pages linked to, and shows their hits in the plot. Clicking a
referrer shows its page in the other web browser (bottom right).
• Self join: A coordination can be established between two visualization components that
display the same relation. In this case, the coordination corresponds to the implicit one-to- one join association that exists between the relation and itself.
For example, the TreeView visualization component displays the URLs relation, using the URL page pathname attribute to display the tuples as a website tree structure. A web
browser component also displays the URLs relation, using the URL attribute to display actual pages represented by the tuples. The “select” action of the TreeView is coordinated to the “navigate” action of the web browser across the self join. When users select a tuple in the
is used to navigate the web browser to the selected page.
TreeView ← URLs → Web browser
• Single join: A coordination can be established between two components whose relations
have a direct join association in the data schema. The relational model provides two primitive types of direct join associations: one-to-one and one-to-many.
For example, in addition to the TreeView of the URLs relation, the scatter plot displays the Hits relation, showing all hits to the website by date and time. The “select” action of the TreeView is coordinated to the “load” action of the plot, using the direct join association between the URLs and Hits relations. The data schema indicates this is a one-to-many association. Selecting tuples in the TreeView joins those tuples to the Hits relation to find all the hits to the selected pages. The resulting Hits subset is then loaded and displayed in the plot, essentially filtering out hits to any other pages. This enables users to drill down from pages to hits.
TreeView ← URLs ↔ Hits → Scatter plot
• Compound join: A coordination can be established between two components whose relations
have an indirect association via one or more intermediate relations in the data schema. This requires a compound join, concatenating each of the direct joins along the indirect
association path. Compound joins enable more complex associations such as many-to-many.
For example, in addition to the TreeView of the URLs relation, the TableView displays the Referrers relation, showing an alphabetical list of all the websites that link (refer) readers to
The “select” action of the TreeView is coordinated to the “select” action of the TableView, using the compound join from URLs to Hits to Referrers. The concatenation of the one-to- many and many-to-one joins creates a many-to-many join. Selecting tuples in the TreeView joins those tuples to the Hits relation and then to the Referrers relation to identify the
websites that actually sent readers to the selected pages, and then selects them in the
TableView. Since coordinations are bidirectional, the reverse interaction also occurs. This example illustrates brushing-and-linking across a many-to-many association.
TreeView ← URLs ↔ Hits ↔ Referrers → TableView
• Multiple alternative joins: A coordination between two components whose relations have
multiple alternative join associations connecting them requires the selection of one of the join associations for use in the coordination. In the compound join example above, an alternative is the compound join through the Links relation. This alternative would have a different effect. Selecting pages in the TreeView would indicate all the websites in the TableView that have links to those pages, rather than the websites that actually referred readers and generated hits.
TreeView ← URLs ↔ Hits ↔ Referrers → TableView TreeView ← URLs ↔ Links ↔ Referrers → TableView