Plaque It!
Sponsored by: Flash of Genius |
[0001] This application claims the benefit of U.S. Provisional Application No. 60/209,505, filed Jun. 5, 2000. This application is related to U.S. patent application Ser. No. ______, filed May 16, 2001, entitled An Improved User Interface for Displaying and Exploring Hierarchical Information, presently pending, and U.S. patent application Ser. No. ______, filed May 24, 2001, entitled User Interface for Bicontextual Exploration of a Graph, presently pending.
[0002] The present invention relates to a user interface optimized to display and explore a graph of information via a display device for an electronic device such as a computer, personal digital assistant, television, cellular telephone, etc.
[0003] The user interface described herein makes it possible to explore very large collections of connected objects, without imposing any limitation on the number of nodes contained within a node, or on the number of links between a node and other nodes. Parameters can be adjusted to let a user explore the breadth of the hierarchy or the relational context in several ways.
[0004] This user interface differs from the user interface described in the above referenced patent applications, primarily by adjusting the focus centering on click behavior, and by introducing a focus dragging behavior. In other respects, the user interface is similar when the breadth of the hierarchy or the relational context does not lead to scalability issues, for instance when content readability is not affected.
[0005] The present invention is illustrated by way of example, and not necessarily by way of limitation in the figures of the accompanying drawings in which like reference numerals refer to similar elements.
[0006]
[0007]
[0008]
[0009]
[0010]
[0011] Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
[0012] Some portions of the detailed description that follow are presented in terms of algorithms and symbolic representations of operations on data within a memory of an electronic device such as a computer. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art.
[0013] An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, optical, or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0014] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated or otherwise apparent from the following discussion throughout the description, discussions using terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or other electronic device, that manipulates and transforms data represented as physical (electronic) quantities within the device's registers and memories into other data similarly represented as physical quantities within the memories or registers or other such information storage, transmission or display devices.
[0015] The invention also relates to apparatus for performing the operations herein. These apparatus may be specially constructed for the required purposes, or may comprise a general-purpose computing or electronic device selectively activated or reconfigured by a program stored in the device. Such a program may be stored in a machine-readable storage medium, such as, but not limited to, any type of magnetic or other disk storage media including floppy disks, optical storage media, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc. or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
[0016] The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
[0017] A user interface in accordance with the present invention can be used to explore any kind of graph of information, for example, directories, query result sets (from databases engines, search engines, etc.), file stores, where information objects are organized in hierarchical sets and connected through relations. Furthermore, the user interface contemplated by the present invention can be used on or in conjunction with any platform that has a pointing device (e.g., mouse, trackball, stylus, directional pad, remote control, etc.), including personal computers, Internet appliances, personal digital assistants, telephones, mobile or cellular telephones, television sets, etc. It is also contemplated that the user interface can be controlled through speech, eye movement, and other modalities.
[0018] With reference to
[0019] The graph of information
[0020] In general, a graph is composed of connected nodes, where each connection can be individually rendered by inclusion or by adjacency. In a hierarchy of nodes, all connections between nodes would usually be rendered in a similar manner, for example, by inclusion. A graph, also known as a tree, however, has fewer mathematical constraints than a hierarchy. For instance, there might be several connections leading to a given node in a graph.
[0021] Again with reference to
[0022] It should be noted that the rendering of a connection is not necessarily limited to inclusion or adjacency. For example, in one embodiment of the present invention, it is also possible to render a connection by extraction, i.e. by displaying the connected node outside of the view, for instance, in tabular form.
[0023] The nodes whose connections with the focus node are rendered by adjacency are displayed around the focus node and form, along with other visible nodes connected with them by adjacency, what is known as the relational context. For example, nodes
[0024] A node, known as a source node, may visually contain any number of nodes. In
[0025] All contained nodes and all linked nodes are arranged peripherally within and around the source node to which they are connected. Due to hardware and human limitations (for example, screen resolution, view size, content readability, etc.), it is not always possible to simultaneously display all these nodes. Yet, it is possible to compute a fixed position for each of them, known as their focus position. Since both the set of contained nodes and the set of linked nodes are ordered, even if arbitrarily, the first contained node is placed at an angle known as the inclusion start angle, while the first linked node is placed at an angle known as the adjacency start angle.
[0026] Also, since users can scan the peripheral layout either clockwise or counterclockwise, this direction can be assigned separately for contained nodes (inclusion scan direction) and linked nodes (adjacency scan direction). The clockwise direction's value is, for example, −1, while the counterclockwise direction's value is, for example, +1. Thus, the nth contained node's focus position is at angle (inclusionStartAngle+inclusionScanDirection·2π·n/cardinal ), while the pth linked node's focus position is at angle (adjacencyStartAngle+adjacencyScanDirection·2π·p/degree).
[0027] With reference to
[0028] Please note the layout of nodes need not be restricted to the peripheral layout, as described above. Such layout is used here to keep the description of the invention simple. For example, the present invention would apply equally well to nodes arranged in a concentric layout. Also, source nodes may have various shapes, such as circles, triangles, squares, hexagons, and so on. Additionally, the distance between any two juxtaposed nodes, in the hierarchy or in the relational context, need not be constant.
[0029] Any source node keeps a reference to one of its contained nodes, known as the inclusion focus node, and a reference to one of its linked nodes known as the adjacency focus node. As shall be described later, the user can set the inclusion focus node or the adjacency focus node, usually by selecting via an input device, e.g., clicking with a mouse, the desired node. By default, these nodes are the first of their respective set of contained or linked nodes.
[0030] It should be noted that inclusion focus nodes and adjacency focus nodes usually are preserved as users explore content (nodes in the graph). It is however possible to reset these nodes to their default value each time a source node is explored (i.e., becomes the view's focus node) again.
[0031] If a source node is the view's focus node, and all its contained nodes and linked nodes can be displayed without overlapping each other, and at least at the minimum node size, then there are no scalability issues to address in the viewing region. If however all contained and linked nodes cannot be displayed without overlapping each other, then the source node may be rendered to indicate this fact, for example as a convex shape, to indicate that the contained nodes are too small to be displayed, and/or with a convex border or halo, to indicate that the linked nodes are too small to be displayed. Unfortunately, if the source node's cardinal or degree is quite large, meaning that there is many contained nodes or many linked nodes, it may be impossible for a user to view that many contained or linked nodes, even with a reasonably large view size on a reasonably large display. Instead, the user can end up with a very large focus node, with a convex shape and border, whose connections cannot be fully explored.
[0032] One embodiment for addressing this issue is to always render the inclusion focus node and the adjacency focus node at their respective focus position, then to render as many neighboring nodes as possible, both clockwise and counterclockwise, albeit increasingly away from these nodes'respective focus position, while ensuring that all these nodes are rendered in at least the minimum node size. Once the entire source node's perimeter has been almost filled with nodes, there is still at least one contained or linked node that remains to be rendered, but cannot be rendered for lack of space. Therefore, an indication of such nodes currently invisible presence, known as the scalability indicator, is displayed instead in the remaining space, at the position opposite to the inclusion focus node's position or the adjacency focus node's position. One possible representation for the scalability indicator is an ellipsis symbol.
[0033] Since nodes may have various sizes, some of the nodes next to the inclusion focus node might be too small to be displayed, because their size is less than the minimum node size. In that case, the source node may have a concave, tunnel-like appearance. The same can happen to nodes next to the adjacency focus node, in which case the links leading to such nodes are simply not terminated.
[0034] The remaining space where the scalability indicator is rendered can have a different size for the hierarchy where it is known as the inclusion scalability indicator range, and for the relational context, where it is known as the adjacency scalability indicator range. Both ranges could be an angular value in the domain ]0, 2π[, as expressed in radians.
[0035] As the size of the source node is increased, more contained nodes within it and more linked nodes around it are revealed, until all such nodes become visible, in which case the scalability indicators disappear. Unless all contained nodes can be displayed simultaneously, there must be enough space for at least a certain number of nodes, known as the minimum node count, for any of the nodes to be displayed, even if they are already larger than the minimum node size. Until that happens, the source node still preserves a convex appearance. In one embodiment, there is no minimum node count constraint for linked nodes.
[0036] With reference to
[0037] In
[0038] In
[0039] It is appreciated that the scalability indicator could take various forms, and does not have to look the same for both the hierarchy and the relational context. For example, while an ellipsis symbol
[0040] Focus centering on a click of a user input device, such as clicking a mouse, is the standard way to explore content. Additionally now, when a node is clicked in the hierarchy of nodes, it becomes not only the view's focus node but also the inclusion focus node of its source node. Similarly, when a node is clicked in the relational context, it becomes not only the view's focus node but also the adjacency focus node of its source node. What this means, in both cases, is that the clicked node becomes, should a scalability issue arise, the center of the subset of contained or linked nodes displayed within or around the source node.
[0041] Exploring the full sets of contained and linked nodes for the view's focus node, i.e. the source node, in absolute fashion, is contemplated in one embodiment of the invention. The scalability indicator can be dragged around the source node's center to change its position, which will in turn change the inclusion focus node or the adjacency focus node of the source node, and thereby the subset of contained or linked nodes actually displayed.
[0042] Exploring the full sets of contained and linked nodes for the view's focus node, in relative fashion, is also contemplated in one embodiment of the invention. First, the vicinity of a contained node is defined as the set of points that lie within the source node that contains it, but not within the node itself, and that are closer to the node than to any other node within the source node. If the vicinity of a node in the hierarchy, not the node itself, is clicked, the node only becomes the inclusion focus node of its source node, but not the view's focus node. The concept of vicinity cannot be applied to linked nodes, because clicking the vicinity of a linked node is equivalent to clicking the hierarchy displayed below and around this node. However, by clicking the link between the linked node and its source node instead, the node becomes the adjacency focus node of its source node, while the view's focus node is unchanged.
[0043] An alternative embodiment for making a node the inclusion or adjacency focus node of the source node without clicking on the node is to simply move around the pointer above the target node or its vicinity. In one embodiment, a user may configure this option. In any case, recognizing the vicinity of a linked node is appropriate, because it does not prevent the user from clicking it in order to select a node in the hierarchy to make it the view's focus node.
[0044] With reference to
[0045] The inclusion tab
[0046] It is possible, as an option, to display the inclusion start angle, so as to make it easier for the user to see the position of the first node in the ordered set of contained nodes, and be able to scan this set more quickly. If the inclusion tab is displayed, the representation used to indicate the inclusion start angle can be clicked to make the first contained node the new inclusion focus node. An alternative way of achieving this could be to, for example, doubleclick the scalability indicator. The mechanism just described applies equally to the adjacency start angle as well.