• No results found

High-level queries

In document Can we work together? (Page 124-130)

Chapter 6 Design of Deep View, an accessible diagram interface

6.4 Navigation

6.4.3 High-level queries

In a visual diagram a sighted person can recognize meaningful high level characteristics at a glance. A loop in a state-chart, for example, is a sequence of nodes connected by links that form a circular shape (see Figure 6-5 (a) for an example). The significance of a loop is that it indicates a process that is possibly repeated multiple times. A blind user does not have the same advantage of quickly recognizing high-level diagram characteristics. With the described elementary navigation it is a matter of hunt-and-peck

for a blind user to find information such as finding a loop. The user must use trial-and- error to traverse links in the hope of ending at the final node in the loop (the initial starting node). Even when the user completes the loop, it is up to the user to remember the path. Finding the same path again requires repeating the traversal.

Deep View identifies and presents three types of diagram characteristics. The first characteristic is a loop as described (see Figure 6-5 (a) for an example). The second characteristic is a path of links between two nodes the user specifies. A path signifies the relationship between the nodes. We refer to the third characteristic as a parallel path (referred to as internally disjoint paths in graph theory). These high-level characteristics are significant for many node-link diagrams. Although Deep View currently manages three diagram characteristics, future research could identify more characteristics that can be useful to present to the user.

Deep View has the unique feature of automatically identifying and presenting some high-level diagram characteristics to a blind user. For example, Deep View presents the blind user the sequence of nodes involved in a loop. In the next section, we explain how Deep View presents the high-level characteristics of a diagram in the Deep View treeview in a manner consistent with the rest of the diagram.

We will use state-charts with directed links (transitions) to explain the

significance of the high-level queries. We will also briefly describe how the high level queries generalize to an ERD with undirected links (relationships).

a) visual diagram

b) Deep View presents the query for cycles in the diagram

b) Query for path from "start" state to "go to restaurant" a) Visual diagram state

c) query for all parallel paths in the diagram

d) Query for the path between the "go to restaurant" state and "cook" state. Has a common parent

Figure 6-6. State-chart diagram with parallel path to demonstrate queries for high-level diagram characteristics.

Path

A path between two nodes is the relationship between the nodes. For example, in a state chart a path signifies the stages of a process between the start and destination states. In Deep View, a user instructs Deep View to find a path by entering the start and destination nodes of the path in a dialog window. Deep View returns all the paths

between the nodes. In Deep View we identify three kinds of paths, representing different information. These paths apply to diagrams with directed edges.

The first kind of path is a simple forward directed path. The links from the start node to the destination node are always directed at the next node in the sequence. In a state chart, a forward path details the inputs from one state to another. Figure 6-6 a. shows the forward path from the "start" state to the "go to restaurant" state. The reverse of a forward path is the same path in the reverse direction between the start and

destination nodes. Such a reverse path is called a back path. A forward or back path is encountered depending on the order in which the user specifies the start and destination nodes.

The second kind of path is a path where the user specifies an initial node and destination node that have a common parent or child node. In a state-chart, the common parent state of the initial node and destination node is the state where a decision is made between two processes (paths). For example, in Figure 6-6 a. a person decides between cooking dinner at home or going to a restaurant to eat. There is a similar relationship if two nodes in the diagram have a common child.

For another example, consider a tree data structure, such as a company organization chart. In this case a link is directed from the manager to the managed employee. A parent node in a path between two employees represents the manager the employees have in common.

The third kind of path between two nodes is where the direction of the links is arbitrary. In a state-chart it indicates that the states are connected through transitions but the nodes are different parts of the larger state machine.

Cycles

As in the given example, a cycle of nodes signifies a repeated process in a state chart as illustrated in Figure 6-5 (a). Deep View returns all cycles in a diagram when a blind user queries for cycles. Deep View currently only identifies directed cycles where links in the cycle are in the same direction, such as a loop. Undirected cycles might be significant too and could be indicated in future versions of Deep View.

Parallel path

We refer to parallel paths as two or more forward paths between a start node and a destination node as shown in Figure 6-6 (a). Considering the parallel paths independent from the remaining diagram, the start node is a source node (directed links are outgoing) and the destination node is a sink node (directed links are incoming). In Figure 6-6 (a). the source is the "dinner" state and the sink is the "night activity" state. In graph theory a parallel path is referred to as an internally disjoint or independent path. The significance of a parallel path is that there are multiple ways to traverse between the sink and source nodes. When a user queries Deep View for parallel paths, Deep View identifies all pairs of source/sink nodes and presents all the paths between each pair of nodes.

ERD and high level queries

An ERD demonstrates how the described high level characteristics apply to a diagram with undirected links. Although the ERD relationship types (links) are

undirected, in Deep View we assign a direction. We define the direction of a relationship type from the entity type (node) with smaller cardinality to the entity type with higher cardinality. Remember in our example we only consider a one-to-many relation rather than a one-to-one relation or a many-to-many relation. This gives the entities with lower cardinality higher priority, although typically there is no hierarchy in an ERD. The implication, for example, in a simple ERD is that an instance of the main entity type is associated to one or more of the secondary entities. Important for the Deep View presentation, the prioritization contributes to determining the initial ordering of a diagram's nodes.

For a user the most relevant high-level characteristic of an ERD is finding paths between entity types. The typical use of an ERD is for the user to track the associations (paths) between entity types. The most likely path relationship between two entity types is that the directions of the links are arbitrary. Nonetheless, the user has the main desired information about how the two entity types are related.

A special feature of Deep View's path query is that it can identify the main entity type when the user queries for the two secondary entity types. In this example, Deep View would identify the main entity type as a common parent to the secondary entity types. This is a result of assigning the direction on the ERD's links (relationship types).

Entity types in ERD may have cyclical or parallel associations between them. In future research we would identify the significance of cyclical or parallel associations to expressing concepts in an ERD.

In document Can we work together? (Page 124-130)